filecat 7.8.0 → 7.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +182 -182
  3. package/build/dist/{4967.3fd3bd40a2b5a3b52428.js → 1060.198d91e2dfc174317c3a.js} +1 -1
  4. package/build/dist/1075.05eed88707339ca32044.js +1 -0
  5. package/build/dist/{1142.121454b1de53689b7367.js → 1142.bc43fae2e5e38d9359df.js} +1 -1
  6. package/build/dist/1384.edbad9c24d883a59724d.js +1 -0
  7. package/build/dist/1417.d390b18dd58ff5c28160.js +1 -0
  8. package/build/dist/1448.4db495e1389c0c8445b3.js +1 -0
  9. package/build/dist/{3324.22efcb1c431177b1cf5f.js → 1455.26a021eb94e5bdd5bec2.js} +1 -1
  10. package/build/dist/{1636.b6a17252dfd0d22f09a7.js → 1636.b80b1883358e132d3424.js} +1 -1
  11. package/build/dist/{1832.8ea5c3e8288df0b7fd5c.js → 1832.a01933ba5df99576ecc2.js} +1 -1
  12. package/build/dist/2300.c99b1dd4e752cdfd5e32.js +2 -0
  13. package/build/dist/{2300.9e1baa1c0368abe53d96.js.LICENSE.txt → 2300.c99b1dd4e752cdfd5e32.js.LICENSE.txt} +1 -1
  14. package/build/dist/239.f570f06d4b9c020f1013.js +1 -0
  15. package/build/dist/2479.294792ef5d360ad64abc.js +1 -0
  16. package/build/dist/2542.26cb302b60de23166227.js +1 -0
  17. package/build/dist/{259.81bb9e049e5ef587a96f.js → 259.3c0eb22e9b43ffb63c9c.js} +1 -1
  18. package/build/dist/2626.3bcfe1f26d9cb796a925.js +1 -0
  19. package/build/dist/2674.15ca3c6ac911cf6e6e2f.js +1 -0
  20. package/build/dist/3233.43bdd7c12ca829d56116.js +1 -0
  21. package/build/dist/3299.6ab0d94f02171cd762cc.js +1 -0
  22. package/build/dist/{6992.f6a07311a638794c24f7.js → 3471.ef3b5dcfe37963034187.js} +1 -1
  23. package/build/dist/{3528.56eeefab6fca5884e2a6.js → 3528.0f8f34028d92fa87c518.js} +1 -1
  24. package/build/dist/{3659.8a31495bb8f38c0ffa7c.js → 3659.dd03dc2ac52a3ff19105.js} +1 -1
  25. package/build/dist/4004.f0193c43fb891fdfb0e4.js +1 -0
  26. package/build/dist/{4560.8ef2e4b60cc86d019dd6.js → 4560.fd9f8cf2d6022b1d3a94.js} +1 -1
  27. package/build/dist/{4903.407cafe944a297471f5a.js → 4903.070aaa53a243baf05133.js} +1 -1
  28. package/build/dist/{4946.c95d4f426146e0180172.js → 4946.d578f6ba367a742d80bf.js} +2 -2
  29. package/build/dist/4986.f244efce9cf6be21f846.js +1 -0
  30. package/build/dist/5272.1f0dfac07ba202e7d323.js +1 -0
  31. package/build/dist/{5308.052f45c15785487b3766.js → 5308.d1e5ccb49396fc1b026d.js} +1 -1
  32. package/build/dist/{5516.645e4a900df9bdc1806c.js → 5516.88521f3a3c7101c46df3.js} +1 -1
  33. package/build/dist/5614.43bdd7c12ca829d56116.js +1 -0
  34. package/build/dist/{5139.adf9574d9b54a216e041.js → 5709.81f43e3c021fafdfe36f.js} +1 -1
  35. package/build/dist/{5744.e9f1efb88a617b05b709.js → 5744.0f8a0432b73b2eb0a7ff.js} +1 -1
  36. package/build/dist/{5877.ca081c4798194230243c.js → 5877.98d0475aaf4058b9a715.js} +1 -1
  37. package/build/dist/6010.5400c344149450c83284.js +1 -0
  38. package/build/dist/{6247.917e3fbef5dc5fbaf937.js → 6247.525b0b68872036ac2fa6.js} +1 -1
  39. package/build/dist/{7520.fbb0bc2a05cf94e15418.js → 6322.552511b5cb12cd0c821c.js} +1 -1
  40. package/build/dist/6492.17ecd8515fa512ce9306.js +1 -0
  41. package/build/dist/{676.a75318a8b598d8daadf0.js → 676.356039ef6f28f96b8c8b.js} +1 -1
  42. package/build/dist/{6805.bf0c964ab84f0fcc78be.js → 6805.373ac0e7d6555e4a6459.js} +1 -1
  43. package/build/dist/{6919.8cf13c01184b7148b28e.js → 6919.c7cc8617b658198d4924.js} +1 -1
  44. package/build/dist/{7038.4e4fc8e405c56d3080e2.js → 7038.166f915547d27e4dc5e4.js} +1 -1
  45. package/build/dist/{7759.0b68912ff9ef10869f59.js → 7759.7cd3fe8e5d37df25804c.js} +1 -1
  46. package/build/dist/7873.e3098bc6f510e5bea55f.js +1 -0
  47. package/build/dist/7923.d44556578af4d3d7cea3.js +2 -0
  48. package/build/dist/7943.acf25a5e98dd13290985.js +1 -0
  49. package/build/dist/8090.8977224618a14ae42159.js +2 -0
  50. package/build/dist/8302.ce97557b7cf7c8387942.js +1 -0
  51. package/build/dist/8319.6a6b9651c87a1bb4cbb9.js +1 -0
  52. package/build/dist/{8603.4142ce42c1635f493eca.js → 8603.f1cbcfd64cde885f9809.js} +1 -1
  53. package/build/dist/8649.d6055ad75975b803bbc1.js +1 -0
  54. package/build/dist/{8727.3628c746061aed7a4077.js → 8727.8658835acb7e0b6e5acc.js} +1 -1
  55. package/build/dist/{8765.a5633d054abb67142fc3.js → 8765.8758c290a6b132f2ce7f.js} +1 -1
  56. package/build/dist/8772.2c35012c25ac9eb5f74d.js +2 -0
  57. package/build/dist/{8772.e8f9731c1c061f1cdf56.js.LICENSE.txt → 8772.2c35012c25ac9eb5f74d.js.LICENSE.txt} +1 -1
  58. package/build/dist/8781.6bd14487d172e004e3d3.js +1 -0
  59. package/build/dist/9299.7358ccf05b1415ed7959.js +1 -0
  60. package/build/dist/9334.a25983aafdcbde63ae5e.js +1 -0
  61. package/build/dist/{9546.e7206c968e92371ae2b1.js → 9546.2cecad04cf676a6616cd.js} +1 -1
  62. package/build/dist/dark.css +839 -839
  63. package/build/dist/filerobot-image-editor.min.js +42445 -42445
  64. package/build/dist/google-dark.css +2032 -2032
  65. package/build/dist/google.css +1719 -1719
  66. package/build/dist/index.html +1 -1
  67. package/build/dist/main.ab3398f34c41e61310ae.js +2 -0
  68. package/build/dist/{main.98bb29605335d9b2219f.js.LICENSE.txt → main.ab3398f34c41e61310ae.js.LICENSE.txt} +1 -1
  69. package/build/dist/rle.js +17867 -17867
  70. package/build/main.js +1 -1
  71. package/build/plugin/core.type.d.ts +62 -0
  72. package/build/threads.work.filecat.js +1 -1
  73. package/env +26 -26
  74. package/package.json +211 -211
  75. package/shell/build.js +161 -161
  76. package/shell/config/.babelrc +14 -14
  77. package/shell/config/base.webpack.config.js +78 -78
  78. package/shell/config/common-bin.config.js +44 -44
  79. package/shell/config/env.js +10 -10
  80. package/shell/config/prebuild-file-path.js +17 -17
  81. package/shell/config/webpack.exe.config.js +36 -36
  82. package/shell/config/webpack.npm.config.js +44 -44
  83. package/shell/config/webpack.web.config.js +152 -152
  84. package/shell/dev.js +51 -51
  85. package/shell/docker-build.sh +2 -2
  86. package/shell/filecat +1 -1
  87. package/shell/filecat-watch +1 -1
  88. package/shell/install.js +48 -48
  89. package/shell/net-agent/git-clone.bat +23 -23
  90. package/shell/net-agent/git-pull.bat +17 -17
  91. package/shell/net-agent/git-push.bat +17 -17
  92. package/shell/pkg.ts +50 -50
  93. package/shell/postinstall-optional.js +29 -29
  94. package/shell/start/filecat-install.sh +22 -22
  95. package/shell/start/filecat-run.sh +2 -2
  96. package/shell/start/windows-install.js +178 -178
  97. package/shell/start/windows-uninstall.js +131 -131
  98. package/shell/util/file.js +46 -46
  99. package/build/dist/1075.493acb74297c1e753de2.js +0 -1
  100. package/build/dist/1384.0d0fc5faa899c9eddcbe.js +0 -1
  101. package/build/dist/1448.0710f04bed1c52e6a5db.js +0 -1
  102. package/build/dist/2300.9e1baa1c0368abe53d96.js +0 -2
  103. package/build/dist/2479.15722ac55b05c521f4f7.js +0 -1
  104. package/build/dist/2542.23fb13b1623c9f7c3fc1.js +0 -1
  105. package/build/dist/2626.05d1faa293e0a3318b9b.js +0 -1
  106. package/build/dist/2674.0c822a9c458f923a4eff.js +0 -1
  107. package/build/dist/2851.2195b5906b2c224c7bf7.js +0 -1
  108. package/build/dist/3140.794a212da633caf38b3a.js +0 -2
  109. package/build/dist/3233.fb6bffd5e097e4ac9423.js +0 -1
  110. package/build/dist/3299.d01f5a742d80f4e6e25b.js +0 -1
  111. package/build/dist/4004.de90f1192487a24a0a9a.js +0 -1
  112. package/build/dist/4437.4d5a0965043471411a00.js +0 -1
  113. package/build/dist/4986.78047106f3a0d2d71199.js +0 -1
  114. package/build/dist/5272.0b70ee8ec5f083fb9f5b.js +0 -1
  115. package/build/dist/5614.fb6bffd5e097e4ac9423.js +0 -1
  116. package/build/dist/6010.2da6f8c2fce5292557cb.js +0 -1
  117. package/build/dist/6492.3ee4060598de873d8e8f.js +0 -1
  118. package/build/dist/7756.2f851693ba030c42dde8.js +0 -1
  119. package/build/dist/7873.11d04b741d2b499d9cb9.js +0 -1
  120. package/build/dist/7923.861345fd55941e8089a1.js +0 -2
  121. package/build/dist/7943.54c702542d55f576a576.js +0 -1
  122. package/build/dist/7954.6ce241a8ed27cb26efc6.js +0 -1
  123. package/build/dist/8302.c1c381630b4ec76bf8ab.js +0 -1
  124. package/build/dist/8319.c15a3674ec7abc493595.js +0 -1
  125. package/build/dist/8772.e8f9731c1c061f1cdf56.js +0 -2
  126. package/build/dist/9299.ed4de6cd4f4bfa0a966a.js +0 -1
  127. package/build/dist/main.98bb29605335d9b2219f.js +0 -2
  128. /package/build/dist/{4946.c95d4f426146e0180172.js.LICENSE.txt → 4946.d578f6ba367a742d80bf.js.LICENSE.txt} +0 -0
  129. /package/build/dist/{7923.861345fd55941e8089a1.js.LICENSE.txt → 7923.d44556578af4d3d7cea3.js.LICENSE.txt} +0 -0
  130. /package/build/dist/{3140.794a212da633caf38b3a.js.LICENSE.txt → 8090.8977224618a14ae42159.js.LICENSE.txt} +0 -0
@@ -0,0 +1,2 @@
1
+ /*! For license information please see main.ab3398f34c41e61310ae.js.LICENSE.txt */
2
+ (()=>{var e={80952(e,t,n){e=n.nmd(e),function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,n,i){"string"==typeof e?(2==arguments.length&&(i=n),t.modules[e]||(t.payloads[e]=i,t.modules[e]=null)):t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};t.modules={},t.payloads={};var n,i,r=function(e,t,n){if("string"==typeof t){var i=a(e,t);if(null!=i)return n&&n(),i}else if("[object Array]"===Object.prototype.toString.call(t)){for(var r=[],s=0,l=t.length;s<l;++s){var c=a(e,t[s]);if(null==c&&o.original)return;r.push(c)}return n&&n.apply(null,r)||!0}},o=function(e,t){var n=r("",e,t);return null==n&&o.original?o.original.apply(this,arguments):n},s=function(e,t){if(-1!==t.indexOf("!")){var n=t.split("!");return s(e,n[0])+"!"+s(e,n[1])}if("."==t.charAt(0))for(t=e.split("/").slice(0,-1).join("/")+"/"+t;-1!==t.indexOf(".")&&i!=t;){var i=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}return t},a=function(e,n){n=s(e,n);var i=t.modules[n];if(!i){if("function"==typeof(i=t.payloads[n])){var o={},a={id:n,uri:"",exports:o,packaged:!0};o=i(function(e,t){return r(n,e,t)},o,a)||a.exports,t.modules[n]=o,delete t.payloads[n]}i=t.modules[n]=o||i}return i};i=e,(n="ace")&&(e[n]||(e[n]={}),i=e[n]),i.define&&i.define.packaged||(t.original=i.define,i.define=t,i.define.packaged=!0),i.require&&i.require.packaged||(o.original=i.require,i.require=o,i.require.packaged=!0)}(),ace.define("ace/lib/es6-shim",["require","exports","module"],function(e,t,n){function i(e,t,n){Object.defineProperty(e,t,{value:n,enumerable:!1,writable:!0,configurable:!0})}String.prototype.startsWith||i(String.prototype,"startsWith",function(e,t){return t=t||0,this.lastIndexOf(e,t)===t}),String.prototype.endsWith||i(String.prototype,"endsWith",function(e,t){var n=this;(void 0===t||t>n.length)&&(t=n.length),t-=e.length;var i=n.indexOf(e,t);return-1!==i&&i===t}),String.prototype.repeat||i(String.prototype,"repeat",function(e){for(var t="",n=this;e>0;)1&e&&(t+=n),(e>>=1)&&(n+=n);return t}),String.prototype.includes||i(String.prototype,"includes",function(e,t){return-1!=this.indexOf(e,t)}),Object.assign||(Object.assign=function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n<arguments.length;n++){var i=arguments[n];null!=i&&Object.keys(i).forEach(function(e){t[e]=i[e]})}return t}),Object.values||(Object.values=function(e){return Object.keys(e).map(function(t){return e[t]})}),Array.prototype.find||i(Array.prototype,"find",function(e){for(var t=this.length,n=arguments[1],i=0;i<t;i++){var r=this[i];if(e.call(n,r,i,this))return r}}),Array.prototype.findIndex||i(Array.prototype,"findIndex",function(e){for(var t=this.length,n=arguments[1],i=0;i<t;i++){var r=this[i];if(e.call(n,r,i,this))return i}}),Array.prototype.includes||i(Array.prototype,"includes",function(e,t){return-1!=this.indexOf(e,t)}),Array.prototype.fill||i(Array.prototype,"fill",function(e){for(var t=this,n=t.length>>>0,i=arguments[1]|0,r=i<0?Math.max(n+i,0):Math.min(i,n),o=arguments[2],s=void 0===o?n:o|0,a=s<0?Math.max(n+s,0):Math.min(s,n);r<a;)t[r]=e,r++;return t}),Array.of||i(Array,"of",function(){return Array.prototype.slice.call(arguments)})}),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/es6-shim"],function(e,t,n){"use strict";e("./es6-shim")}),ace.define("ace/lib/deep_copy",["require","exports","module"],function(e,t,n){t.deepCopy=function e(t){if("object"!=typeof t||!t)return t;var n;if(Array.isArray(t)){n=[];for(var i=0;i<t.length;i++)n[i]=e(t[i]);return n}if("[object Object]"!==Object.prototype.toString.call(t))return t;for(var i in n={},t)n[i]=e(t[i]);return n}}),ace.define("ace/lib/lang",["require","exports","module","ace/lib/deep_copy"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){for(var n="";t>0;)1&t&&(n+=e),(t>>=1)&&(e+=e);return n};var i=/^\s\s*/,r=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(i,"")},t.stringTrimRight=function(e){return e.replace(r,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){for(var t=[],n=0,i=e.length;n<i;n++)e[n]&&"object"==typeof e[n]?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=e("./deep_copy").deepCopy,t.arrayToMap=function(e){for(var t={},n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return(""+e).replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},i=function(e){return i.cancel(),t=setTimeout(n,e||0),i};return i.schedule=i,i.call=function(){return this.cancel(),e(),i},i.cancel=function(){return clearTimeout(t),t=null,i},i.isPending=function(){return t},i},t.delayedCall=function(e,t){var n=null,i=function(){n=null,e()},r=function(e){null==n&&(n=setTimeout(i,e||t))};return r.delay=function(e){n&&clearTimeout(n),n=setTimeout(i,e||t)},r.schedule=r,r.call=function(){this.cancel(),e()},r.cancel=function(){n&&clearTimeout(n),n=null},r.isPending=function(){return n},r},t.sleep=function(e){return new Promise(function(t){setTimeout(t,e)})},t.supportsLookbehind=function(){try{new RegExp("(?<=.)")}catch(e){return!1}return!0},t.skipEmptyMatch=function(e,t,n){return n&&e.codePointAt(t)>65535?2:1}}),ace.define("ace/lib/useragent",["require","exports","module"],function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var i="object"==typeof navigator?navigator:{},r=(/mac|win|linux/i.exec(i.platform)||["other"])[0].toLowerCase(),o=i.userAgent||"",s=i.appName||"";t.isWin="win"==r,t.isMac="mac"==r,t.isLinux="linux"==r,t.isIE="Microsoft Internet Explorer"==s||s.indexOf("MSAppHost")>=0?parseFloat((o.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((o.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=o.match(/ Gecko\/\d+/),t.isOpera="object"==typeof opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(o.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(o.split(" Chrome/")[1])||void 0,t.isSafari=parseFloat(o.split(" Safari/")[1])&&!t.isChrome||void 0,t.isEdge=parseFloat(o.split(" Edge/")[1])||void 0,t.isAIR=o.indexOf("AdobeAIR")>=0,t.isAndroid=o.indexOf("Android")>=0,t.isChromeOS=o.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(o)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid}),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";var i,r=e("./useragent");t.buildDom=function e(t,n,i){if("string"==typeof t&&t){var r=document.createTextNode(t);return n&&n.appendChild(r),r}if(!Array.isArray(t))return t&&t.appendChild&&n&&n.appendChild(t),t;if("string"!=typeof t[0]||!t[0]){for(var o=[],s=0;s<t.length;s++){var a=e(t[s],n,i);a&&o.push(a)}return o}var l=document.createElement(t[0]),c=t[1],u=1;c&&"object"==typeof c&&!Array.isArray(c)&&(u=2);for(s=u;s<t.length;s++)e(t[s],l,i);return 2==u&&Object.keys(c).forEach(function(e){var t=c[e];"class"===e?l.className=Array.isArray(t)?t.join(" "):t:"function"==typeof t||"value"==e||"$"==e[0]?l[e]=t:"ref"===e?i&&(i[t]=l):"style"===e?"string"==typeof t&&(l.style.cssText=t):null!=t&&l.setAttribute(e,t)}),n&&n.appendChild(l),l},t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||"http://www.w3.org/1999/xhtml",e):document.createElement(e)},t.removeChildren=function(e){e.innerHTML=""},t.createTextNode=function(e,t){return(t?t.ownerDocument:document).createTextNode(e)},t.createFragment=function(e){return(e?e.ownerDocument:document).createDocumentFragment()},t.hasCssClass=function(e,t){return-1!==(e.className+"").split(/\s+/g).indexOf(t)},t.addCssClass=function(e,n){t.hasCssClass(e,n)||(e.className+=" "+n)},t.removeCssClass=function(e,t){for(var n=e.className.split(/\s+/g);;){var i=n.indexOf(t);if(-1==i)break;n.splice(i,1)}e.className=n.join(" ")},t.toggleCssClass=function(e,t){for(var n=e.className.split(/\s+/g),i=!0;;){var r=n.indexOf(t);if(-1==r)break;i=!1,n.splice(r,1)}return i&&n.push(t),e.className=n.join(" "),i},t.setCssClass=function(e,n,i){i?t.addCssClass(e,n):t.removeCssClass(e,n)},t.hasCssString=function(e,t){var n,i=0;if(n=(t=t||document).querySelectorAll("style"))for(;i<n.length;)if(n[i++].id===e)return!0},t.removeElementById=function(e,t){(t=t||document).getElementById(e)&&t.getElementById(e).remove()};var o=[];function s(){var e=o;o=null,e&&e.forEach(function(e){a(e[0],e[1])})}function a(e,n,r){if("undefined"!=typeof document){if(o)if(r)s();else if(!1===r)return o.push([e,n]);if(!i){var a=r;r&&r.getRootNode&&(a=r.getRootNode())&&a!=r||(a=document);var l=a.ownerDocument||a;if(n&&t.hasCssString(n,a))return null;n&&(e+="\n/*# sourceURL=ace/css/"+n+" */");var c=t.createElement("style");c.appendChild(l.createTextNode(e)),n&&(c.id=n),a==l&&(a=t.getDocumentHead(l)),a.insertBefore(c,a.firstChild)}}}if(t.useStrictCSP=function(e){i=e,0==e?s():o||(o=[])},t.importCssString=a,t.importCssStylsheet=function(e,n){t.buildDom(["link",{rel:"stylesheet",href:e}],t.getDocumentHead(n))},t.$fixPositionBug=function(e){var t=e.getBoundingClientRect();if(e.style.left){var n=parseFloat(e.style.left),i=+t.left;Math.abs(n-i)>1&&(e.style.left=2*n-i+"px")}if(e.style.right){n=parseFloat(e.style.right),i=window.innerWidth-t.right;Math.abs(n-i)>1&&(e.style.right=2*n-i+"px")}if(e.style.top){n=parseFloat(e.style.top),i=+t.top;Math.abs(n-i)>1&&(e.style.top=2*n-i+"px")}if(e.style.bottom){n=parseFloat(e.style.bottom),i=window.innerHeight-t.bottom;Math.abs(n-i)>1&&(e.style.bottom=2*n-i+"px")}},t.scrollbarWidth=function(e){var n=t.createElement("ace_inner");n.style.width="100%",n.style.minWidth="0px",n.style.height="200px",n.style.display="block";var i=t.createElement("ace_outer"),r=i.style;r.position="absolute",r.left="-10000px",r.overflow="hidden",r.width="200px",r.minWidth="0px",r.height="150px",r.display="block",i.appendChild(n);var o=e&&e.documentElement||document&&document.documentElement;if(!o)return 0;o.appendChild(i);var s=n.offsetWidth;r.overflow="scroll";var a=n.offsetWidth;return s===a&&(a=i.clientWidth),o.removeChild(i),s-a},t.computedStyle=function(e,t){return window.getComputedStyle(e,"")||{}},t.setStyle=function(e,t,n){e[t]!==n&&(e[t]=n)},t.HAS_CSS_ANIMATION=!1,t.HAS_CSS_TRANSFORMS=!1,t.HI_DPI=!r.isWin||"undefined"!=typeof window&&window.devicePixelRatio>=1.5,r.isChromeOS&&(t.HI_DPI=!1),"undefined"!=typeof document){var l=document.createElement("div");t.HI_DPI&&void 0!==l.style.transform&&(t.HAS_CSS_TRANSFORMS=!0),r.isEdge||void 0===l.style.animationName||(t.HAS_CSS_ANIMATION=!0),l=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var i=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){4===n.readyState&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=i.getDocumentHead(),r=document.createElement("script");r.src=e,n.appendChild(r),r.onload=r.onreadystatechange=function(e,n){!n&&r.readyState&&"loaded"!=r.readyState&&"complete"!=r.readyState||(r=r.onload=r.onreadystatechange=null,n||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var i={},r=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};i._emit=i._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],i=this._defaultHandlers[e];if(n.length||i){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=r),t.preventDefault||(t.preventDefault=o),n=n.slice();for(var s=0;s<n.length&&(n[s](t,this),!t.propagationStopped);s++);return i&&!t.defaultPrevented?i(t,this):void 0}},i._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(n){n=n.slice();for(var i=0;i<n.length;i++)n[i](t,this)}},i.once=function(e,t){var n=this;if(this.on(e,function i(){n.off(e,i),t.apply(null,arguments)}),!t)return new Promise(function(e){t=e})},i.setDefaultHandler=function(e,t){var n=this._defaultHandlers;if(n||(n=this._defaultHandlers={_disabled_:{}}),n[e]){var i=n[e],r=n._disabled_[e];r||(n._disabled_[e]=r=[]),r.push(i);var o=r.indexOf(t);-1!=o&&r.splice(o,1)}n[e]=t},i.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(n){var i=n._disabled_[e];if(n[e]==t)i&&this.setDefaultHandler(e,i.pop());else if(i){var r=i.indexOf(t);-1!=r&&i.splice(r,1)}}},i.on=i.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var i=this._eventRegistry[e];return i||(i=this._eventRegistry[e]=[]),-1==i.indexOf(t)&&i[n?"unshift":"push"](t),t},i.off=i.removeListener=i.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(n){var i=n.indexOf(t);-1!==i&&n.splice(i,1)}},i.removeAllListeners=function(e){e||(this._eventRegistry=this._defaultHandlers=void 0),this._eventRegistry&&(this._eventRegistry[e]=void 0),this._defaultHandlers&&(this._defaultHandlers[e]=void 0)},t.EventEmitter=i}),ace.define("ace/lib/report_error",["require","exports","module"],function(e,t,n){t.reportError=function(e,t){var n=new Error(e);n.data=t,"object"==typeof console&&console.error&&console.error(n),setTimeout(function(){throw n})}}),ace.define("ace/lib/default_english_messages",["require","exports","module"],function(e,t,n){t.defaultEnglishMessages={"autocomplete.popup.aria-roledescription":"Autocomplete suggestions","autocomplete.popup.aria-label":"Autocomplete suggestions","autocomplete.popup.item.aria-roledescription":"item","autocomplete.loading":"Loading...","editor.scroller.aria-roledescription":"editor","editor.scroller.aria-label":"Editor content, press Enter to start editing, press Escape to exit","editor.gutter.aria-roledescription":"editor gutter","editor.gutter.aria-label":"Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit","error-marker.good-state":"Looks good!","prompt.recently-used":"Recently used","prompt.other-commands":"Other commands","prompt.no-matching-commands":"No matching commands","search-box.find.placeholder":"Search for","search-box.find-all.text":"All","search-box.replace.placeholder":"Replace with","search-box.replace-next.text":"Replace","search-box.replace-all.text":"All","search-box.toggle-replace.title":"Toggle Replace mode","search-box.toggle-regexp.title":"RegExp Search","search-box.toggle-case.title":"CaseSensitive Search","search-box.toggle-whole-word.title":"Whole Word Search","search-box.toggle-in-selection.title":"Search In Selection","search-box.search-counter":"$0 of $1","text-input.aria-roledescription":"editor","text-input.aria-label":"Cursor at row $0","gutter.code-folding.range.aria-label":"Toggle code folding, rows $0 through $1","gutter.code-folding.closed.aria-label":"Toggle code folding, rows $0 through $1","gutter.code-folding.open.aria-label":"Toggle code folding, row $0","gutter.code-folding.closed.title":"Unfold code","gutter.code-folding.open.title":"Fold code","gutter.annotation.aria-label.error":"Error, read annotations row $0","gutter.annotation.aria-label.warning":"Warning, read annotations row $0","gutter.annotation.aria-label.info":"Info, read annotations row $0","inline-fold.closed.title":"Unfold code","gutter-tooltip.aria-label.error.singular":"error","gutter-tooltip.aria-label.error.plural":"errors","gutter-tooltip.aria-label.warning.singular":"warning","gutter-tooltip.aria-label.warning.plural":"warnings","gutter-tooltip.aria-label.info.singular":"information message","gutter-tooltip.aria-label.info.plural":"information messages","gutter.annotation.aria-label.security":"Security finding, read annotations row $0","gutter.annotation.aria-label.hint":"Suggestion, read annotations row $0","gutter-tooltip.aria-label.security.singular":"security finding","gutter-tooltip.aria-label.security.plural":"security findings","gutter-tooltip.aria-label.hint.singular":"suggestion","gutter-tooltip.aria-label.hint.plural":"suggestions","editor.tooltip.disable-editing":"Editing is disabled"}}),ace.define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/lib/report_error","ace/lib/default_english_messages"],function(e,t,n){var i,r,o=e("./oop"),s=e("./event_emitter").EventEmitter,a=e("./report_error").reportError,l=e("./default_english_messages").defaultEnglishMessages,c={setOptions:function(e){Object.keys(e).forEach(function(t){this.setOption(t,e[t])},this)},getOptions:function(e){var t={};if(e)Array.isArray(e)||(e=Object.keys(e));else{var n=this.$options;e=Object.keys(n).filter(function(e){return!n[e].hidden})}return e.forEach(function(e){t[e]=this.getOption(e)},this),t},setOption:function(e,t){if(this["$"+e]!==t){var n=this.$options[e];if(!n)return u('misspelled option "'+e+'"');if(n.forwardTo)return this[n.forwardTo]&&this[n.forwardTo].setOption(e,t);n.handlesSet||(this["$"+e]=t),n&&n.set&&n.set.call(this,t)}},getOption:function(e){var t=this.$options[e];return t?t.forwardTo?this[t.forwardTo]&&this[t.forwardTo].getOption(e):t&&t.get?t.get.call(this):this["$"+e]:u('misspelled option "'+e+'"')}};function u(e){"undefined"!=typeof console&&console.warn&&console.warn.apply(console,arguments)}var d=function(){function e(){this.$defaultOptions={},i=l,r="dollarSigns"}return e.prototype.defineOptions=function(e,t,n){return e.$options||(this.$defaultOptions[t]=e.$options={}),Object.keys(n).forEach(function(t){var i=n[t];"string"==typeof i&&(i={forwardTo:i}),i.name||(i.name=t),e.$options[i.name]=i,"initialValue"in i&&(e["$"+i.name]=i.initialValue)}),o.implement(e,c),this},e.prototype.resetOptions=function(e){Object.keys(e.$options).forEach(function(t){var n=e.$options[t];"value"in n&&e.setOption(t,n.value)})},e.prototype.setDefaultValue=function(e,t,n){if(!e){for(e in this.$defaultOptions)if(this.$defaultOptions[e][t])break;if(!this.$defaultOptions[e][t])return!1}var i=this.$defaultOptions[e]||(this.$defaultOptions[e]={});i[t]&&(i.forwardTo?this.setDefaultValue(i.forwardTo,t,n):i[t].value=n)},e.prototype.setDefaultValues=function(e,t){Object.keys(t).forEach(function(n){this.setDefaultValue(e,n,t[n])},this)},e.prototype.setMessages=function(e,t){i=e,t&&t.placeholders&&(r=t.placeholders)},e.prototype.nls=function(e,t,n){i[e]||(u("No message found for the key '"+e+"' in messages with id "+i.$id+", trying to find a translation for the default string '"+t+"'."),i[t]||u("No message found for the default string '"+t+"' in the provided messages. Falling back to the default English message."));var o=i[e]||i[t]||t;return n&&("dollarSigns"===r&&(o=o.replace(/\$(\$|[\d]+)/g,function(e,t){return"$"==t?"$":n[t]})),"curlyBrackets"===r&&(o=o.replace(/\{([^\}]+)\}/g,function(e,t){return n[t]}))),o},e}();d.prototype.warn=u,d.prototype.reportError=a,o.implement(d.prototype,s),t.AppConfig=d}),ace.define("ace/theme/textmate-css",["require","exports","module"],function(e,t,n){n.exports='.ace-tm .ace_gutter {\n background: #f0f0f0;\n color: #333;\n}\n\n.ace-tm .ace_print-margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_fold {\n background-color: #6B72E6;\n}\n\n.ace-tm {\n background-color: #FFFFFF;\n color: black;\n}\n\n.ace-tm .ace_cursor {\n color: black;\n}\n \n.ace-tm .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_storage,\n.ace-tm .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_constant {\n color: rgb(197, 6, 11);\n}\n\n.ace-tm .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_invalid {\n background-color: rgba(255, 0, 0, 0.1);\n color: red;\n}\n\n.ace-tm .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_support.ace_type,\n.ace-tm .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_xml-pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_entity.ace_name.ace_function {\n color: #0000A2;\n}\n\n\n.ace-tm .ace_heading {\n color: rgb(12, 7, 255);\n}\n\n.ace-tm .ace_list {\n color:rgb(185, 6, 144);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(0, 22, 142);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n.ace-tm.ace_multiselect .ace_selection.ace_start {\n box-shadow: 0 0 3px 0px white;\n}\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active-line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_gutter-active-line {\n background-color : #dcdcdc;\n}\n\n.ace-tm .ace_marker-layer .ace_selected-word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_indent-guide {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\n}\n\n.ace-tm .ace_indent-guide-active {\n background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;\n}\n'}),ace.define("ace/theme/textmate",["require","exports","module","ace/theme/textmate-css","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText=e("./textmate-css"),t.$id="ace/theme/textmate",e("../lib/dom").importCssString(t.cssText,t.cssClass,!1)}),ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/net","ace/lib/dom","ace/lib/app_config","ace/theme/textmate"],function(e,t,n){var i=e("./lib/lang"),r=e("./lib/net"),o=e("./lib/dom"),s=e("./lib/app_config").AppConfig;n.exports=t=new s;var a={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{},loadWorkerFromBlob:!0,sharedPopups:!1,useStrictCSP:null};t.get=function(e){if(!a.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return a[e]},t.set=function(e,t){if(a.hasOwnProperty(e))a[e]=t;else if(0==this.setDefaultValue("",e,t))throw new Error("Unknown config key: "+e);"useStrictCSP"==e&&o.useStrictCSP(t)},t.all=function(){return i.copyObject(a)},t.$modes={},t.moduleUrl=function(e,t){if(a.$moduleUrls[e])return a.$moduleUrls[e];var n=e.split("/"),i="snippets"==(t=t||n[n.length-2]||"")?"/":"-",r=n[n.length-1];if("worker"==t&&"-"==i){var o=new RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");r=r.replace(o,"")}(!r||r==t)&&n.length>1&&(r=n[n.length-2]);var s=a[t+"Path"];return null==s?s=a.basePath:"/"==i&&(t=i=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+i+r+this.get("suffix")},t.setModuleUrl=function(e,t){return a.$moduleUrls[e]=t};var l;t.setLoader=function(e){l=e},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(n,i){var o;if(Array.isArray(n))var s=n[0],a=n[1];else if("string"==typeof n)a=n;var u=function(n){if(n&&!t.$loading[a])return i&&i(n);if(t.$loading[a]||(t.$loading[a]=[]),t.$loading[a].push(i),!(t.$loading[a].length>1)){var o=function(){!function(t,n){"ace/theme/textmate"===t||"./theme/textmate"===t?n(null,e("./theme/textmate")):l?l(t,n):console.error("loader is not configured")}(a,function(e,n){n&&(t.$loaded[a]=n),t._emit("load.module",{name:a,module:n});var i=t.$loading[a];t.$loading[a]=null,i.forEach(function(e){e&&e(n)})})};if(!t.get("packaged"))return o();r.loadScript(t.moduleUrl(a,s),o),c()}};if(t.dynamicModules[a])t.dynamicModules[a]().then(function(e){e.default?u(e.default):u(e)});else{try{o=this.$require(a)}catch(e){}u(o||t.$loaded[a])}},t.$require=function(e){if("function"==typeof n.require){return n.require(e)}},t.setModuleLoader=function(e,n){t.dynamicModules[e]=n};var c=function(){a.basePath||a.workerPath||a.modePath||a.themePath||Object.keys(a.$moduleUrls).length||(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),c=function(){})};t.version="1.44.0"}),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(e,t,i){"use strict";e("./lib/fixoldbrowsers");var r=e("./config");r.setLoader(function(t,n){e([t],function(e){n(null,e)})});var o=function(){return this||"undefined"!=typeof window&&window}();function s(t){if(o&&o.document){r.set("packaged",t||e.packaged||i.packaged||o.define&&n.amdD.packaged);var s={},l="",c=document.currentScript||document._currentScript,u=c&&c.ownerDocument||document;c&&c.src&&(l=c.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var d=u.getElementsByTagName("script"),h=0;h<d.length;h++){var p=d[h],f=p.src||p.getAttribute("src");if(f){for(var g=p.attributes,m=0,y=g.length;m<y;m++){var w=g[m];0===w.name.indexOf("data-ace-")&&(s[a(w.name.replace(/^data-ace-/,""))]=w.value)}var b=f.match(/^(.*)\/ace([\-.]\w+)?\.js(\?|$)/);b&&(l=b[1])}}for(var v in l&&(s.base=s.base||l,s.packaged=!0),s.basePath=s.base,s.workerPath=s.workerPath||s.base,s.modePath=s.modePath||s.base,s.themePath=s.themePath||s.base,delete s.base,s)void 0!==s[v]&&r.set(v,s[v])}}function a(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}i.exports=function(t){r.init=s,r.$require=e,t.require=e,t.define=n.amdD},s(!0)}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var i=function(){function e(e,t,n,i){this.start={row:e,column:t},this.end={row:n,column:i}}return e.prototype.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},e.prototype.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},e.prototype.contains=function(e,t){return 0==this.compare(e,t)},e.prototype.compareRange=function(e){var t,n=e.end,i=e.start;return 1==(t=this.compare(n.row,n.column))?1==(t=this.compare(i.row,i.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(i.row,i.column))?-1:1==t?42:0},e.prototype.comparePoint=function(e){return this.compare(e.row,e.column)},e.prototype.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},e.prototype.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},e.prototype.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},e.prototype.isStart=function(e,t){return this.start.row==e&&this.start.column==t},e.prototype.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},e.prototype.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},e.prototype.inside=function(e,t){return 0==this.compare(e,t)&&(!this.isEnd(e,t)&&!this.isStart(e,t))},e.prototype.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},e.prototype.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},e.prototype.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:t<this.start.column?-1:t>this.end.column?1:0},e.prototype.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},e.prototype.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.clipRows=function(t,n){if(this.end.row>n)var i={row:n+1,column:0};else if(this.end.row<t)i={row:t,column:0};if(this.start.row>n)var r={row:n+1,column:0};else if(this.start.row<t)r={row:t,column:0};return e.fromPoints(r||this.start,i||this.end)},e.prototype.extend=function(t,n){var i=this.compare(t,n);if(0==i)return this;if(-1==i)var r={row:t,column:n};else var o={row:t,column:n};return e.fromPoints(r||this.start,o||this.end)},e.prototype.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},e.prototype.isMultiLine=function(){return this.start.row!==this.end.row},e.prototype.clone=function(){return e.fromPoints(this.start,this.end)},e.prototype.collapseRows=function(){return 0==this.end.column?new e(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new e(this.start.row,0,this.end.row,0)},e.prototype.toScreenRange=function(t){var n=t.documentToScreenPosition(this.start),i=t.documentToScreenPosition(this.end);return new e(n.row,n.column,i.row,i.column)},e.prototype.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t},e}();i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),ace.define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(e,t,n){"use strict";for(var i=e("./oop"),r={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta",91:"MetaLeft",92:"MetaRight",93:"ContextMenu"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,super:8,meta:8,command:8,cmd:8,control:1},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete","-13":"NumpadEnter",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",59:";",61:"=",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}},o={Command:224,Backspace:8,Tab:9,Return:13,Enter:13,Pause:19,Escape:27,PageUp:33,PageDown:34,End:35,Home:36,Insert:45,Delete:46,ArrowLeft:37,ArrowUp:38,ArrowRight:39,ArrowDown:40,Backquote:192,Minus:189,Equal:187,BracketLeft:219,Backslash:220,BracketRight:221,Semicolon:186,Quote:222,Comma:188,Period:190,Slash:191,Space:32,NumpadAdd:107,NumpadDecimal:110,NumpadSubtract:109,NumpadDivide:111,NumpadMultiply:106},s=0;s<10;s++)o["Digit"+s]=48+s,o["Numpad"+s]=96+s,r.PRINTABLE_KEYS[48+s]=""+s,r.FUNCTION_KEYS[96+s]="Numpad"+s;for(s=65;s<91;s++){var a=String.fromCharCode(s+32);o["Key"+a.toUpperCase()]=s,r.PRINTABLE_KEYS[s]=a}for(s=1;s<13;s++)o["F"+s]=111+s,r.FUNCTION_KEYS[111+s]="F"+s;var l={Shift:16,Control:17,Alt:18,Meta:224};for(var c in l)o[c]=o[c+"Left"]=o[c+"Right"]=l[c];for(var u in t.$codeToKeyCode=o,r.PRINTABLE_KEYS[173]="-",r.FUNCTION_KEYS){var d=r.FUNCTION_KEYS[u].toLowerCase();r[d]=parseInt(u,10)}for(var u in r.PRINTABLE_KEYS){d=r.PRINTABLE_KEYS[u].toLowerCase();r[d]=parseInt(u,10)}i.mixin(r,r.MODIFIER_KEYS),i.mixin(r,r.PRINTABLE_KEYS),i.mixin(r,r.FUNCTION_KEYS),r.enter=r.return,r.escape=r.esc,r.del=r.delete,function(){for(var e=["cmd","ctrl","alt","shift"],t=Math.pow(2,e.length);t--;)r.KEY_MODS[t]=e.filter(function(e){return t&r.KEY_MODS[e]}).join("-")+"-"}(),r.KEY_MODS[0]="",r.KEY_MODS[-1]="input-",i.mixin(t,r),t.default=t,t.keyCodeToString=function(e){var t=r[e];return"string"!=typeof t&&(t=String.fromCharCode(e)),t.toLowerCase()}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";var i,r=e("./keys"),o=e("./useragent"),s=null,a=0;function l(){return null==i&&function(){i=!1;try{document.createComment("").addEventListener("test",function(){},{get passive(){return i={passive:!1},!0}})}catch(e){}}(),i}function c(e,t,n){this.elem=e,this.type=t,this.callback=n}c.prototype.destroy=function(){d(this.elem,this.type,this.callback),this.elem=this.type=this.callback=void 0};var u=t.addListener=function(e,t,n,i){e.addEventListener(t,n,l()),i&&i.$toDestroy.push(new c(e,t,n))},d=t.removeListener=function(e,t,n){e.removeEventListener(t,n,l())};function h(e){return(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}function p(){s=Object.create(null)}if(t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation&&e.stopPropagation()},t.preventDefault=function(e){e.preventDefault&&e.preventDefault()},t.getButton=function(e){return"dblclick"==e.type?0:"contextmenu"==e.type||o.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.button},t.capture=function(e,t,n){var i=e&&e.ownerDocument||document;function r(e){t&&t(e),n&&n(e),d(i,"mousemove",t),d(i,"mouseup",r),d(i,"dragstart",r)}return u(i,"mousemove",t),u(i,"mouseup",r),u(i,"dragstart",r),r},t.addMouseWheelListener=function(e,t,n){u(e,"wheel",function(e){var n=e.deltaX||0,i=e.deltaY||0;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=.15*n,e.wheelY=.15*i;break;case e.DOM_DELTA_LINE:e.wheelX=15*n,e.wheelY=15*i;break;case e.DOM_DELTA_PAGE:e.wheelX=150*n,e.wheelY=150*i}t(e)},n)},t.addMultiMouseDownListener=function(e,n,i,r,s){var a,l,c,d=0,h={2:"dblclick",3:"tripleclick",4:"quadclick"};function p(e){if(0!==t.getButton(e)?d=0:e.detail>1?++d>4&&(d=1):d=1,o.isIE){var s=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-l)>5;c&&!s||(d=1),c&&clearTimeout(c),c=setTimeout(function(){c=null},n[d-1]||600),1==d&&(a=e.clientX,l=e.clientY)}if(e._clicks=d,i[r]("mousedown",e),d>4)d=0;else if(d>1)return i[r](h[d],e)}Array.isArray(e)||(e=[e]),e.forEach(function(e){u(e,"mousedown",p,s)})},t.getModifierString=function(e){return r.KEY_MODS[h(e)]},t.addCommandKeyListener=function(e,n,i){var l=null;u(e,"keydown",function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=function(e,t,n){var i=h(t);if(!n&&t.code&&(n=r.$codeToKeyCode[t.code]||n),!o.isMac&&s){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(i|=8),s.altGr){if(!(3&~i))return;s.altGr=0}if(18===n||17===n){var l=t.location;17===n&&1===l?1==s[n]&&(a=t.timeStamp):18===n&&3===i&&2===l&&t.timeStamp-a<50&&(s.altGr=!0)}}if(n in r.MODIFIER_KEYS&&(n=-1),i||13!==n||3!==t.location||(e(t,i,-n),!t.defaultPrevented)){if(o.isChromeOS&&8&i){if(e(t,i,n),t.defaultPrevented)return;i&=-9}return!!(i||n in r.FUNCTION_KEYS||n in r.PRINTABLE_KEYS)&&e(t,i,n)}}(n,e,e.keyCode);return l=e.defaultPrevented,t},i),u(e,"keypress",function(e){l&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),l=null)},i),u(e,"keyup",function(e){s[e.keyCode]=null},i),s||(p(),u(window,"focus",p))},"object"==typeof window&&window.postMessage&&!o.isOldIE){var f=1;t.nextTick=function(e,n){n=n||window;var i="zero-timeout-message-"+f++,r=function(o){o.data==i&&(t.stopPropagation(o),d(n,"message",r),e())};u(n,"message",r),n.postMessage(i,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout(function n(){t.$idleBlocked?setTimeout(n,100):e()},n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout(function(){t.$idleBlocked=!1},e||100)},t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/clipboard",["require","exports","module"],function(e,t,n){"use strict";var i;n.exports={lineMode:!1,pasteCancelled:function(){return!!(i&&i>Date.now()-50)||(i=!1)},cancel:function(){i=Date.now()}}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(e,t,n){"use strict";var i=e("../lib/event"),r=e("../config").nls,o=e("../lib/useragent"),s=e("../lib/dom"),a=e("../lib/lang"),l=e("../clipboard"),c=o.isChrome<18,u=o.isIE,d=o.isChrome>63,h=400,p=e("../lib/keys"),f=p.KEY_MODS,g=o.isIOS,m=g?/\s/:/\n/,y=o.isMobile,w=function(){function e(e,t){var n=this;this.host=t,this.text=s.createElement("textarea"),this.text.className="ace_text-input",this.text.setAttribute("wrap","off"),this.text.setAttribute("autocomplete","off"),this.text.setAttribute("autocorrect","off"),this.text.setAttribute("autocapitalize","off"),this.text.setAttribute("spellcheck","false"),this.text.style.opacity="0",e.insertBefore(this.text,e.firstChild),this.copied=!1,this.pasted=!1,this.inComposition=!1,this.sendingText=!1,this.tempStyle="",y||(this.text.style.fontSize="1px"),this.commandMode=!1,this.ignoreFocusEvents=!1,this.lastValue="",this.lastSelectionStart=0,this.lastSelectionEnd=0,this.lastRestoreEnd=0,this.rowStart=Number.MAX_SAFE_INTEGER,this.rowEnd=Number.MIN_SAFE_INTEGER,this.numberOfExtraLines=0;try{this.$isFocused=document.activeElement===this.text}catch(e){}this.cancelComposition=this.cancelComposition.bind(this),this.setAriaOptions({role:"textbox"}),i.addListener(this.text,"blur",function(e){n.ignoreFocusEvents||(t.onBlur(e),n.$isFocused=!1)},t),i.addListener(this.text,"focus",function(e){if(!n.ignoreFocusEvents){if(n.$isFocused=!0,o.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),o.isEdge?setTimeout(n.resetSelection.bind(n)):n.resetSelection()}},t),this.$focusScroll=!1,t.on("beforeEndOperation",function(){var e=t.curOp,i=e&&e.command&&e.command.name;if("insertstring"!=i){var r=i&&(e.docChanged||e.selectionChanged);n.inComposition&&r&&(n.lastValue=n.text.value="",n.onCompositionEnd()),n.resetSelection()}}),t.on("changeSelection",this.setAriaLabel.bind(this)),this.resetSelection=g?this.$resetSelectionIOS:this.$resetSelection,this.$isFocused&&t.onFocus(),this.inputHandler=null,this.afterContextMenu=!1,i.addCommandKeyListener(this.text,function(e,i,r){if(!n.inComposition)return t.onCommandKey(e,i,r)},t),i.addListener(this.text,"select",this.onSelect.bind(this),t),i.addListener(this.text,"input",this.onInput.bind(this),t),i.addListener(this.text,"cut",this.onCut.bind(this),t),i.addListener(this.text,"copy",this.onCopy.bind(this),t),i.addListener(this.text,"paste",this.onPaste.bind(this),t),"oncut"in this.text&&"oncopy"in this.text&&"onpaste"in this.text||i.addListener(e,"keydown",function(e){if((!o.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:n.onCopy(e);break;case 86:n.onPaste(e);break;case 88:n.onCut(e)}},t),this.syncComposition=a.delayedCall(this.onCompositionUpdate.bind(this),50).schedule.bind(null,null),i.addListener(this.text,"compositionstart",this.onCompositionStart.bind(this),t),i.addListener(this.text,"compositionupdate",this.onCompositionUpdate.bind(this),t),i.addListener(this.text,"keyup",this.onKeyup.bind(this),t),i.addListener(this.text,"keydown",this.syncComposition.bind(this),t),i.addListener(this.text,"compositionend",this.onCompositionEnd.bind(this),t),this.closeTimeout,i.addListener(this.text,"mouseup",this.$onContextMenu.bind(this),t),i.addListener(this.text,"mousedown",function(e){e.preventDefault(),n.onContextMenuClose()},t),i.addListener(t.renderer.scroller,"contextmenu",this.$onContextMenu.bind(this),t),i.addListener(this.text,"contextmenu",this.$onContextMenu.bind(this),t),g&&this.addIosSelectionHandler(e,t,this.text)}return e.prototype.addIosSelectionHandler=function(e,t,n){var i=this,r=null,o=!1;n.addEventListener("keydown",function(e){r&&clearTimeout(r),o=!0},!0),n.addEventListener("keyup",function(e){r=setTimeout(function(){o=!1},100)},!0);var s=function(e){if(document.activeElement===n&&!(o||i.inComposition||t.$mouseHandler.isMousePressed||i.copied)){var r=n.selectionStart,s=n.selectionEnd,a=null,l=0;if(0==r?a=p.up:1==r?a=p.home:s>i.lastSelectionEnd&&"\n"==i.lastValue[s]?a=p.end:r<i.lastSelectionStart&&" "==i.lastValue[r-1]?(a=p.left,l=f.option):r<i.lastSelectionStart||r==i.lastSelectionStart&&i.lastSelectionEnd!=i.lastSelectionStart&&r==s?a=p.left:s>i.lastSelectionEnd&&i.lastValue.slice(0,s).split("\n").length>2?a=p.down:s>i.lastSelectionEnd&&" "==i.lastValue[s-1]?(a=p.right,l=f.option):(s>i.lastSelectionEnd||s==i.lastSelectionEnd&&i.lastSelectionEnd!=i.lastSelectionStart&&r==s)&&(a=p.right),r!==s&&(l|=f.shift),a){if(!t.onCommandKey({},l,a)&&t.commands){a=p.keyCodeToString(a);var c=t.commands.findKeyCommand(l,a);c&&t.execCommand(c)}i.lastSelectionStart=r,i.lastSelectionEnd=s,i.resetSelection("")}}};document.addEventListener("selectionchange",s),t.on("destroy",function(){document.removeEventListener("selectionchange",s)})},e.prototype.onContextMenuClose=function(){var e=this;clearTimeout(this.closeTimeout),this.closeTimeout=setTimeout(function(){e.tempStyle&&(e.text.style.cssText=e.tempStyle,e.tempStyle=""),e.host.renderer.$isMousePressed=!1,e.host.renderer.$keepTextAreaAtCursor&&e.host.renderer.$moveTextAreaToCursor()},0)},e.prototype.$onContextMenu=function(e){this.host.textInput.onContextMenu(e),this.onContextMenuClose()},e.prototype.onKeyup=function(e){27==e.keyCode&&this.text.value.length<this.text.selectionStart&&(this.inComposition||(this.lastValue=this.text.value),this.lastSelectionStart=this.lastSelectionEnd=-1,this.resetSelection()),this.syncComposition()},e.prototype.cancelComposition=function(){this.ignoreFocusEvents=!0,this.text.blur(),this.text.focus(),this.ignoreFocusEvents=!1},e.prototype.onCompositionStart=function(e){if(!this.inComposition&&this.host.onCompositionStart&&!this.host.$readOnly&&(this.inComposition={},!this.commandMode)){e.data&&(this.inComposition.useTextareaForIME=!1),setTimeout(this.onCompositionUpdate.bind(this),0),this.host._signal("compositionStart"),this.host.on("mousedown",this.cancelComposition);var t=this.host.getSelectionRange();t.end.row=t.start.row,t.end.column=t.start.column,this.inComposition.markerRange=t,this.inComposition.selectionStart=this.lastSelectionStart,this.host.onCompositionStart(this.inComposition),this.inComposition.useTextareaForIME?(this.lastValue=this.text.value="",this.lastSelectionStart=0,this.lastSelectionEnd=0):(this.text.msGetInputContext&&(this.inComposition.context=this.text.msGetInputContext()),this.text.getInputContext&&(this.inComposition.context=this.text.getInputContext()))}},e.prototype.onCompositionUpdate=function(){if(this.inComposition&&this.host.onCompositionUpdate&&!this.host.$readOnly){if(this.commandMode)return this.cancelComposition();if(this.inComposition.useTextareaForIME)this.host.onCompositionUpdate(this.text.value);else{var e=this.text.value;this.sendText(e),this.inComposition.markerRange&&(this.inComposition.context&&(this.inComposition.markerRange.start.column=this.inComposition.selectionStart=this.inComposition.context.compositionStartOffset),this.inComposition.markerRange.end.column=this.inComposition.markerRange.start.column+this.lastSelectionEnd-this.inComposition.selectionStart+this.lastRestoreEnd)}}},e.prototype.onCompositionEnd=function(e){this.host.onCompositionEnd&&!this.host.$readOnly&&(this.inComposition=!1,this.host.onCompositionEnd(),this.host.off("mousedown",this.cancelComposition),e&&this.onInput())},e.prototype.onCut=function(e){this.doCopy(e,!0)},e.prototype.onCopy=function(e){this.doCopy(e,!1)},e.prototype.onPaste=function(e){var t=this.handleClipboardData(e);l.pasteCancelled()||("string"==typeof t?(t&&this.host.onPaste(t,e),o.isIE&&setTimeout(this.resetSelection),i.preventDefault(e)):(this.text.value="",this.pasted=!0))},e.prototype.doCopy=function(e,t){var n=this,r=this.host.getCopyText();if(!r)return i.preventDefault(e);this.handleClipboardData(e,r)?(g&&(this.resetSelection(r),this.copied=r,setTimeout(function(){n.copied=!1},10)),t?this.host.onCut():this.host.onCopy(),i.preventDefault(e)):(this.copied=!0,this.text.value=r,this.text.select(),setTimeout(function(){n.copied=!1,n.resetSelection(),t?n.host.onCut():n.host.onCopy()}))},e.prototype.handleClipboardData=function(e,t,n){var i=e.clipboardData||window.clipboardData;if(i&&!c){var r=u||n?"Text":"text/plain";try{return t?!1!==i.setData(r,t):i.getData(r)}catch(e){if(!n)return this.handleClipboardData(e,t,!0)}}},e.prototype.onInput=function(e){if(this.inComposition)return this.onCompositionUpdate();if(e&&e.inputType){if("historyUndo"==e.inputType)return this.host.execCommand("undo");if("historyRedo"==e.inputType)return this.host.execCommand("redo")}var t=this.text.value,n=this.sendText(t,!0);(t.length>500||m.test(n)||y&&this.lastSelectionStart<1&&this.lastSelectionStart==this.lastSelectionEnd)&&this.resetSelection()},e.prototype.sendText=function(e,t){if(this.afterContextMenu&&(this.afterContextMenu=!1),this.pasted)return this.resetSelection(),e&&this.host.onPaste(e),this.pasted=!1,"";for(var n=this.text.selectionStart,i=this.text.selectionEnd,r=this.lastSelectionStart,s=this.lastValue.length-this.lastSelectionEnd,a=e,l=e.length-n,c=e.length-i,u=0;r>0&&this.lastValue[u]==e[u];)u++,r--;for(a=a.slice(u),u=1;s>0&&this.lastValue.length-u>this.lastSelectionStart-1&&this.lastValue[this.lastValue.length-u]==e[e.length-u];)u++,s--;l-=u-1,c-=u-1;var d=a.length-u+1;if(d<0&&(r=-d,d=0),a=a.slice(0,d),!(t||a||l||r||s||c))return"";this.sendingText=!0;var h=!1;return o.isAndroid&&". "==a&&(a=" ",h=!0),a&&!r&&!s&&!l&&!c||this.commandMode?this.host.onTextInput(a):this.host.onTextInput(a,{extendLeft:r,extendRight:s,restoreStart:l,restoreEnd:c}),this.sendingText=!1,this.lastValue=e,this.lastSelectionStart=n,this.lastSelectionEnd=i,this.lastRestoreEnd=c,h?"\n":a},e.prototype.onSelect=function(e){var t=this;if(!this.inComposition){var n;this.copied?this.copied=!1:0===(n=this.text).selectionStart&&n.selectionEnd>=t.lastValue.length&&n.value===t.lastValue&&t.lastValue&&n.selectionEnd!==t.lastSelectionEnd?(this.host.selectAll(),this.resetSelection()):y&&this.text.selectionStart!=this.lastSelectionStart&&this.resetSelection()}},e.prototype.$resetSelectionIOS=function(e){if(this.$isFocused&&(!this.copied||e)&&!this.sendingText){e||(e="");var t="\n ab"+e+"cde fg\n";t!=this.text.value&&(this.text.value=this.lastValue=t);var n=4+(e.length||(this.host.selection.isEmpty()?0:1));4==this.lastSelectionStart&&this.lastSelectionEnd==n||this.text.setSelectionRange(4,n),this.lastSelectionStart=4,this.lastSelectionEnd=n}},e.prototype.$resetSelection=function(){var e=this;if(!this.inComposition&&!this.sendingText&&(this.$isFocused||this.afterContextMenu)){this.inComposition=!0;var t=0,n=0,i="",r=function(t,n){for(var i=n,r=1;r<=t-e.rowStart&&r<2*e.numberOfExtraLines+1;r++)i+=e.host.session.getLine(t-r).length+1;return i};if(this.host.session){var o=this.host.selection,s=o.getRange(),a=o.cursor.row;a===this.rowEnd+1?(this.rowStart=this.rowEnd+1,this.rowEnd=this.rowStart+2*this.numberOfExtraLines):a===this.rowStart-1?(this.rowEnd=this.rowStart-1,this.rowStart=this.rowEnd-2*this.numberOfExtraLines):(a<this.rowStart-1||a>this.rowEnd+1)&&(this.rowStart=a>this.numberOfExtraLines?a-this.numberOfExtraLines:0,this.rowEnd=a>this.numberOfExtraLines?a+this.numberOfExtraLines:2*this.numberOfExtraLines);for(var l=[],c=this.rowStart;c<=this.rowEnd;c++)l.push(this.host.session.getLine(c));if(i=l.join("\n"),t=r(s.start.row,s.start.column),n=r(s.end.row,s.end.column),s.start.row<this.rowStart){var u=this.host.session.getLine(this.rowStart-1);t=s.start.row<this.rowStart-1?0:t,n+=u.length+1,i=u+"\n"+i}else if(s.end.row>this.rowEnd){var d=this.host.session.getLine(this.rowEnd+1);n=s.end.row>this.rowEnd+1?d.length:s.end.column,n+=i.length+1,i=i+"\n"+d}else y&&a>0&&(i="\n"+i,n+=1,t+=1);i.length>h&&(t<h&&n<h?i=i.slice(0,h):(i="\n",t==n?t=n=0:(t=0,n=1)));var p=i+"\n\n";p!=this.lastValue&&(this.text.value=this.lastValue=p,this.lastSelectionStart=this.lastSelectionEnd=p.length)}if(this.afterContextMenu&&(this.lastSelectionStart=this.text.selectionStart,this.lastSelectionEnd=this.text.selectionEnd),this.lastSelectionEnd!=n||this.lastSelectionStart!=t||this.text.selectionEnd!=this.lastSelectionEnd)try{this.text.setSelectionRange(t,n),this.lastSelectionStart=t,this.lastSelectionEnd=n}catch(e){}this.inComposition=!1}},e.prototype.setHost=function(e){this.host=e},e.prototype.setNumberOfExtraLines=function(e){this.rowStart=Number.MAX_SAFE_INTEGER,this.rowEnd=Number.MIN_SAFE_INTEGER,this.numberOfExtraLines=e<0?0:e},e.prototype.setAriaLabel=function(){var e="";if(this.host.$textInputAriaLabel&&(e+="".concat(this.host.$textInputAriaLabel,", ")),this.host.session){var t=this.host.session.selection.cursor.row;e+=r("text-input.aria-label","Cursor at row $0",[t+1])}this.text.setAttribute("aria-label",e)},e.prototype.setAriaOptions=function(e){e.activeDescendant?(this.text.setAttribute("aria-haspopup","true"),this.text.setAttribute("aria-autocomplete",e.inline?"both":"list"),this.text.setAttribute("aria-activedescendant",e.activeDescendant)):(this.text.setAttribute("aria-haspopup","false"),this.text.setAttribute("aria-autocomplete","both"),this.text.removeAttribute("aria-activedescendant")),e.role&&this.text.setAttribute("role",e.role),e.setLabel&&(this.text.setAttribute("aria-roledescription",r("text-input.aria-roledescription","editor")),this.setAriaLabel())},e.prototype.focus=function(){var e=this;if(this.setAriaOptions({setLabel:this.host.renderer.enableKeyboardAccessibility}),this.tempStyle||d||"browser"==this.$focusScroll)return this.text.focus({preventScroll:!0});var t=this.text.style.top;this.text.style.position="fixed",this.text.style.top="0px";try{var n=0!=this.text.getBoundingClientRect().top}catch(e){return}var i=[];if(n)for(var r=this.text.parentElement;r&&1==r.nodeType;)i.push(r),r.setAttribute("ace_nocontext","true"),r=!r.parentElement&&r.getRootNode?r.getRootNode().host:r.parentElement;this.text.focus({preventScroll:!0}),n&&i.forEach(function(e){e.removeAttribute("ace_nocontext")}),setTimeout(function(){e.text.style.position="","0px"==e.text.style.top&&(e.text.style.top=t)},0)},e.prototype.blur=function(){this.text.blur()},e.prototype.isFocused=function(){return this.$isFocused},e.prototype.setInputHandler=function(e){this.inputHandler=e},e.prototype.getInputHandler=function(){return this.inputHandler},e.prototype.getElement=function(){return this.text},e.prototype.setCommandMode=function(e){this.commandMode=e,this.text.readOnly=!1},e.prototype.setReadOnly=function(e){this.commandMode||(this.text.readOnly=e)},e.prototype.setCopyWithEmptySelection=function(e){},e.prototype.onContextMenu=function(e){this.afterContextMenu=!0,this.resetSelection(),this.host._emit("nativecontextmenu",{target:this.host,domEvent:e}),this.moveToMouse(e,!0)},e.prototype.moveToMouse=function(e,t){var n=this;this.tempStyle||(this.tempStyle=this.text.style.cssText),this.text.style.cssText=(t?"z-index:100000;":"")+(o.isIE?"opacity:0.1;":"")+"text-indent: -"+(this.lastSelectionStart+this.lastSelectionEnd)*this.host.renderer.characterWidth*.5+"px;";var r=this.host.container.getBoundingClientRect(),a=s.computedStyle(this.host.container),l=r.top+(parseInt(a.borderTopWidth)||0),c=r.left+(parseInt(a.borderLeftWidth)||0),u=r.bottom-l-this.text.clientHeight-2,d=function(e){s.translate(n.text,e.clientX-c-2,Math.min(e.clientY-l-2,u))};d(e),"mousedown"==e.type&&(this.host.renderer.$isMousePressed=!0,clearTimeout(this.closeTimeout),o.isWin&&i.capture(this.host.container,d,this.onContextMenuClose.bind(this)))},e.prototype.destroy=function(){this.text.parentElement&&this.text.parentElement.removeChild(this.text)},e}();t.TextInput=w,t.$setUserAgentForTests=function(e,t){y=e,g=t}}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";var i=e("../lib/useragent"),r=function(){function e(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e));["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}return e.prototype.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var r=this.editor,o=e.getButton();return 0!==o?((r.getSelectionRange().isEmpty()||1==o)&&r.selection.moveToPosition(n),void(2==o&&(r.textInput.onContextMenu(e.domEvent),i.isMozilla||e.preventDefault()))):(this.mousedownEvent.time=Date.now(),!t||r.isFocused()||(r.focus(),!this.$focusTimeout||this.$clickSelection||r.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e)))},e.prototype.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.setStyle("ace_selecting"),this.setState("select"))},e.prototype.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var i=this.$clickSelection.comparePoint(n);if(-1==i)e=this.$clickSelection.end;else if(1==i)e=this.$clickSelection.start;else{var r=o(this.$clickSelection,n,t.session);n=r.cursor,e=r.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},e.prototype.extendSelectionBy=function(e){var t,n=this.editor,i=n.renderer.screenToTextCoordinates(this.x,this.y),r=n.selection[e](i.row,i.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(r.start),a=this.$clickSelection.comparePoint(r.end);if(-1==s&&a<=0)t=this.$clickSelection.end,r.end.row==i.row&&r.end.column==i.column||(i=r.start);else if(1==a&&s>=0)t=this.$clickSelection.start,r.start.row==i.row&&r.start.column==i.column||(i=r.end);else if(-1==s&&1==a)i=r.end,t=r.start;else{var l=o(this.$clickSelection,i,n.session);i=l.cursor,t=l.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(i),n.renderer.scrollCursorIntoView()},e.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},e.prototype.focusWait=function(){var e,t,n,i,r=(e=this.mousedownEvent.x,t=this.mousedownEvent.y,n=this.x,i=this.y,Math.sqrt(Math.pow(n-e,2)+Math.pow(i-t,2))),o=Date.now();(r>0||o-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},e.prototype.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,i=n.session.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},e.prototype.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var i=n.getSelectionRange();i.isMultiLine()&&i.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(i.start.row),this.$clickSelection.end=n.selection.getLineRange(i.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},e.prototype.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},e.prototype.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,i=e.domEvent.timeStamp,r=i-n.t,o=r?e.wheelX/r:n.vx,s=r?e.wheelY/r:n.vy;r<550&&(o=(o+n.vx)/2,s=(s+n.vy)/2);var a=Math.abs(o/s),l=!1;if(a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l)n.allowed=i;else if(i-n.allowed<550){Math.abs(o)<=1.5*Math.abs(n.vx)&&Math.abs(s)<=1.5*Math.abs(n.vy)?(l=!0,n.allowed=i):n.allowed=0}return n.t=i,n.vx=o,n.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},e}();function o(e,t,n){if(e.start.row==e.end.row)var i=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)i=2*t.row-e.start.row-e.end.row;else var i=3*t.column-2*n.getLine(e.start.row).length;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}r.prototype.selectEnd=r.prototype.selectByLinesEnd,r.prototype.selectAllEnd=r.prototype.selectByLinesEnd,r.prototype.selectByWordsEnd=r.prototype.selectByLinesEnd,t.DefaultHandlers=r}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";var i=e("../lib/event"),r=e("../lib/useragent"),o=function(){function e(e,t){this.speed,this.wheelX,this.wheelY,this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1}return e.prototype.stopPropagation=function(){i.stopPropagation(this.domEvent),this.propagationStopped=!0},e.prototype.preventDefault=function(){i.preventDefault(this.domEvent),this.defaultPrevented=!0},e.prototype.stop=function(){this.stopPropagation(),this.preventDefault()},e.prototype.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},e.prototype.getGutterRow=function(){var e=this.getDocumentPosition().row;return this.editor.session.documentToScreenRow(e,0)-this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row,0)},e.prototype.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor.getSelectionRange();if(e.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=e.contains(t.row,t.column)}return this.$inSelection},e.prototype.getButton=function(){return i.getButton(this.domEvent)},e.prototype.getShiftKey=function(){return this.domEvent.shiftKey},e.prototype.getAccelKey=function(){return r.isMac?this.domEvent.metaKey:this.domEvent.ctrlKey},e}();t.MouseEvent=o}),ace.define("ace/lib/scroll",["require","exports","module"],function(e,t,n){t.preventParentScroll=function(e){e.stopPropagation();var t=e.currentTarget;t.scrollHeight>t.clientHeight||e.preventDefault()}}),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range","ace/lib/scroll"],function(e,t,n){"use strict";var i,r=this&&this.__extends||(i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},i(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("./lib/dom"),a=(e("./lib/event"),e("./range").Range),l=e("./lib/scroll").preventParentScroll,c="ace_tooltip",u=function(){function e(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}return e.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=c,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},e.prototype.getElement=function(){return this.$element||this.$init()},e.prototype.setText=function(e){this.getElement().textContent=e},e.prototype.setHtml=function(e){this.getElement().innerHTML=e},e.prototype.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},e.prototype.setClassName=function(e){s.addCssClass(this.getElement(),e)},e.prototype.setTheme=function(e){this.theme&&(this.theme.isDark&&s.removeCssClass(this.getElement(),"ace_dark"),this.theme.cssClass&&s.removeCssClass(this.getElement(),this.theme.cssClass)),e.isDark&&s.addCssClass(this.getElement(),"ace_dark"),e.cssClass&&s.addCssClass(this.getElement(),e.cssClass),this.theme={isDark:e.isDark,cssClass:e.cssClass}},e.prototype.show=function(e,t,n){null!=e&&this.setText(e),null!=t&&null!=n&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},e.prototype.hide=function(e){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=c,this.isOpen=!1)},e.prototype.getHeight=function(){return this.getElement().offsetHeight},e.prototype.getWidth=function(){return this.getElement().offsetWidth},e.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},e}(),d=new(function(){function e(){this.popups=[]}return e.prototype.addPopup=function(e){this.popups.push(e),this.updatePopups()},e.prototype.removePopup=function(e){var t=this.popups.indexOf(e);-1!==t&&(this.popups.splice(t,1),this.updatePopups())},e.prototype.updatePopups=function(){var e,t,n,i;this.popups.sort(function(e,t){return t.priority-e.priority});var r=[];try{for(var s=o(this.popups),a=s.next();!a.done;a=s.next()){var l=a.value,c=!0;try{for(var u=(n=void 0,o(r)),d=u.next();!d.done;d=u.next()){var h=d.value;if(this.doPopupsOverlap(h,l)){c=!1;break}}}catch(e){n={error:e}}finally{try{d&&!d.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}c?r.push(l):l.hide()}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}},e.prototype.doPopupsOverlap=function(e,t){var n=e.getElement().getBoundingClientRect(),i=t.getElement().getBoundingClientRect();return n.left<i.right&&n.right>i.left&&n.top<i.bottom&&n.bottom>i.top},e}());t.popupManager=d,t.Tooltip=u;var h=function(e){function t(t){void 0===t&&(t=document.body);var n=e.call(this,t)||this;n.timeout=void 0,n.lastT=0,n.idleTime=350,n.lastEvent=void 0,n.onMouseOut=n.onMouseOut.bind(n),n.onMouseMove=n.onMouseMove.bind(n),n.waitForHover=n.waitForHover.bind(n),n.hide=n.hide.bind(n);var i=n.getElement();return i.style.whiteSpace="pre-wrap",i.style.pointerEvents="auto",i.addEventListener("mouseout",n.onMouseOut),i.tabIndex=-1,i.addEventListener("blur",function(){i.contains(document.activeElement)||this.hide()}.bind(n)),i.addEventListener("wheel",l),n}return r(t,e),t.prototype.addToEditor=function(e){e.on("mousemove",this.onMouseMove),e.on("mousedown",this.hide);var t=e.renderer.getMouseEventTarget();t&&"function"==typeof t.removeEventListener&&t.addEventListener("mouseout",this.onMouseOut,!0)},t.prototype.removeFromEditor=function(e){e.off("mousemove",this.onMouseMove),e.off("mousedown",this.hide);var t=e.renderer.getMouseEventTarget();t&&"function"==typeof t.removeEventListener&&t.removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},t.prototype.onMouseMove=function(e,t){this.lastEvent=e,this.lastT=Date.now();var n=t.$mouseHandler.isMousePressed;if(this.isOpen){var i=this.lastEvent&&this.lastEvent.getDocumentPosition();this.range&&this.range.contains(i.row,i.column)&&!n&&!this.isOutsideOfText(this.lastEvent)||this.hide()}this.timeout||n||(this.lastEvent=e,this.timeout=setTimeout(this.waitForHover,this.idleTime))},t.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var e=Date.now()-this.lastT;this.idleTime-e>10?this.timeout=setTimeout(this.waitForHover,this.idleTime-e):(this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor))},t.prototype.isOutsideOfText=function(e){var t=e.editor,n=e.getDocumentPosition(),i=t.session.getLine(n.row);if(n.column==i.length){var r=t.renderer.pixelToScreenCoordinates(e.clientX,e.clientY),o=t.session.documentToScreenPosition(n.row,n.column);if(o.column!=r.column||o.row!=r.row)return!0}return!1},t.prototype.setDataProvider=function(e){this.$gatherData=e},t.prototype.showForRange=function(e,t,n,i){if(!(i&&i!=this.lastEvent||this.isOpen&&document.activeElement==this.getElement())){var r=e.renderer;this.isOpen||(d.addPopup(this),this.$registerCloseEvents(),this.setTheme(r.theme)),this.isOpen=!0,this.range=a.fromPoints(t.start,t.end);var o=r.textToScreenCoordinates(t.start.row,t.start.column),l=r.scroller.getBoundingClientRect();o.pageX<l.left&&(o.pageX=l.left);var c=this.getElement();c.innerHTML="",c.appendChild(n),c.style.maxHeight="",c.style.display="block",this.$setPosition(e,o,!0,t),s.$fixPositionBug(c)}},t.prototype.$setPosition=function(e,t,n,i){n&&this.addMarker(i,e.session);var r=e.renderer,o=this.getElement(),s=o.offsetHeight,a=o.offsetWidth,l=t.pageY,c=t.pageX,u=window.innerHeight-l-r.lineHeight,d=this.$shouldPlaceAbove(s,l,u-10);o.style.maxHeight=(d?l:u)-10+"px",o.style.top=d?"":l+r.lineHeight+"px",o.style.bottom=d?window.innerHeight-l+"px":"",o.style.left=Math.min(c,window.innerWidth-a-10)+"px"},t.prototype.$shouldPlaceAbove=function(e,t,n){return!(t-e<0&&t<n)},t.prototype.addMarker=function(e,t){this.marker&&this.$markerSession.removeMarker(this.marker),this.$markerSession=t,this.marker=t&&t.addMarker(e,"ace_highlight-marker","text")},t.prototype.hide=function(e){e&&this.$fromKeyboard&&"keydown"==e.type&&"Escape"==e.code||(e||document.activeElement!=this.getElement())&&(e&&e.target&&("keydown"!=e.type||e.ctrlKey||e.metaKey)&&this.$element.contains(e.target)||(this.lastEvent=null,this.timeout&&clearTimeout(this.timeout),this.timeout=null,this.addMarker(null),this.isOpen&&(this.$fromKeyboard=!1,this.$removeCloseEvents(),this.getElement().style.display="none",this.isOpen=!1,d.removePopup(this))))},t.prototype.$registerCloseEvents=function(){window.addEventListener("keydown",this.hide,!0),window.addEventListener("wheel",this.hide,!0),window.addEventListener("mousedown",this.hide,!0)},t.prototype.$removeCloseEvents=function(){window.removeEventListener("keydown",this.hide,!0),window.removeEventListener("wheel",this.hide,!0),window.removeEventListener("mousedown",this.hide,!0)},t.prototype.onMouseOut=function(e){this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.lastEvent=null,this.isOpen&&e.relatedTarget&&!this.getElement().contains(e.relatedTarget)&&(e&&e.currentTarget.contains(e.relatedTarget)||e.relatedTarget.classList.contains("ace_content")||this.hide())},t}(u);t.HoverTooltip=h}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/mouse/mouse_event","ace/tooltip","ace/config","ace/range"],function(e,t,n){"use strict";var i,r=this&&this.__extends||(i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},i(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("../lib/dom"),a=e("./mouse_event").MouseEvent,l=e("../tooltip").HoverTooltip,c=e("../config").nls,u=e("../range").Range;t.GutterHandler=function(e){var t=e.editor,n=t.renderer.$gutterLayer;e.$tooltip=new d(t),e.$tooltip.addToEditor(t),e.$tooltip.setDataProvider(function(t,n){var i=t.getDocumentPosition().row;e.$tooltip.showTooltip(i)}),e.editor.setDefaultHandler("guttermousedown",function(i){if(t.isFocused()&&0==i.getButton()&&"foldWidgets"!=n.getRegion(i)){var r=i.getDocumentPosition().row,o=t.session.selection;if(i.getShiftKey())o.selectTo(r,0);else{if(2==i.domEvent.detail)return t.selectAll(),i.preventDefault();e.$clickSelection=t.selection.getLineRange(r)}return e.setState("selectByLines"),e.captureMouse(i),i.preventDefault()}})};var d=function(e){function t(n){var i=e.call(this,n.container)||this;i.id="gt"+ ++t.$uid,i.editor=n,i.visibleTooltipRow;var r=i.getElement();return r.setAttribute("role","tooltip"),r.setAttribute("id",i.id),r.style.pointerEvents="auto",i.idleTime=50,i.onDomMouseMove=i.onDomMouseMove.bind(i),i.onDomMouseOut=i.onDomMouseOut.bind(i),i.setClassName("ace_gutter-tooltip"),i}return r(t,e),t.prototype.onDomMouseMove=function(e){var t=new a(e,this.editor);this.onMouseMove(t,this.editor)},t.prototype.onDomMouseOut=function(e){var t=new a(e,this.editor);this.onMouseOut(t)},t.prototype.addToEditor=function(t){var n=t.renderer.$gutter;n.addEventListener("mousemove",this.onDomMouseMove),n.addEventListener("mouseout",this.onDomMouseOut),e.prototype.addToEditor.call(this,t)},t.prototype.removeFromEditor=function(t){var n=t.renderer.$gutter;n.removeEventListener("mousemove",this.onDomMouseMove),n.removeEventListener("mouseout",this.onDomMouseOut),e.prototype.removeFromEditor.call(this,t)},t.prototype.destroy=function(){this.editor&&this.removeFromEditor(this.editor),e.prototype.destroy.call(this)},Object.defineProperty(t,"annotationLabels",{get:function(){return{error:{singular:c("gutter-tooltip.aria-label.error.singular","error"),plural:c("gutter-tooltip.aria-label.error.plural","errors")},security:{singular:c("gutter-tooltip.aria-label.security.singular","security finding"),plural:c("gutter-tooltip.aria-label.security.plural","security findings")},warning:{singular:c("gutter-tooltip.aria-label.warning.singular","warning"),plural:c("gutter-tooltip.aria-label.warning.plural","warnings")},info:{singular:c("gutter-tooltip.aria-label.info.singular","information message"),plural:c("gutter-tooltip.aria-label.info.plural","information messages")},hint:{singular:c("gutter-tooltip.aria-label.hint.singular","suggestion"),plural:c("gutter-tooltip.aria-label.hint.plural","suggestions")}}},enumerable:!1,configurable:!0}),t.prototype.showTooltip=function(e){var n,i,r=this.editor.renderer.$gutterLayer,o=r.$annotations[e];i=o?{displayText:Array.from(o.displayText),type:Array.from(o.type)}:{displayText:[],type:[]};var a=r.session.getFoldLine(e);if(a&&r.$showFoldedAnnotations){for(var l,c={error:[],security:[],warning:[],info:[],hint:[]},d={error:1,security:2,warning:3,info:4,hint:5},h=e+1;h<=a.end.row;h++)if(r.$annotations[h])for(var p=0;p<r.$annotations[h].text.length;p++){var f=r.$annotations[h].type[p];c[f].push(r.$annotations[h].text[p]),(!l||d[f]<d[l])&&(l=f)}if(["error","security","warning"].includes(l)){var g="".concat(t.annotationsToSummaryString(c)," in folded code.");i.displayText.push(g),i.type.push(l+"_fold")}}if(0===i.displayText.length)return this.hide();var m={error:[],security:[],warning:[],info:[],hint:[]},y=r.$useSvgGutterIcons?"ace_icon_svg":"ace_icon";for(h=0;h<i.displayText.length;h++){var w=s.createElement("span"),b=s.createElement("span");(n=b.classList).add.apply(n,["ace_".concat(i.type[h]),y]),b.setAttribute("aria-label","".concat(t.annotationLabels[i.type[h].replace("_fold","")].singular)),b.setAttribute("role","img"),b.appendChild(s.createTextNode(" ")),w.appendChild(b),w.appendChild(s.createTextNode(i.displayText[h])),w.appendChild(s.createElement("br")),m[i.type[h].replace("_fold","")].push(w)}var v=s.createElement("span");m.error.forEach(function(e){return v.appendChild(e)}),m.security.forEach(function(e){return v.appendChild(e)}),m.warning.forEach(function(e){return v.appendChild(e)}),m.info.forEach(function(e){return v.appendChild(e)}),m.hint.forEach(function(e){return v.appendChild(e)}),v.setAttribute("aria-live","polite");var M=this.$findLinkedAnnotationNode(e);M&&M.setAttribute("aria-describedby",this.id);var x=u.fromPoints({row:e,column:0},{row:e,column:0});this.showForRange(this.editor,x,v),this.visibleTooltipRow=e,this.editor._signal("showGutterTooltip",this)},t.prototype.$setPosition=function(t,n,i,r){var o=this.$findCellByRow(r.start.row);if(o){var s=o&&o.element,a=s&&s.querySelector(".ace_gutter_annotation");if(a){var l=a.getBoundingClientRect();if(l){var c={pageX:l.right,pageY:l.top};return e.prototype.$setPosition.call(this,t,c,!1,r)}}}},t.prototype.$shouldPlaceAbove=function(e,t,n){return n<e},t.prototype.$findLinkedAnnotationNode=function(e){var t=this.$findCellByRow(e);if(t){var n=t.element;if(n.childNodes.length>2)return n.childNodes[2]}},t.prototype.$findCellByRow=function(e){return this.editor.renderer.$gutterLayer.$lines.cells.find(function(t){return t.row===e})},t.prototype.hide=function(t){if(this.isOpen){if(this.$element.removeAttribute("aria-live"),null!=this.visibleTooltipRow){var n=this.$findLinkedAnnotationNode(this.visibleTooltipRow);n&&n.removeAttribute("aria-describedby")}this.visibleTooltipRow=void 0,this.editor._signal("hideGutterTooltip",this),e.prototype.hide.call(this,t)}},t.annotationsToSummaryString=function(e){var n,i,r=[];try{for(var s=o(["error","security","warning","info","hint"]),a=s.next();!a.done;a=s.next()){var l=a.value;if(e[l].length){var c=1===e[l].length?t.annotationLabels[l].singular:t.annotationLabels[l].plural;r.push("".concat(e[l].length," ").concat(c))}}}catch(e){n={error:e}}finally{try{a&&!a.done&&(i=s.return)&&i.call(s)}finally{if(n)throw n.error}}return r.join(", ")},t.prototype.isOutsideOfText=function(e){var t=e.editor.renderer.$gutter.getBoundingClientRect();return!(e.clientX>=t.left&&e.clientX<=t.right&&e.clientY>=t.top&&e.clientY<=t.bottom)},t}(l);d.$uid=0,t.GutterTooltip=d}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";var i=e("../lib/dom"),r=e("../lib/event"),o=e("../lib/useragent");function s(e){var t=e.editor,n=i.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent=" ";["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach(function(t){e[t]=this[t]},this),t.on("mousedown",this.onMouseDown.bind(e));var s,l,c,u,d,h,p,f,g,m,y,w=t.container,b=0;function v(){var e=h;(function(e,n){var i=Date.now(),r=!n||e.row!=n.row,o=!n||e.column!=n.column;!m||r||o?(t.moveCursorToPosition(e),m=i,y={x:l,y:c}):a(y.x,y.y,l,c)>5?m=null:i-m>=200&&(t.renderer.scrollCursorIntoView(),m=null)})(h=t.renderer.screenToTextCoordinates(l,c),e),function(e,n){var i=Date.now(),r=t.renderer.layerConfig.lineHeight,o=t.renderer.layerConfig.characterWidth,s=t.renderer.scroller.getBoundingClientRect(),a={x:{left:l-s.left,right:s.right-l},y:{top:c-s.top,bottom:s.bottom-c}},u=Math.min(a.x.left,a.x.right),d=Math.min(a.y.top,a.y.bottom),h={row:e.row,column:e.column};u/o<=2&&(h.column+=a.x.left<a.x.right?-3:2),d/r<=1&&(h.row+=a.y.top<a.y.bottom?-1:1);var p=e.row!=h.row,f=e.column!=h.column,m=!n||e.row!=n.row;p||f&&!m?g?i-g>=200&&t.renderer.scrollCursorIntoView(h):g=i:g=null}(h,e)}function M(){d=t.selection.toOrientedRange(),s=t.session.addMarker(d,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(u),v(),u=setInterval(v,20),b=0,r.addListener(document,"mousemove",_)}function x(){clearInterval(u),t.session.removeMarker(s),s=null,t.selection.fromOrientedRange(d),t.isFocused()&&!f&&t.$resetCursorStyle(),d=null,h=null,b=0,g=null,m=null,r.removeListener(document,"mousemove",_)}this.onDragStart=function(e){if(this.cancelDrag||!w.draggable){var i=this;return setTimeout(function(){i.startSelect(),i.captureMouse(e)},0),e.preventDefault()}d=t.getSelectionRange();var r=e.dataTransfer;r.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(n),r.setDragImage&&r.setDragImage(n,0,0),setTimeout(function(){t.container.removeChild(n)}),r.clearData(),r.setData("Text",t.session.getTextRange()),f=!0,this.setState("drag")},this.onDragEnd=function(e){if(w.draggable=!1,f=!1,this.setState(null),!t.getReadOnly()){var n=e.dataTransfer.dropEffect;p||"move"!=n||t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!t.getReadOnly()&&N(e.dataTransfer))return l=e.clientX,c=e.clientY,s||M(),b++,e.dataTransfer.dropEffect=p=S(e),r.preventDefault(e)},this.onDragOver=function(e){if(!t.getReadOnly()&&N(e.dataTransfer))return l=e.clientX,c=e.clientY,s||(M(),b++),null!==L&&(L=null),e.dataTransfer.dropEffect=p=S(e),r.preventDefault(e)},this.onDragLeave=function(e){if(--b<=0&&s)return x(),p=null,r.preventDefault(e)},this.onDrop=function(e){if(h){var n=e.dataTransfer;if(f)switch(p){case"move":d=d.contains(h.row,h.column)?{start:h,end:h}:t.moveText(d,h);break;case"copy":d=t.moveText(d,h,!0)}else{var i=n.getData("Text");d={start:h,end:t.session.insert(h,i)},t.focus(),p=null}return x(),r.preventDefault(e)}},r.addListener(w,"dragstart",this.onDragStart.bind(e),t),r.addListener(w,"dragend",this.onDragEnd.bind(e),t),r.addListener(w,"dragenter",this.onDragEnter.bind(e),t),r.addListener(w,"dragover",this.onDragOver.bind(e),t),r.addListener(w,"dragleave",this.onDragLeave.bind(e),t),r.addListener(w,"drop",this.onDrop.bind(e),t);var L=null;function _(){null==L&&(L=setTimeout(function(){null!=L&&s&&x()},20))}function N(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return"text/plain"==e||"Text"==e})}function S(e){var t=["copy","copymove","all","uninitialized"],n=o.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var r="none";return n&&t.indexOf(i)>=0?r="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(i)>=0?r="move":t.indexOf(i)>=0&&(r="copy"),r}}function a(e,t,n,i){return Math.sqrt(Math.pow(n-e,2)+Math.pow(i-t,2))}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=o.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;o.isIE&&"dragReady"==this.state&&(a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&t.dragDrop());"dragWait"===this.state&&(a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition())))},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),i=e.getButton();if(1===(e.domEvent.detail||1)&&0===i&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var r=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in r&&(r.unselectable="on"),t.getDragDelay()){if(o.isWebKit)this.cancelDrag=!0,t.container.draggable=!0;this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(s.prototype),t.DragdropHandler=s}),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(e,t,n){"use strict";var i=e("./mouse_event").MouseEvent,r=e("../lib/event"),o=e("../lib/dom");t.addTouchListeners=function(e,t){var n,s,a,l,c,u,d,h,p,f="scroll",g=0,m=0,y=0,w=0;function b(){var e=window.navigator&&window.navigator.clipboard,n=!1,i=function(e){return t.commands.canExecute(e,t)},r=function(r){var s,a,l=r.target.getAttribute("action");if("more"==l||!n)return n=!n,s=t.getCopyText(),a=t.session.getUndoManager().hasUndo(),void p.replaceChild(o.buildDom(n?["span",!s&&i("selectall")&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],s&&i("copy")&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],s&&i("cut")&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],e&&i("paste")&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],a&&i("undo")&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],i("find")&&["span",{class:"ace_mobile-button",action:"find"},"Find"],i("openCommandPalette")&&["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),p.firstChild);"paste"==l?e.readText().then(function(e){t.execCommand(l,e)}):l&&("cut"!=l&&"copy"!=l||(e?e.writeText(t.getCopyText()):document.execCommand("copy")),t.execCommand(l)),p.firstChild.style.display="none",n=!1,"openCommandPalette"!=l&&t.focus()};(p=o.buildDom(["div",{class:"ace_mobile-menu",onclick:r},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],t.container)).addEventListener("touchstart",function(e){f="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()}),p.addEventListener("touchend",function(e){e.stopPropagation(),e.preventDefault(),r(e)})}function v(){if(t.getOption("enableMobileMenu")){p||b();var e=t.selection.cursor,n=t.renderer.textToScreenCoordinates(e.row,e.column),i=t.renderer.textToScreenCoordinates(0,0).pageX,r=t.renderer.scrollLeft,o=t.container.getBoundingClientRect();p.style.top=n.pageY-o.top-3+"px",n.pageX-o.left<o.width-70?(p.style.left="",p.style.right="10px"):(p.style.right="",p.style.left=i+r-o.left+"px"),p.style.display="",p.firstChild.style.display="none",t.on("input",M)}else p&&M()}function M(e){p&&(p.style.display="none"),t.off("input",M)}function x(){c=null,clearTimeout(c);var e=t.selection.getRange(),n=e.contains(d.row,d.column);!e.isEmpty()&&n||(t.selection.moveToPosition(d),t.selection.selectWord()),f="wait",v()}r.addListener(e,"contextmenu",function(e){h&&t.textInput.getElement().focus()},t),r.addListener(e,"touchstart",function(e){var r=e.touches;if(c||r.length>1)return clearTimeout(c),c=null,a=-1,void(f="zoom");h=t.$mouseHandler.isMousePressed=!0;var o=t.renderer.layerConfig.lineHeight,u=t.renderer.layerConfig.lineHeight,p=e.timeStamp;l=p;var b=r[0],v=b.clientX,M=b.clientY;Math.abs(n-v)+Math.abs(s-M)>o&&(a=-1),n=e.clientX=v,s=e.clientY=M,y=w=0;var L=new i(e,t);if(d=L.getDocumentPosition(),p-a<500&&1==r.length&&!g)m++,e.preventDefault(),e.button=0,function(){c=null,clearTimeout(c),t.selection.moveToPosition(d);var e=m>=2?t.selection.getLineRange(d.row):t.session.getBracketRange(d);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),f="wait"}();else{m=0;var _=t.selection.cursor,N=t.selection.isEmpty()?_:t.selection.anchor,S=t.renderer.$cursorLayer.getPixelPosition(_,!0),C=t.renderer.$cursorLayer.getPixelPosition(N,!0),T=t.renderer.scroller.getBoundingClientRect(),k=t.renderer.layerConfig.offset,A=t.renderer.scrollLeft,D=function(e,t){return(e/=u)*e+(t=t/o-.75)*t};if(e.clientX<T.left)return void(f="zoom");var j=D(e.clientX-T.left-S.left+A,e.clientY-T.top-S.top+k),z=D(e.clientX-T.left-C.left+A,e.clientY-T.top-C.top+k);j<3.5&&z<3.5&&(f=j>z?"cursor":"anchor"),f=z<3.5?"anchor":j<3.5?"cursor":"scroll",c=setTimeout(x,450)}a=p},t),r.addListener(e,"touchend",function(e){h=t.$mouseHandler.isMousePressed=!1,u&&clearInterval(u),"zoom"==f?(f="",g=0):c?(t.selection.moveToPosition(d),g=0,v()):"scroll"==f?(g+=60,u=setInterval(function(){g--<=0&&(clearInterval(u),u=null),Math.abs(y)<.01&&(y=0),Math.abs(w)<.01&&(w=0),g<20&&(y*=.9),g<20&&(w*=.9);var e=t.session.getScrollTop();t.renderer.scrollBy(10*y,10*w),e==t.session.getScrollTop()&&(g=0)},10),M()):v(),clearTimeout(c),c=null},t),r.addListener(e,"touchmove",function(e){c&&(clearTimeout(c),c=null);var r=e.touches;if(!(r.length>1||"zoom"==f)){var o=r[0],a=n-o.clientX,u=s-o.clientY;if("wait"==f){if(!(a*a+u*u>4))return e.preventDefault();f="cursor"}n=o.clientX,s=o.clientY,e.clientX=o.clientX,e.clientY=o.clientY;var d=e.timeStamp,h=d-l;if(l=d,"scroll"==f){var p=new i(e,t);p.speed=1,p.wheelX=a,p.wheelY=u,10*Math.abs(a)<Math.abs(u)&&(a=0),10*Math.abs(u)<Math.abs(a)&&(u=0),0!=h&&(y=a/h,w=u/h),t._emit("mousewheel",p),p.propagationStopped||(y=w=0)}else{var g=new i(e,t).getDocumentPosition();"cursor"==f?t.selection.moveCursorToPosition(g):"anchor"==f&&t.selection.setSelectionAnchor(g.row,g.column),t.renderer.scrollCursorIntoView(g),e.preventDefault()}}},t)}}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/mouse/touch_handler","ace/config"],function(e,t,n){"use strict";var i=e("../lib/event"),r=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,s=e("./default_gutter_handler").GutterHandler,a=e("./mouse_event").MouseEvent,l=e("./dragdrop_handler").DragdropHandler,c=e("./touch_handler").addTouchListeners,u=e("../config"),d=function(){function e(e){this.$dragDelay,this.$dragEnabled,this.$mouseMoved,this.mouseEvent,this.$focusTimeout;var t=this;this.editor=e,new o(this),new s(this),new l(this);var n=function(t){(!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement()))&&window.focus(),e.focus(),setTimeout(function(){e.isFocused()||e.focus()})},a=e.renderer.getMouseEventTarget();i.addListener(a,"click",this.onMouseEvent.bind(this,"click"),e),i.addListener(a,"mousemove",this.onMouseMove.bind(this,"mousemove"),e),i.addMultiMouseDownListener([a,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent",e),i.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel"),e),c(e.container,e);var u=e.renderer.$gutter;i.addListener(u,"mousedown",this.onMouseEvent.bind(this,"guttermousedown"),e),i.addListener(u,"click",this.onMouseEvent.bind(this,"gutterclick"),e),i.addListener(u,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick"),e),i.addListener(u,"mousemove",this.onMouseEvent.bind(this,"guttermousemove"),e),i.addListener(a,"mousedown",n,e),i.addListener(u,"mousedown",n,e),r.isIE&&e.renderer.scrollBarV&&(i.addListener(e.renderer.scrollBarV.element,"mousedown",n,e),i.addListener(e.renderer.scrollBarH.element,"mousedown",n,e)),e.on("mousemove",function(n){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var i=e.renderer.screenToTextCoordinates(n.x,n.y),r=e.session.selection.getRange(),o=e.renderer;!r.isEmpty()&&r.insideStart(i.row,i.column)?o.setCursorStyle("default"):o.setCursorStyle("")}},e)}return e.prototype.onMouseEvent=function(e,t){this.editor.session&&this.editor._emit(e,new a(t,this.editor))},e.prototype.onMouseMove=function(e,t){var n=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;n&&n.length&&this.editor._emit(e,new a(t,this.editor))},e.prototype.onMouseWheel=function(e,t){var n=new a(t,this.editor);n.speed=2*this.$scrollSpeed,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},e.prototype.setState=function(e){this.state=e},e.prototype.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var n=this.editor,o=this.editor.renderer;o.$isMousePressed=!0;var s=this,l=!0,c=function(e){if(e){if(r.isWebKit&&!e.which&&s.releaseMouse)return s.releaseMouse();s.x=e.clientX,s.y=e.clientY,t&&t(e),s.mouseEvent=new a(e,s.editor),s.$mouseMoved=!0}},u=function(e){n.off("beforeEndOperation",p),l=!1,n.session&&d(),s[s.state+"End"]&&s[s.state+"End"](e),s.state="",s.isMousePressed=o.$isMousePressed=!1,o.$keepTextAreaAtCursor&&o.$moveTextAreaToCursor(),s.$onCaptureMouseMove=s.releaseMouse=null,e&&s.onMouseEvent("mouseup",e),n.endOperation()},d=function(){s[s.state]&&s[s.state](),s.$mouseMoved=!1},h=function(){l&&(d(),i.nextFrame(h))};if(r.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout(function(){u(e)});var p=function(e){s.releaseMouse&&n.curOp.command.name&&n.curOp.selectionChanged&&(s[s.state+"End"]&&s[s.state+"End"](),s.state="",s.releaseMouse())};n.on("beforeEndOperation",p),n.startOperation({command:{name:"mouse"}}),s.$onCaptureMouseMove=c,s.releaseMouse=i.capture(this.editor.container,c,u),h()},e.prototype.cancelContextMenu=function(){var e=function(t){t&&t.domEvent&&"contextmenu"!=t.domEvent.type||(this.editor.off("nativecontextmenu",e),t&&t.domEvent&&i.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)},e.prototype.destroy=function(){this.releaseMouse&&this.releaseMouse(),this.$tooltip&&this.$tooltip.destroy()},e}();d.prototype.releaseMouse=null,u.defineOptions(d.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:r.isMac?150:0},dragEnabled:{initialValue:!0},focusTimeout:{initialValue:0}}),t.MouseHandler=d}),ace.define("ace/mouse/fold_handler",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var i=e("../lib/dom"),r=function(e){e.on("click",function(t){var n=t.getDocumentPosition(),r=e.session,o=r.getFoldAt(n.row,n.column,1);o&&(t.getAccelKey()?r.removeFold(o):r.expandFold(o),t.stop());var s=t.domEvent&&t.domEvent.target;s&&i.hasCssClass(s,"ace_inline_button")&&i.hasCssClass(s,"ace_toggle_wrap")&&(r.setOption("wrap",!r.getUseWrapMode()),e.renderer.scrollCursorIntoView())}),e.on("gutterclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var n=t.getDocumentPosition().row,i=e.session;i.foldWidgets&&i.foldWidgets[n]&&e.session.onFoldWidgetClick(n,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var n=t.getDocumentPosition().row,i=e.session,r=i.getParentFoldRangeData(n,!0),o=r.range||r.firstRange;if(o){n=o.start.row;var s=i.getFoldAt(n,i.getLine(n).length,1);s?i.removeFold(s):(i.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})};t.FoldHandler=r}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,n){"use strict";var i=e("../lib/keys"),r=e("../lib/event"),o=function(){function e(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)}return e.prototype.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},e.prototype.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]!=e){for(;t[t.length-1]&&t[t.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)}},e.prototype.addKeyboardHandler=function(e,t){if(e){"function"!=typeof e||e.handleKeyboard||(e.handleKeyboard=e);var n=this.$handlers.indexOf(e);-1!=n&&this.$handlers.splice(n,1),null==t?this.$handlers.push(e):this.$handlers.splice(t,0,e),-1==n&&e.attach&&e.attach(this.$editor)}},e.prototype.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return-1!=t&&(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},e.prototype.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},e.prototype.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(n){return n.getStatusText&&n.getStatusText(t,e)||""}).filter(Boolean).join(" ")},e.prototype.$callKeyboardHandlers=function(e,t,n,i){for(var o,s=!1,a=this.$editor.commands,l=this.$handlers.length;l--&&!((o=this.$handlers[l].handleKeyboard(this.$data,e,t,n,i))&&o.command&&((s="null"==o.command||a.exec(o.command,this.$editor,o.args,i))&&i&&-1!=e&&1!=o.passEvent&&1!=o.command.passEvent&&r.stopEvent(i),s)););return s||-1!=e||(o={command:"insertstring"},s=a.exec("insertstring",this.$editor,t)),s&&this.$editor._signal&&this.$editor._signal("keyboardActivity",o),s},e.prototype.onCommandKey=function(e,t,n){var r=i.keyCodeToString(n);return this.$callKeyboardHandlers(t,r,n,e)},e.prototype.onTextInput=function(e){return this.$callKeyboardHandlers(-1,e)},e}();t.KeyBinding=o}),ace.define("ace/lib/bidiutil",["require","exports","module"],function(e,t,n){"use strict";var i=0,r=0,o=!1,s=!1,a=!1,l=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],c=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],u=11,d=18,h=[d,d,d,d,d,d,d,d,d,6,5,6,8,5,d,d,d,d,d,d,d,d,d,d,d,d,d,d,5,5,5,6,8,4,4,u,u,u,4,4,4,4,4,10,9,10,9,9,2,2,2,2,2,2,2,2,2,2,9,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,d,d,d,d,d,d,5,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,9,4,u,u,u,u,4,4,4,4,0,4,4,d,4,4,u,u,2,2,4,0,4,4,4,2,0,4,4,4,4,4],p=[8,8,8,8,8,8,8,8,8,8,8,d,d,d,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,5,13,14,15,16,17,9,u,u,u,u,u,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8];function f(e,t,n){if(!(r<e))if(1!=e||1!=i||s)for(var o,a,l,c,u=n.length,d=0;d<u;){if(t[d]>=e){for(o=d+1;o<u&&t[o]>=e;)o++;for(a=d,l=o-1;a<l;a++,l--)c=n[a],n[a]=n[l],n[l]=c;d=o}d++}else n.reverse()}function g(e,t,n,r){var l,c,h,p,f=t[r];switch(f){case 0:case 1:o=!1;case 4:case 3:return f;case 2:return o?3:2;case 7:return o=!0,1;case 8:return 4;case 9:return r<1||r+1>=t.length||2!=(l=n[r-1])&&3!=l||2!=(c=t[r+1])&&3!=c?4:(o&&(c=3),c==l?c:4);case 10:return 2==(l=r>0?n[r-1]:5)&&r+1<t.length&&2==t[r+1]?2:4;case u:if(r>0&&2==n[r-1])return 2;if(o)return 4;for(p=r+1,h=t.length;p<h&&t[p]==u;)p++;return p<h&&2==t[p]?2:4;case 12:for(h=t.length,p=r+1;p<h&&12==t[p];)p++;if(p<h){var g=e[r],m=g>=1425&&g<=2303||64286==g;if(l=t[p],m&&(1==l||7==l))return 1}return r<1||5==(l=t[r-1])?4:n[r-1];case 5:return o=!1,s=!0,i;case 6:return a=!0,4;case 13:case 14:case 16:case 17:case 15:o=!1;case d:return 4}}function m(e){var t=e.charCodeAt(0),n=t>>8;return 0==n?t>191?0:h[t]:5==n?/[\u0591-\u05f4]/.test(e)?1:0:6==n?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?12:/[\u0660-\u0669\u066b-\u066c]/.test(e)?3:1642==t?u:/[\u06f0-\u06f9]/.test(e)?2:7:32==n&&t<=8287?p[255&t]:254==n&&t>=65136?7:4}t.L=0,t.R=1,t.EN=2,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="·",t.doBidiReorder=function(e,n,u){if(e.length<2)return{};var h=e.split(""),p=new Array(h.length),y=new Array(h.length),w=[];i=u?1:0,function(e,t,n,u){var d=i?c:l,h=null,p=null,f=null,y=0,w=null,b=-1,v=null,M=null,x=[];if(!u)for(v=0,u=[];v<n;v++)u[v]=m(e[v]);for(r=i,o=!1,s=!1,a=!1,M=0;M<n;M++){if(h=y,x[M]=p=g(e,u,x,M),w=240&(y=d[h][p]),y&=15,t[M]=f=d[y][5],w>0)if(16==w){for(v=b;v<M;v++)t[v]=1;b=-1}else b=-1;if(d[y][6])-1==b&&(b=M);else if(b>-1){for(v=b;v<M;v++)t[v]=f;b=-1}5==u[M]&&(t[M]=0),r|=f}if(a)for(v=0;v<n;v++)if(6==u[v]){t[v]=i;for(var L=v-1;L>=0&&8==u[L];L--)t[L]=i}}(h,w,h.length,n);for(var b=0;b<p.length;p[b]=b,b++);f(2,w,p),f(1,w,p);for(b=0;b<p.length-1;b++)3===n[b]?w[b]=t.AN:1===w[b]&&(n[b]>7&&n[b]<13||4===n[b]||n[b]===d)?w[b]=t.ON_R:b>0&&"ل"===h[b-1]&&/\u0622|\u0623|\u0625|\u0627/.test(h[b])&&(w[b-1]=w[b]=t.R_H,b++);h[h.length-1]===t.DOT&&(w[h.length-1]=t.B),"‫"===h[0]&&(w[0]=t.RLE);for(b=0;b<p.length;b++)y[b]=w[p[b]];return{logicalFromVisual:p,bidiLevels:y}},t.hasBidiCharacters=function(e,t){for(var n=!1,i=0;i<e.length;i++)t[i]=m(e.charAt(i)),n||1!=t[i]&&7!=t[i]&&3!=t[i]||(n=!0);return n},t.getVisualFromLogicalIdx=function(e,t){for(var n=0;n<t.logicalFromVisual.length;n++)if(t.logicalFromVisual[n]==e)return n;return 0}}),ace.define("ace/bidihandler",["require","exports","module","ace/lib/bidiutil","ace/lib/lang"],function(e,t,n){"use strict";var i=e("./lib/bidiutil"),r=e("./lib/lang"),o=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\u202B]/,s=function(){function e(e){this.session=e,this.bidiMap={},this.currentRow=null,this.bidiUtil=i,this.charWidths=[],this.EOL="¬",this.showInvisibles=!0,this.isRtlDir=!1,this.$isRtl=!1,this.line="",this.wrapIndent=0,this.EOF="¶",this.RLE="‫",this.contentWidth=0,this.fontMetrics=null,this.rtlLineOffset=0,this.wrapOffset=0,this.isMoveLeftOperation=!1,this.seenBidi=o.test(e.getValue())}return e.prototype.isBidiRow=function(e,t,n){return!!this.seenBidi&&(e!==this.currentRow&&(this.currentRow=e,this.updateRowLine(t,n),this.updateBidiMap()),this.bidiMap.bidiLevels)},e.prototype.onChange=function(e){this.seenBidi?this.currentRow=null:"insert"==e.action&&o.test(e.lines.join("\n"))&&(this.seenBidi=!0,this.currentRow=null)},e.prototype.getDocumentRow=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var n=this.session.$getRowCacheIndex(t,this.currentRow);n>=0&&(e=this.session.$docRowCache[n])}return e},e.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var n,i=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(n=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===i;)i=n,e++;else e=this.currentRow;return e},e.prototype.updateRowLine=function(e,t){void 0===e&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var o=this.session.$wrapData[e];o&&(void 0===t&&(t=this.getSplitIndex()),t>0&&o.length?(this.wrapIndent=o.indent,this.wrapOffset=this.wrapIndent*this.charWidths[i.L],this.line=t<o.length?this.line.substring(o[t-1],o[t]):this.line.substring(o[o.length-1])):this.line=this.line.substring(0,o[t]),t==o.length&&(this.line+=this.showInvisibles?n:i.DOT))}else this.line+=this.showInvisibles?n:i.DOT;var s,a=this.session,l=0;this.line=this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g,function(e,t){return"\t"===e||a.isFullWidth(e.charCodeAt(0))?(s="\t"===e?a.getScreenTabSize(t+l):2,l+=s-1,r.stringRepeat(i.DOT,s)):e}),this.isRtlDir&&(this.fontMetrics.$main.textContent=this.line.charAt(this.line.length-1)==i.DOT?this.line.substr(0,this.line.length-1):this.line,this.rtlLineOffset=this.contentWidth-this.fontMetrics.$main.getBoundingClientRect().width)},e.prototype.updateBidiMap=function(){var e=[];i.hasBidiCharacters(this.line,e)||this.isRtlDir?this.bidiMap=i.doBidiReorder(this.line,e,this.isRtlDir):this.bidiMap={}},e.prototype.markAsDirty=function(){this.currentRow=null},e.prototype.updateCharacterWidths=function(e){if(this.characterWidth!==e.$characterSize.width){this.fontMetrics=e;var t=this.characterWidth=e.$characterSize.width,n=e.$measureCharWidth("ה");this.charWidths[i.L]=this.charWidths[i.EN]=this.charWidths[i.ON_R]=t,this.charWidths[i.R]=this.charWidths[i.AN]=n,this.charWidths[i.R_H]=.45*n,this.charWidths[i.B]=this.charWidths[i.RLE]=0,this.currentRow=null}},e.prototype.setShowInvisibles=function(e){this.showInvisibles=e,this.currentRow=null},e.prototype.setEolChar=function(e){this.EOL=e},e.prototype.setContentWidth=function(e){this.contentWidth=e},e.prototype.isRtlLine=function(e){return!!this.$isRtl||(null!=e?this.session.getLine(e).charAt(0)==this.RLE:this.isRtlDir)},e.prototype.setRtlDirection=function(e,t){for(var n=e.getCursorPosition(),i=e.selection.getSelectionAnchor().row;i<=n.row;i++)t||e.session.getLine(i).charAt(0)!==e.session.$bidiHandler.RLE?t&&e.session.getLine(i).charAt(0)!==e.session.$bidiHandler.RLE&&e.session.doc.insert({column:0,row:i},e.session.$bidiHandler.RLE):e.session.doc.removeInLine(i,0,1)},e.prototype.getPosLeft=function(e){e-=this.wrapIndent;var t=this.line.charAt(0)===this.RLE?1:0,n=e>t?this.session.getOverwrite()?e:e-1:t,r=i.getVisualFromLogicalIdx(n,this.bidiMap),o=this.bidiMap.bidiLevels,s=0;!this.session.getOverwrite()&&e<=t&&o[r]%2!=0&&r++;for(var a=0;a<r;a++)s+=this.charWidths[o[a]];return!this.session.getOverwrite()&&e>t&&o[r]%2==0&&(s+=this.charWidths[o[r]]),this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(s+=this.rtlLineOffset),s},e.prototype.getSelections=function(e,t){var n,i=this.bidiMap,r=i.bidiLevels,o=[],s=0,a=Math.min(e,t)-this.wrapIndent,l=Math.max(e,t)-this.wrapIndent,c=!1,u=!1,d=0;this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var h,p=0;p<r.length;p++)h=i.logicalFromVisual[p],n=r[p],(c=h>=a&&h<l)&&!u?d=s:!c&&u&&o.push({left:d,width:s-d}),s+=this.charWidths[n],u=c;if(c&&p===r.length&&o.push({left:d,width:s-d}),this.isRtlDir)for(var f=0;f<o.length;f++)o[f].left+=this.rtlLineOffset;return o},e.prototype.offsetToCol=function(e){this.isRtlDir&&(e-=this.rtlLineOffset);var t=0,n=(e=Math.max(e,0),0),i=0,r=this.bidiMap.bidiLevels,o=this.charWidths[r[i]];for(this.wrapIndent&&(e-=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);e>n+o/2;){if(n+=o,i===r.length-1){o=0;break}o=this.charWidths[r[++i]]}return i>0&&r[i-1]%2!=0&&r[i]%2==0?(e<n&&i--,t=this.bidiMap.logicalFromVisual[i]):i>0&&r[i-1]%2==0&&r[i]%2!=0?t=1+(e>n?this.bidiMap.logicalFromVisual[i]:this.bidiMap.logicalFromVisual[i-1]):this.isRtlDir&&i===r.length-1&&0===o&&r[i-1]%2==0||!this.isRtlDir&&0===i&&r[i]%2!=0?t=1+this.bidiMap.logicalFromVisual[i]:(i>0&&r[i-1]%2!=0&&0!==o&&i--,t=this.bidiMap.logicalFromVisual[i]),0===t&&this.isRtlDir&&t++,t+this.wrapIndent},e}();t.BidiHandler=s}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(e,t,n){"use strict";var i=e("./lib/oop"),r=e("./lib/lang"),o=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=function(){function e(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),t.$isEmpty||t.$silent||t._emit("changeSelection"),t.$keepDesiredColumnOnChange||e.old.column==e.value.column||(t.$desiredColumn=null)}),this.anchor.on("change",function(){t.$anchorChanged=!0,t.$isEmpty||t.$silent||t._emit("changeSelection")})}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},e.prototype.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(e,t){var n=t?e.end:e.start,i=t?e.start:e.end;this.$setSelection(n.row,n.column,i.row,i.column)},e.prototype.$setSelection=function(e,t,n,i){if(!this.$silent){var r=this.$isEmpty,o=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,i),this.$isEmpty=!s.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||r!=this.$isEmpty||o)&&this._emit("changeSelection")}},e.prototype.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},e.prototype.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},e.prototype.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},e.prototype.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},e.prototype.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(e,t){if(void 0===t){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},e.prototype.getLineRange=function(e,t){var n,i="number"==typeof e?e:this.lead.row,r=this.session.getFoldLine(i);return r?(i=r.start.row,n=r.end.row):n=i,!0===t?new s(i,0,n,this.session.getLine(n).length):new s(i,0,n+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(e,t,n){var i=e.column,r=e.column+t;return n<0&&(i=e.column-t,r=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(i,r).split(" ").length-1==t},e.prototype.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var n=this.session.getTabSize();t=this.lead;this.wouldMoveIntoSoftTab(t,n,1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,n):this.moveCursorBy(0,1)}},e.prototype.moveCursorLineStart=function(){var e=this.lead.row,t=this.lead.column,n=this.session.documentToScreenRow(e,t),i=this.session.screenToDocumentPosition(n,0),r=this.session.getDisplayLine(e,null,i.row,i.column).match(/^\s*/);r[0].length==t||this.session.$useEmacsStyleLineStart||(i.column+=r[0].length),this.moveCursorToPosition(i)},e.prototype.moveCursorLineEnd=function(){var e=this.lead,t=this.session.getDocumentLastRowColumnPosition(e.row,e.column);if(this.lead.column==t.column){var n=this.session.getLine(t.row);if(t.column==n.length){var i=n.search(/\s+$/);i>0&&(t.column=i)}}this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),i=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(e,t,1);if(r)this.moveCursorTo(r.end.row,r.end.column);else{if(this.session.nonTokenRe.exec(i)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,i=n.substring(t)),t>=n.length)return this.moveCursorTo(e,n.length),this.moveCursorRight(),void(e<this.doc.getLength()-1&&this.moveCursorWordRight());this.session.tokenRe.exec(i)&&(t+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)}},e.prototype.moveCursorLongWordLeft=function(){var e,t=this.lead.row,n=this.lead.column;if(e=this.session.getFoldAt(t,n,-1))this.moveCursorTo(e.start.row,e.start.column);else{var i=this.session.getFoldStringAt(t,n,-1);null==i&&(i=this.doc.getLine(t).substring(0,n));var o=r.stringReverse(i);if(this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,this.session.nonTokenRe.exec(o)&&(n-=this.session.nonTokenRe.lastIndex,o=o.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0),n<=0)return this.moveCursorTo(t,0),this.moveCursorLeft(),void(t>0&&this.moveCursorWordLeft());this.session.tokenRe.exec(o)&&(n-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,n)}},e.prototype.$shortWordEndIndex=function(e){var t,n=0,i=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{for(;(t=e[n])&&i.test(t);)n++;if(n<1)for(r.lastIndex=0;(t=e[n])&&!r.test(t);)if(r.lastIndex=0,n++,i.test(t)){if(n>2){n--;break}for(;(t=e[n])&&i.test(t);)n++;if(n>2)break}}return r.lastIndex=0,n},e.prototype.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),i=n.substring(t),r=this.session.getFoldAt(e,t,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(t==n.length){var o=this.doc.getLength();do{e++,i=this.doc.getLine(e)}while(e<o&&/^\s*$/.test(i));/^\s+/.test(i)||(i=""),t=0}var s=this.$shortWordEndIndex(i);this.moveCursorTo(e,t+s)},e.prototype.moveCursorShortWordLeft=function(){var e,t=this.lead.row,n=this.lead.column;if(e=this.session.getFoldAt(t,n,-1))return this.moveCursorTo(e.start.row,e.start.column);var i=this.session.getLine(t).substring(0,n);if(0===n){do{t--,i=this.doc.getLine(t)}while(t>0&&/^\s*$/.test(i));n=i.length,/\s+$/.test(i)||(i="")}var o=r.stringReverse(i),s=this.$shortWordEndIndex(o);return this.moveCursorTo(t,n-s)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(e,t){var n,i=this.session.documentToScreenPosition(this.lead.row,this.lead.column);if(0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(i.row,this.lead.row)?(n=this.session.$bidiHandler.getPosLeft(i.column),i.column=Math.round(n/this.session.$bidiHandler.charWidths[0])):n=i.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?i.column=this.$desiredColumn:this.$desiredColumn=i.column),0!=e&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var r=this.session.lineWidgets[this.lead.row];e<0?e-=r.rowsAbove||0:e>0&&(e+=r.rowCount-(r.rowsAbove||0))}var o=this.session.screenToDocumentPosition(i.row+e,i.column,n);0!==e&&0===t&&o.row===this.lead.row&&(o.column,this.lead.column),this.moveCursorTo(o.row,o.column+t,0===t)},e.prototype.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},e.prototype.moveCursorTo=function(e,t,n){var i=this.session.getFoldAt(e,t,1);i&&(e=i.start.row,t=i.start.column),this.$keepDesiredColumnOnChange=!0;var r=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(r.charAt(t))&&r.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(e,t,n){var i=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(i.row,i.column,n)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},e.prototype.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return s.fromPoints(t,n)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},e.prototype.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else(e=this.getRange()).isBackwards=this.isBackwards();return e},e.prototype.fromJSON=function(e){if(null==e.start){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},e.prototype.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0},e}();a.prototype.setSelectionAnchor=a.prototype.setAnchor,a.prototype.getSelectionAnchor=a.prototype.getAnchor,a.prototype.setSelectionRange=a.prototype.setRange,i.implement(a.prototype,o),t.Selection=a}),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],function(e,t,n){"use strict";var i=e("./lib/report_error").reportError,r=2e3,o=function(){function e(e){for(var t in this.splitRegex,this.states=e,this.regExps={},this.matchMappings={},this.states){for(var n=this.states[t],i=[],r=0,o=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l<n.length;l++){var c=n[l];if(c.defaultToken&&(o.defaultToken=c.defaultToken),c.caseInsensitive&&-1===s.indexOf("i")&&(s+="i"),c.unicode&&-1===s.indexOf("u")&&(s+="u"),null!=c.regex){c.regex instanceof RegExp&&(c.regex=c.regex.toString().slice(1,-1));var u=c.regex,d=new RegExp("(?:("+u+")|(.))").exec("a").length-2;Array.isArray(c.token)?1==c.token.length||1==d?c.token=c.token[0]:d-1!=c.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:c,groupCount:d-1}),c.token=c.token[0]):(c.tokenArray=c.token,c.token=null,c.onMatch=this.$arrayTokens):"function"!=typeof c.token||c.onMatch||(c.onMatch=d>1?this.$applyToken:c.token),d>1&&(/\\\d/.test(c.regex)?u=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+r+1)}):(d=1,u=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),o[r]=l,r+=d,i.push(u),c.onMatch||(c.onMatch=null)}}i.length||(o[0]=0,i.push("$")),a.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)},this),this.regExps[t]=new RegExp("("+i.join(")|(")+")|($)",s)}}return e.prototype.$setMaxTokenCount=function(e){r=0|e},e.prototype.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if("string"==typeof n)return[{type:n,value:e}];for(var i=[],r=0,o=n.length;r<o;r++)t[r]&&(i[i.length]={type:n[r],value:t[r]});return i},e.prototype.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return"text";for(var n=[],i=this.tokenArray,r=0,o=i.length;r<o;r++)t[r+1]&&(n[n.length]={type:i[r],value:t[r+1]});return n},e.prototype.removeCapturingGroups=function(e){return e.replace(/\\.|\[(?:\\.|[^\\\]])*|\(\?[:=!<]|(\()/g,function(e,t){return t?"(?:":e})},e.prototype.createSplitterRegexp=function(e,t){if(-1!=e.indexOf("(?=")){var n=0,i=!1,r={};e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(e,t,o,s,a,l){return i?i="]"!=a:a?i=!0:s?(n==r.stack&&(r.end=l+1,r.stack=-1),n--):o&&(n++,1!=o.length&&(r.stack=n,r.start=l)),e}),null!=r.end&&/^\)*$/.test(e.substr(r.end))&&(e=e.substring(0,r.start)+e.substr(r.end))}return"^"!=e.charAt(0)&&(e="^"+e),"$"!=e.charAt(e.length-1)&&(e+="$"),new RegExp(e,(t||"").replace("g",""))},e.prototype.getLineTokens=function(e,t){if(t&&"string"!=typeof t){var n=t.slice(0);"#tmp"===(t=n[0])&&(n.shift(),t=n.shift())}else n=[];var i=t||"start",o=this.states[i];o||(i="start",o=this.states[i]);var s=this.matchMappings[i],a=this.regExps[i];a.lastIndex=0;for(var l,c=[],u=0,d=0,h={type:null,value:""};l=a.exec(e);){var p=s.defaultToken,f=null,g=l[0],m=a.lastIndex;if(m-g.length>u){var y=e.substring(u,m-g.length);h.type==p?h.value+=y:(h.type&&c.push(h),h={type:p,value:y})}for(var w=0;w<l.length-2;w++)if(void 0!==l[w+1]){p=(f=o[s[w]]).onMatch?f.onMatch(g,i,n,e):f.token,f.next&&(i="string"==typeof f.next?f.next:f.next(i,n),(o=this.states[i])||(this.reportError("state doesn't exist",i),i="start",o=this.states[i]),s=this.matchMappings[i],u=m,(a=this.regExps[i]).lastIndex=m),f.consumeLineEnd&&(u=m);break}if(g)if("string"==typeof p)f&&!1===f.merge||h.type!==p?(h.type&&c.push(h),h={type:p,value:g}):h.value+=g;else if(p){h.type&&c.push(h),h={type:null,value:""};for(w=0;w<p.length;w++)c.push(p[w])}if(u==e.length)break;if(u=m,d++>r){for(d>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});u<e.length;)h.type&&c.push(h),h={value:e.substring(u,u+=500),type:"overflow"};i="start",n=[];break}}return h.type&&c.push(h),n.length>1&&n[0]!==i&&n.unshift("#tmp",i),{tokens:c,state:n.length?n:i}},e}();o.prototype.reportError=i,t.Tokenizer=o}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],function(e,t,n){"use strict";var i,r=e("../lib/deep_copy").deepCopy;(function(){this.addRules=function(e,t){if(t)for(var n in e){for(var i=e[n],r=0;r<i.length;r++){var o=i[r];(o.next||o.onMatch)&&("string"==typeof o.next&&0!==o.next.indexOf(t)&&(o.next=t+o.next),o.nextState&&0!==o.nextState.indexOf(t)&&(o.nextState=t+o.nextState))}this.$rules[t+n]=i}else for(var n in e)this.$rules[n]=e[n]},this.getRules=function(){return this.$rules},this.embedRules=function(e,t,n,i,o){var s="function"==typeof e?(new e).getRules():e;if(i)for(var a=0;a<i.length;a++)i[a]=t+i[a];else for(var l in i=[],s)i.push(t+l);if(this.addRules(s,t),n){var c=Array.prototype[o?"push":"unshift"];for(a=0;a<i.length;a++)c.apply(this.$rules[i[a]],r(n))}this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var e=function(e,t){return("start"!=e||t.length)&&t.unshift(this.nextState,e),this.nextState},t=function(e,t){return t.shift(),t.shift()||"start"};this.normalizeRules=function(){var n=0,i=this.$rules;Object.keys(i).forEach(function r(o){var s=i[o];s.processed=!0;for(var a=0;a<s.length;a++){var l=s[a],c=null;Array.isArray(l)&&(c=l,l={}),!l.regex&&l.start&&(l.regex=l.start,l.next||(l.next=[]),l.next.push({defaultToken:l.token},{token:l.token+".end",regex:l.end||l.start,next:"pop"}),l.token=l.token+".start",l.push=!0);var u=l.next||l.push;if(u&&Array.isArray(u)){var d=l.stateName;d||("string"!=typeof(d=l.token)&&(d=d[0]||""),i[d]&&(d+=n++)),i[d]=u,l.next=d,r(d)}else"pop"==u&&(l.next=t);if(l.push&&(l.nextState=l.next||l.push,l.next=e,delete l.push),l.rules)for(var h in l.rules)i[h]?i[h].push&&i[h].push.apply(i[h],l.rules[h]):i[h]=l.rules[h];var p="string"==typeof l?l:l.include;if(p&&("$self"===p&&(p="start"),c=Array.isArray(p)?p.map(function(e){return i[e]}):i[p]),c){var f=[a,1].concat(c);l.noEscape&&(f=f.filter(function(e){return!e.next})),s.splice.apply(s,f),a--}l.keywordMap&&(l.token=this.createKeywordMapper(l.keywordMap,l.defaultToken||"text",l.caseInsensitive),delete l.defaultToken)}},this)},this.createKeywordMapper=function(e,t,n,i){var r=Object.create(null);return this.$keywordList=[],Object.keys(e).forEach(function(t){for(var o=e[t].split(i||"|"),s=o.length;s--;){var a=o[s];this.$keywordList.push(a),n&&(a=a.toLowerCase()),r[a]=t}},this),e=null,n?function(e){return r[e.toLowerCase()]||t}:function(e){return r[e]||t}},this.getKeywords=function(){return this.$keywords}}).call((i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}}).prototype),t.TextHighlightRules=i}),ace.define("ace/mode/behaviour",["require","exports","module"],function(e,t,n){"use strict";var i;(function(){this.add=function(e,t,n){switch(void 0){case this.$behaviours:this.$behaviours={};case this.$behaviours[e]:this.$behaviours[e]={}}this.$behaviours[e][t]=n},this.addBehaviours=function(e){for(var t in e)for(var n in e[t])this.add(t,n,e[t][n])},this.remove=function(e){this.$behaviours&&this.$behaviours[e]&&delete this.$behaviours[e]},this.inherit=function(e,t){if("function"==typeof e)var n=(new e).getBehaviours(t);else n=e.getBehaviours(t);this.addBehaviours(n)},this.getBehaviours=function(e){if(e){for(var t={},n=0;n<e.length;n++)this.$behaviours[e[n]]&&(t[e[n]]=this.$behaviours[e[n]]);return t}return this.$behaviours}}).call((i=function(){this.$behaviours={}}).prototype),t.Behaviour=i}),ace.define("ace/token_iterator",["require","exports","module","ace/range"],function(e,t,n){"use strict";var i=e("./range").Range,r=function(){function e(e,t,n){this.$session=e,this.$row=t,this.$rowTokens=e.getTokens(t);var i=e.getTokenAt(t,n);this.$tokenIndex=i?i.index:-1}return e.prototype.stepBackward=function(){for(this.$tokenIndex-=1;this.$tokenIndex<0;){if(this.$row-=1,this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},e.prototype.stepForward=function(){var e;for(this.$tokenIndex+=1;this.$tokenIndex>=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentTokenRow=function(){return this.$row},e.prototype.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(void 0!==n)return n;for(n=0;t>0;)n+=e[t-=1].value.length;return n},e.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},e.prototype.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new i(this.$row,t,this.$row,t+e.value.length)},e}();t.TokenIterator=r}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var i,r,o=e("../../lib/oop"),s=e("../behaviour").Behaviour,a=e("../../token_iterator").TokenIterator,l=e("../../lib/lang"),c=["text","paren.rparen","rparen","paren","punctuation.operator"],u=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],d={},h={'"':'"',"'":"'"},p=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,d.rangeCount!=e.multiSelect.rangeCount&&(d={rangeCount:e.multiSelect.rangeCount})),d[t])return i=d[t];i=d[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},f=function(e,t,n,i){var r=e.end.row-e.start.row;return{text:n+t+i,selection:[0,e.start.column+1,r,e.end.column+(r?0:1)]}};(r=function(e){e=e||{},this.add("braces","insertion",function(t,n,o,s,a){var c=o.getCursorPosition(),u=s.doc.getLine(c.row);if("{"==a){p(o);var d=o.getSelectionRange(),h=s.doc.getTextRange(d),g=s.getTokenAt(c.row,c.column);if(""!==h&&"{"!==h&&o.getWrapBehavioursEnabled())return f(d,h,"{","}");if(g&&/(?:string)\.quasi|\.xml/.test(g.type)){if([/tag\-(?:open|name)/,/attribute\-name/].some(function(e){return e.test(g.type)})||/(string)\.quasi/.test(g.type)&&"$"!==g.value[c.column-g.start-1])return;return r.recordAutoInsert(o,s,"}"),{text:"{}",selection:[1,1]}}if(r.isSaneInsertion(o,s))return/[\]\}\)]/.test(u[c.column])||o.inMultiSelectMode||e.braces?(r.recordAutoInsert(o,s,"}"),{text:"{}",selection:[1,1]}):(r.recordMaybeInsert(o,s,"{"),{text:"{",selection:[1,1]})}else if("}"==a){if(p(o),"}"==u.substring(c.column,c.column+1))if(null!==s.$findOpeningBracket("}",{column:c.column+1,row:c.row})&&r.isAutoInsertedClosing(c,u,a))return r.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==a||"\r\n"==a){p(o);var m="";if(r.isMaybeInsertedClosing(c,u)&&(m=l.stringRepeat("}",i.maybeInsertedBrackets),r.clearMaybeInsertedClosing()),"}"===u.substring(c.column,c.column+1)){var y=s.findMatchingBracket({row:c.row,column:c.column+1},"}");if(!y)return null;var w=this.$getIndent(s.getLine(y.row))}else{if(!m)return void r.clearMaybeInsertedClosing();w=this.$getIndent(u)}var b=w+s.getTabString();return{text:"\n"+b+"\n"+w+m,selection:[1,b.length,1,b.length]}}r.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,o){var s=r.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==s){if(p(n),"}"==r.doc.getLine(o.start.row).substring(o.end.column,o.end.column+1))return o.end.column++,o;i.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,i,o){if("("==o){p(n);var s=n.getSelectionRange(),a=i.doc.getTextRange(s);if(""!==a&&n.getWrapBehavioursEnabled())return f(s,a,"(",")");if(r.isSaneInsertion(n,i))return r.recordAutoInsert(n,i,")"),{text:"()",selection:[1,1]}}else if(")"==o){p(n);var l=n.getCursorPosition(),c=i.doc.getLine(l.row);if(")"==c.substring(l.column,l.column+1))if(null!==i.$findOpeningBracket(")",{column:l.column+1,row:l.row})&&r.isAutoInsertedClosing(l,c,o))return r.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}),this.add("parens","deletion",function(e,t,n,i,r){var o=i.doc.getTextRange(r);if(!r.isMultiLine()&&"("==o&&(p(n),")"==i.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)))return r.end.column++,r}),this.add("brackets","insertion",function(e,t,n,i,o){if("["==o){p(n);var s=n.getSelectionRange(),a=i.doc.getTextRange(s);if(""!==a&&n.getWrapBehavioursEnabled())return f(s,a,"[","]");if(r.isSaneInsertion(n,i))return r.recordAutoInsert(n,i,"]"),{text:"[]",selection:[1,1]}}else if("]"==o){p(n);var l=n.getCursorPosition(),c=i.doc.getLine(l.row);if("]"==c.substring(l.column,l.column+1))if(null!==i.$findOpeningBracket("]",{column:l.column+1,row:l.row})&&r.isAutoInsertedClosing(l,c,o))return r.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}),this.add("brackets","deletion",function(e,t,n,i,r){var o=i.doc.getTextRange(r);if(!r.isMultiLine()&&"["==o&&(p(n),"]"==i.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)))return r.end.column++,r}),this.add("string_dquotes","insertion",function(e,t,n,i,r){var o=i.$mode.$quotes||h;if(1==r.length&&o[r]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(r))return;p(n);var s=r,a=n.getSelectionRange(),l=i.doc.getTextRange(a);if(!(""===l||1==l.length&&o[l])&&n.getWrapBehavioursEnabled())return f(a,l,s,s);if(!l){var c=n.getCursorPosition(),u=i.doc.getLine(c.row),d=u.substring(c.column-1,c.column),g=u.substring(c.column,c.column+1),m=i.getTokenAt(c.row,c.column),y=i.getTokenAt(c.row,c.column+1);if("\\"==d&&m&&/escape/.test(m.type))return null;var w,b=m&&/string|escape/.test(m.type),v=!y||/string|escape/.test(y.type);if(g==s)(w=b!==v)&&/string\.end/.test(y.type)&&(w=!1);else{if(b&&!v)return null;if(b&&v)return null;var M=i.$mode.tokenRe;M.lastIndex=0;var x=M.test(d);M.lastIndex=0;var L=M.test(g),_=i.$mode.$pairQuotesAfter;if(!(_&&_[s]&&_[s].test(d))&&x||L)return null;if(g&&!/[\s;,.})\]\\]/.test(g))return null;var N=u[c.column-2];if(d==s&&(N==s||M.test(N)))return null;w=!0}return{text:w?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,i,r){var o=i.$mode.$quotes||h,s=i.doc.getTextRange(r);if(!r.isMultiLine()&&o.hasOwnProperty(s)&&(p(n),i.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)==s))return r.end.column++,r}),!1!==e.closeDocComment&&this.add("doc comment end","insertion",function(e,t,n,i,r){if("doc-start"===e&&("\n"===r||"\r\n"===r)&&n.selection.isEmpty()){var o=n.getCursorPosition();if(0===o.column)return;for(var s=i.doc.getLine(o.row),a=i.doc.getLine(o.row+1),l=i.getTokens(o.row),c=0,u=0;u<l.length;u++){c+=l[u].value.length;var d=l[u];if(c>=o.column){if(c===o.column){if(!/\.doc/.test(d.type))return;if(/\*\//.test(d.value)){var h=l[u+1];if(!h||!/\.doc/.test(h.type))return}}var p=o.column-(c-d.value.length),f=d.value.indexOf("*/"),g=d.value.indexOf("/**",f>-1?f+2:0);if(-1!==g&&p>g&&p<g+3)return;if(-1!==f&&-1!==g&&p>=f&&p<=g||!/\.doc/.test(d.type))return;break}}var m=this.$getIndent(s);if(/\s*\*/.test(a))return/^\s*\*/.test(s)?{text:r+m+"* ",selection:[1,2+m.length,1,2+m.length]}:{text:r+m+" * ",selection:[1,3+m.length,1,3+m.length]};if(/\/\*\*/.test(s.substring(0,o.column)))return{text:r+m+" * "+r+" "+m+"*/",selection:[1,4+m.length,1,4+m.length]}}})}).isSaneInsertion=function(e,t){var n=e.getCursorPosition(),i=new a(t,n.row,n.column);if(!this.$matchTokenType(i.getCurrentToken()||"text",c)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var r=new a(t,n.row,n.column+1);if(!this.$matchTokenType(r.getCurrentToken()||"text",c))return!1}return i.stepForward(),i.getCurrentTokenRow()!==n.row||this.$matchTokenType(i.getCurrentToken()||"text",u)},r.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},r.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,o,i.autoInsertedLineEnd[0])||(i.autoInsertedBrackets=0),i.autoInsertedRow=r.row,i.autoInsertedLineEnd=n+o.substr(r.column),i.autoInsertedBrackets++},r.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,o)||(i.maybeInsertedBrackets=0),i.maybeInsertedRow=r.row,i.maybeInsertedLineStart=o.substr(0,r.column)+n,i.maybeInsertedLineEnd=o.substr(r.column),i.maybeInsertedBrackets++},r.isAutoInsertedClosing=function(e,t,n){return i.autoInsertedBrackets>0&&e.row===i.autoInsertedRow&&n===i.autoInsertedLineEnd[0]&&t.substr(e.column)===i.autoInsertedLineEnd},r.isMaybeInsertedClosing=function(e,t){return i.maybeInsertedBrackets>0&&e.row===i.maybeInsertedRow&&t.substr(e.column)===i.maybeInsertedLineEnd&&t.substr(0,e.column)==i.maybeInsertedLineStart},r.popAutoInsertedClosing=function(){i.autoInsertedLineEnd=i.autoInsertedLineEnd.substr(1),i.autoInsertedBrackets--},r.clearMaybeInsertedClosing=function(){i&&(i.maybeInsertedBrackets=0,i.maybeInsertedRow=-1)},o.inherits(r,s),t.CstyleBehaviour=r}),ace.define("ace/unicode",["require","exports","module"],function(e,t,n){"use strict";for(var i=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],r=0,o=[],s=0;s<i.length;s+=2)o.push(r+=i[s]),i[s+1]&&o.push(45,r+=i[s+1]);t.wordChars=String.fromCharCode.apply(null,o)}),ace.define("ace/mode/text",["require","exports","module","ace/config","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,n){"use strict";var i,r=e("../config"),o=e("../tokenizer").Tokenizer,s=e("./text_highlight_rules").TextHighlightRules,a=e("./behaviour/cstyle").CstyleBehaviour,l=e("../unicode"),c=e("../lib/lang"),u=e("../token_iterator").TokenIterator,d=e("../range").Range;(function(){this.$defaultBehaviour=new a,this.tokenRe=new RegExp("^["+l.wordChars+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+l.wordChars+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new o(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,n,i){var r=t.doc,o=!0,s=!0,a=1/0,l=t.getTabSize(),u=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))g=this.lineCommentStart.map(c.escapeRegExp).join("|"),p=this.lineCommentStart[0];else g=c.escapeRegExp(this.lineCommentStart),p=this.lineCommentStart;g=new RegExp("^(\\s*)(?:"+g+") ?"),u=t.getUseSoftTabs();w=function(e,t){var n=e.match(g);if(n){var i=n[1].length,o=n[0].length;h(e,i,o)||" "!=n[0][o-1]||o--,r.removeInLine(t,i,o)}};var d=p+" ",h=(y=function(e,t){o&&!/\S/.test(e)||(h(e,a,a)?r.insertInLine({row:t,column:a},d):r.insertInLine({row:t,column:a},p))},b=function(e,t){return g.test(e)},function(e,t,n){for(var i=0;t--&&" "==e.charAt(t);)i++;if(i%l!=0)return!1;for(i=0;" "==e.charAt(n++);)i++;return l>2?i%l!=l-1:i%l==0})}else{if(!this.blockComment)return!1;var p=this.blockComment.start,f=this.blockComment.end,g=new RegExp("^(\\s*)(?:"+c.escapeRegExp(p)+")"),m=new RegExp("(?:"+c.escapeRegExp(f)+")\\s*$"),y=function(e,t){b(e,t)||o&&!/\S/.test(e)||(r.insertInLine({row:t,column:e.length},f),r.insertInLine({row:t,column:a},p))},w=function(e,t){var n;(n=e.match(m))&&r.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(g))&&r.removeInLine(t,n[1].length,n[0].length)},b=function(e,n){if(g.test(e))return!0;for(var i=t.getTokens(n),r=0;r<i.length;r++)if("comment"===i[r].type)return!0}}function v(e){for(var t=n;t<=i;t++)e(r.getLine(t),t)}var M=1/0;v(function(e,t){var n=e.search(/\S/);-1!==n?(n<a&&(a=n),s&&!b(e,t)&&(s=!1)):M>e.length&&(M=e.length)}),a==1/0&&(a=M,o=!1,s=!1),u&&a%l!=0&&(a=Math.floor(a/l)*l),v(s?w:y)},this.toggleBlockComment=function(e,t,n,i){var r=this.blockComment;if(r){!r.start&&r[0]&&(r=r[0]);var o,s,a=(g=new u(t,i.row,i.column)).getCurrentToken(),l=(t.selection,t.selection.toOrientedRange());if(a&&/comment/.test(a.type)){for(var c,h;a&&/comment/.test(a.type);){if(-1!=(m=a.value.indexOf(r.start))){var p=g.getCurrentTokenRow(),f=g.getCurrentTokenColumn()+m;c=new d(p,f,p,f+r.start.length);break}a=g.stepBackward()}var g;for(a=(g=new u(t,i.row,i.column)).getCurrentToken();a&&/comment/.test(a.type);){var m;if(-1!=(m=a.value.indexOf(r.end))){p=g.getCurrentTokenRow(),f=g.getCurrentTokenColumn()+m;h=new d(p,f,p,f+r.end.length);break}a=g.stepForward()}h&&t.remove(h),c&&(t.remove(c),o=c.start.row,s=-r.start.length)}else s=r.start.length,o=n.start.row,t.insert(n.end,r.end),t.insert(n.start,r.start);l.start.row==o&&(l.start.column+=s),l.end.row==o&&(l.end.column+=s),t.selection.fromOrientedRange(l)}},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)if(e[t]){var n=e[t],i=n.prototype.$id,o=r.$modes[i];o||(r.$modes[i]=o=new n),r.$modes[t]||(r.$modes[t]=o),this.$embeds.push(t),this.$modes[t]=o}var s=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],a=function(e){var t,n,i;i=(t=l)[n=s[e]],t[s[e]]=function(){return this.$delegator(n,arguments,i)}},l=this;for(t=0;t<s.length;t++)a(t)},this.$delegator=function(e,t,n){var i=t[0]||"start";if("string"!=typeof i){if(Array.isArray(i[2])){var r=i[2][i[2].length-1];if(s=this.$modes[r])return s[e].apply(s,[i[1]].concat([].slice.call(t,1)))}i=i[0]||"start"}for(var o=0;o<this.$embeds.length;o++)if(this.$modes[this.$embeds[o]]){var s,a=i.split(this.$embeds[o]);if(!a[0]&&a[1])return t[0]=a[1],(s=this.$modes[this.$embeds[o]])[e].apply(s,t)}var l=n.apply(this,t);return n?l:void 0},this.transformAction=function(e,t,n,i,r){if(this.$behaviour){var o=this.$behaviour.getBehaviours();for(var s in o)if(o[s][t]){var a=o[s][t].apply(this,arguments);if(a)return a}}},this.getKeywords=function(e){if(!this.completionKeywords){var t=this.$tokenizer.rules,n=[];for(var i in t)for(var r=t[i],o=0,s=r.length;o<s;o++)if("string"==typeof r[o].token)/keyword|support|storage/.test(r[o].token)&&n.push(r[o].regex);else if("object"==typeof r[o].token)for(var a=0,l=r[o].token.length;a<l;a++)if(/keyword|support|storage/.test(r[o].token[a])){i=r[o].regex.match(/\(.+?\)/g)[a];n.push(i.substr(1,i.length-2))}this.completionKeywords=n}return e?n.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(e,t,n,i){return(this.$keywordList||this.$createKeywordList()).map(function(e){return{name:e,value:e,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call((i=function(){this.HighlightRules=s}).prototype),t.Mode=i}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var i=e("./lib/dom"),r=function(){function e(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}return e.prototype.getRowLength=function(e){var t;return t=this.lineWidgets&&this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},e.prototype.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},e.prototype.$onChangeEditor=function(e){this.attach(e.editor)},e.prototype.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)))},e.prototype.detach=function(e){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})}},e.prototype.updateOnFold=function(e,t){var n=t.lineWidgets;if(n&&e.action){for(var i=e.data,r=i.start.row,o=i.end.row,s="add"==e.action,a=r+1;a<o;a++)n[a]&&(n[a].hidden=s);n[o]&&(s?n[r]?n[o].hidden=s:n[r]=n[o]:(n[r]==n[o]&&(n[r]=void 0),n[o].hidden=s))}},e.prototype.updateOnChange=function(e){var t=this.session.lineWidgets;if(t){var n=e.start.row,i=e.end.row-n;if(0===i);else if("remove"==e.action){var r=t.splice(n+1,i);!t[n]&&r[r.length-1]&&(t[n]=r.pop()),r.forEach(function(e){e&&this.removeLineWidget(e)},this),this.$updateRows()}else{var o=new Array(i);t[n]&&null!=t[n].column&&e.start.column>t[n].column&&n++,o.unshift(n,0),t.splice.apply(t,o),this.$updateRows()}}},e.prototype.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach(function(e,n){if(e)for(t=!1,e.row=n;e.$oldWidget;)e.$oldWidget.row=n,e=e.$oldWidget}),t&&(this.session.lineWidgets=null)}},e.prototype.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},e.prototype.addLineWidget=function(e){if(this.$registerLineWidget(e),e.session=this.session,!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=i.createElement("div"),e.el.innerHTML=e.html),e.text&&!e.el&&(e.el=i.createElement("div"),e.el.textContent=e.text),e.el&&(i.addCssClass(e.el,"ace_lineWidgetContainer"),e.className&&i.addCssClass(e.el,e.className),e.el.style.position="absolute",e.el.style.zIndex="5",t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex="3"),null==e.pixelHeight&&(e.pixelHeight=e.el.offsetHeight)),null==e.rowCount&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);if(e.$fold=n,n){var r=this.session.lineWidgets;e.row!=n.end.row||r[n.start.row]?e.hidden=!0:r[n.start.row]=e}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},e.prototype.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(e){}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;t;){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},e.prototype.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,n=t&&t[e],i=[];n;)i.push(n),n=n.$oldWidget;return i},e.prototype.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},e.prototype.measureWidgets=function(e,t){var n=this.session._changedWidgets,i=t.layerConfig;if(n&&n.length){for(var r=1/0,o=0;o<n.length;o++){var s=n[o];if(s&&s.el&&s.session==this.session){if(!s._inDocument){if(this.session.lineWidgets[s.row]!=s)continue;s._inDocument=!0,t.container.appendChild(s.el)}s.h=s.el.offsetHeight,s.fixedWidth||(s.w=s.el.offsetWidth,s.screenWidth=Math.ceil(s.w/i.characterWidth));var a=s.h/i.lineHeight;s.coverLine&&(a-=this.session.getRowLineCount(s.row))<0&&(a=0),s.rowCount!=a&&(s.rowCount=a,s.row<r&&(r=s.row))}}r!=1/0&&(this.session._emit("changeFold",{data:{start:{row:r}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]}},e.prototype.renderWidgets=function(e,t){var n=t.layerConfig,i=this.session.lineWidgets;if(i){for(var r=Math.min(this.firstRow,n.firstRow),o=Math.max(this.lastRow,n.lastRow,i.length);r>0&&!i[r];)r--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var s=r;s<=o;s++){var a=i[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=n.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-n.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=n.width+2*n.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}},e}();t.LineWidgets=r}),ace.define("ace/apply_delta",["require","exports","module"],function(e,t,n){"use strict";t.applyDelta=function(e,t,n){var i=t.start.row,r=t.start.column,o=e[i]||"";switch(t.action){case"insert":if(1===t.lines.length)e[i]=o.substring(0,r)+t.lines[0]+o.substring(r);else{var s=[i,1].concat(t.lines);e.splice.apply(e,s),e[i]=o.substring(0,r)+e[i],e[i+t.lines.length-1]+=o.substring(r)}break;case"remove":var a=t.end.column,l=t.end.row;i===l?e[i]=o.substring(0,r)+o.substring(a):e.splice(i,l-i+1,o.substring(0,r)+e[l].substring(a))}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var i=e("./lib/oop"),r=e("./lib/event_emitter").EventEmitter,o=function(){function e(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),"number"!=typeof t?this.setPosition(t.row,t.column):this.setPosition(t,n)}return e.prototype.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},e.prototype.getDocument=function(){return this.document},e.prototype.onChange=function(e){if(!(e.start.row==e.end.row&&e.start.row!=this.row||e.start.row>this.row)){var t=function(e,t,n){var i="insert"==e.action,r=(i?1:-1)*(e.end.row-e.start.row),o=(i?1:-1)*(e.end.column-e.start.column),a=e.start,l=i?a:e.end;if(s(t,a,n))return{row:t.row,column:t.column};if(s(l,t,!n))return{row:t.row+r,column:t.column+(t.row==l.row?o:0)};return{row:a.row,column:a.column}}(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(t.row,t.column,!0)}},e.prototype.setPosition=function(e,t,n){var i;if(i=n?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=i.row||this.column!=i.column){var r={row:this.row,column:this.column};this.row=i.row,this.column=i.column,this._signal("change",{old:r,value:i})}},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n},e}();function s(e,t,n){var i=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&i}o.prototype.$insertRight=!1,i.implement(o.prototype,r),t.Anchor=o}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var i=e("./lib/oop"),r=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=e("./anchor").Anchor,l=function(){function e(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)}return e.prototype.setValue=function(e){var t=this.getLength()-1;this.remove(new s(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e||"")},e.prototype.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},e.prototype.createAnchor=function(e,t){return new a(this,e,t)},e.prototype.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},e.prototype.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},e.prototype.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},e.prototype.getNewLineMode=function(){return this.$newLineMode},e.prototype.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},e.prototype.getLine=function(e){return this.$lines[e]||""},e.prototype.getLines=function(e,t){return this.$lines.slice(e,t+1)},e.prototype.getAllLines=function(){return this.getLines(0,this.getLength())},e.prototype.getLength=function(){return this.$lines.length},e.prototype.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},e.prototype.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{(t=this.getLines(e.start.row,e.end.row))[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},e.prototype.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},e.prototype.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},e.prototype.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},e.prototype.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},e.prototype.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),i=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:i,action:"insert",lines:[t]},!0),this.clonePos(i)},e.prototype.clippedPos=function(e,t){var n=this.getLength();void 0===e?e=n:e<0?e=0:e>=n&&(e=n-1,t=void 0);var i=this.getLine(e);return null==t&&(t=i.length),{row:e,column:t=Math.min(Math.max(t,0),i.length)}},e.prototype.clonePos=function(e){return{row:e.row,column:e.column}},e.prototype.pos=function(e,t){return{row:e,column:t}},e.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},e.prototype.insertFullLines=function(e,t){var n=0;(e=Math.min(Math.max(e,0),this.getLength()))<this.getLength()?(t=t.concat([""]),n=0):(t=[""].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},e.prototype.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),i={row:n.row+t.length-1,column:(1==t.length?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:i,action:"insert",lines:t}),this.clonePos(i)},e.prototype.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:"remove",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},e.prototype.removeInLine=function(e,t,n){var i=this.clippedPos(e,t),r=this.clippedPos(e,n);return this.applyDelta({start:i,end:r,action:"remove",lines:this.getLinesForRange({start:i,end:r})},!0),this.clonePos(i)},e.prototype.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1);var n=(t=Math.min(Math.max(0,t),this.getLength()-1))==this.getLength()-1&&e>0,i=t<this.getLength()-1,r=n?e-1:e,o=n?this.getLine(r).length:0,a=i?t+1:t,l=i?0:this.getLine(a).length,c=new s(r,o,a,l),u=this.$lines.slice(e,t+1);return this.applyDelta({start:c.start,end:c.end,action:"remove",lines:this.getLinesForRange(c)}),u},e.prototype.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},e.prototype.replace=function(e,t){return e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},e.prototype.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},e.prototype.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},e.prototype.applyDelta=function(e,t){var n="insert"==e.action;(n?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(r(this.$lines,e,t),this._signal("change",e)))},e.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;("remove"==e.action&&e.start.row<t&&e.end.row<t||"insert"==e.action&&e.start.row<=t)&&this.applyDelta(e)},e.prototype.$splitAndapplyLargeDelta=function(e,t){for(var n=e.lines,i=n.length-t+1,r=e.start.row,o=e.start.column,s=0,a=0;s<i;s=a){a+=t-1;var l=n.slice(s,a);l.push(""),this.applyDelta({start:this.pos(r+s,o),end:this.pos(r+a,o=0),action:e.action,lines:l},!0)}e.lines=n.slice(s),e.start.row=r+s,e.start.column=o,this.applyDelta(e,!0)},e.prototype.revertDelta=function(e){this.$safeApplyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:"insert"==e.action?"remove":"insert",lines:e.lines.slice()})},e.prototype.indexToPosition=function(e,t){for(var n=this.$lines||this.getAllLines(),i=this.getNewLineCharacter().length,r=t||0,o=n.length;r<o;r++)if((e-=n[r].length+i)<0)return{row:r,column:e+n[r].length+i};return{row:o-1,column:e+n[o-1].length+i}},e.prototype.positionToIndex=function(e,t){for(var n=this.$lines||this.getAllLines(),i=this.getNewLineCharacter().length,r=0,o=Math.min(e.row,n.length),s=t||0;s<o;++s)r+=n[s].length+i;return r+e.column},e.prototype.$split=function(e){return e.split(/\r\n|\r|\n/)},e}();l.prototype.$autoNewLine="",l.prototype.$newLineMode="auto",i.implement(l.prototype,o),t.Document=l}),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var i=e("./lib/oop"),r=e("./lib/event_emitter").EventEmitter,o=function(){function e(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var n=this;this.$worker=function(){if(n.running){for(var e=new Date,t=n.currentLine,i=-1,r=n.doc,o=t;n.lines[t];)t++;var s=r.getLength(),a=0;for(n.running=!1;t<s;){n.$tokenizeRow(t),i=t;do{t++}while(n.lines[t]);if(++a%5==0&&new Date-e>20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,-1==i&&(i=t),o<=i&&n.fireUpdateEvent(o,i)}}}return e.prototype.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},e.prototype.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},e.prototype.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},e.prototype.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},e.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},e.prototype.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var i=Array(n+1);i.unshift(t,1),this.lines.splice.apply(this.lines,i),this.states.splice.apply(this.states,i)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},e.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},e.prototype.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},e.prototype.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},e.prototype.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],i=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=i.state+""?(this.states[e]=i.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=i.tokens},e.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},e}();i.implement(o.prototype,r),t.BackgroundTokenizer=o}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],function(e,t,n){"use strict";var i=e("./lib/lang"),r=e("./range").Range,o=function(){function e(e,t,n){void 0===n&&(n="text"),this.setRegexp(e),this.clazz=t,this.type=n,this.docLen=0}return e.prototype.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},e.prototype.update=function(e,t,n,o){if(this.regExp){for(var s=o.firstRow,a=o.lastRow,l={},c=n.$editor&&n.$editor.$search,u=c&&c.$isMultilineSearch(n.$editor.getLastSearchOptions()),d=s;d<=a;d++){var h=this.cache[d];if(null==h||n.getValue().length!=this.docLen){if(u){h=[];var p=c.$multiLineForward(n,this.regExp,d,a);if(p){var f=p.endRow<=a?p.endRow-1:a;f>d&&(d=f),h.push(new r(p.startRow,p.startCol,p.endRow,p.endCol))}h.length>this.MAX_RANGES&&(h=h.slice(0,this.MAX_RANGES))}else(h=i.getMatchOffsets(n.getLine(d),this.regExp)).length>this.MAX_RANGES&&(h=h.slice(0,this.MAX_RANGES)),h=h.map(function(e){return new r(d,e.offset,d,e.offset+e.length)});this.cache[d]=h.length?h:""}if(0!==h.length)for(var g=h.length;g--;){var m=h[g].toScreenRange(n),y=m.toString();l[y]||(l[y]=!0,t.drawSingleLineMarker(e,m,this.clazz,o))}}this.docLen=n.getValue().length}},e}();o.prototype.MAX_RANGES=500,t.SearchHighlight=o}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(e,t,n){"use strict";var i=function(){function e(){this.$keepRedoStack,this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return e.prototype.addSession=function(e){this.$session=e},e.prototype.add=function(e,t,n){if(!this.$fromUndo&&e!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),!1===t||!this.lastDeltas){this.lastDeltas=[];var i=this.$undoStack.length;i>this.$undoDepth-1&&this.$undoStack.splice(0,i-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev}"remove"!=e.action&&"insert"!=e.action||(this.$lastDelta=e),this.lastDeltas.push(e)}},e.prototype.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},e.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},e.prototype.markIgnored=function(e,t){null==t&&(t=this.$rev+1);for(var n=this.$undoStack,i=n.length;i--;){var r=n[i][0];if(r.id<=e)break;r.id<t&&(r.ignore=!0)}this.lastDeltas=null},e.prototype.getSelection=function(e,t){for(var n=this.selections,i=n.length;i--;){var r=n[i];if(r.rev<e)return t&&(r=n[i+1]),r}},e.prototype.getRevision=function(){return this.$rev},e.prototype.getDeltas=function(e,t){null==t&&(t=this.$rev+1);for(var n=this.$undoStack,i=null,r=0,o=n.length;o--;){var s=n[o][0];if(s.id<t&&!i&&(i=o+1),s.id<=e){r=o+1;break}}return n.slice(r,i)},e.prototype.getChangedRanges=function(e,t){null==t&&(t=this.$rev+1)},e.prototype.getChangedLines=function(e,t){null==t&&(t=this.$rev+1)},e.prototype.undo=function(e,t){this.lastDeltas=null;var n=this.$undoStack;if(function(e,t){for(var n=t;n--;){var i=e[n];if(i&&!i[0].ignore){for(;n<t-1;){var r=u(e[n],e[n+1]);e[n]=r[0],e[n+1]=r[1],n++}return!0}}}(n,n.length)){e||(e=this.$session),this.$redoStackBaseRev!==this.$rev&&this.$redoStack.length&&(this.$redoStack=[]),this.$fromUndo=!0;var i=n.pop(),r=null;return i&&(r=e.undoChanges(i,t),this.$redoStack.push(i),this.$syncRev()),this.$fromUndo=!1,r}},e.prototype.redo=function(e,t){if(this.lastDeltas=null,e||(e=this.$session),this.$fromUndo=!0,this.$redoStackBaseRev!=this.$rev){var n=this.getDeltas(this.$redoStackBaseRev,this.$rev+1);!function(e,t){for(var n=0;n<t.length;n++)for(var i=t[n],r=0;r<i.length;r++)g(e,i[r])}(this.$redoStack,n),this.$redoStackBaseRev=this.$rev,this.$redoStack.forEach(function(e){e[0].id=++this.$maxRev},this)}var i=this.$redoStack.pop(),r=null;return i&&(r=e.redoChanges(i,t),this.$undoStack.push(i),this.$syncRev()),this.$fromUndo=!1,r},e.prototype.$syncRev=function(){var e=this.$undoStack,t=e[e.length-1],n=t&&t[0].id||0;this.$redoStackBaseRev=n,this.$rev=n},e.prototype.reset=function(){this.lastDeltas=null,this.$lastDelta=null,this.$undoStack=[],this.$redoStack=[],this.$rev=0,this.mark=0,this.$redoStackBaseRev=this.$rev,this.selections=[]},e.prototype.canUndo=function(){return this.$undoStack.length>0},e.prototype.canRedo=function(){return this.$redoStack.length>0},e.prototype.bookmark=function(e){null==e&&(e=this.$rev),this.mark=e},e.prototype.isAtBookmark=function(){return this.$rev===this.mark},e.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},e.prototype.fromJSON=function(e){this.reset(),this.$undoStack=e.$undoStack,this.$redoStack=e.$redoStack},e.prototype.$prettyPrint=function(e){return e?a(e):a(this.$undoStack)+"\n---\n"+a(this.$redoStack)},e}();i.prototype.hasUndo=i.prototype.canUndo,i.prototype.hasRedo=i.prototype.canRedo,i.prototype.isClean=i.prototype.isAtBookmark,i.prototype.markClean=i.prototype.bookmark;var r=e("./range").Range,o=r.comparePoints;r.comparePoints;function s(e){return{row:e.row,column:e.column}}function a(e){if(e=e||this,Array.isArray(e))return e.map(a).join("\n");var t="";return e.action?(t="insert"==e.action?"+":"-",t+="["+e.lines+"]"):e.value&&(t=Array.isArray(e.value)?e.value.map(l).join("\n"):l(e.value)),e.start&&(t+=l(e)),(e.id||e.rev)&&(t+="\t("+(e.id||e.rev)+")"),t}function l(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function c(e,t){var n="insert"==e.action,i="insert"==t.action;if(n&&i)if(o(t.start,e.end)>=0)h(t,e,-1);else{if(!(o(t.start,e.start)<=0))return null;h(e,t,1)}else if(n&&!i)if(o(t.start,e.end)>=0)h(t,e,-1);else{if(!(o(t.end,e.start)<=0))return null;h(e,t,-1)}else if(!n&&i)if(o(t.start,e.start)>=0)h(t,e,1);else{if(!(o(t.start,e.start)<=0))return null;h(e,t,1)}else if(!n&&!i)if(o(t.start,e.start)>=0)h(t,e,1);else{if(!(o(t.end,e.start)<=0))return null;h(e,t,-1)}return[t,e]}function u(e,t){for(var n=e.length;n--;)for(var i=0;i<t.length;i++)if(!c(e[n],t[i])){for(;n<e.length;){for(;i--;)c(t[i],e[n]);i=t.length,n++}return[e,t]}return e.selectionBefore=t.selectionBefore=e.selectionAfter=t.selectionAfter=null,[t,e]}function d(e,t){var n="insert"==e.action,i="insert"==t.action;if(n&&i)o(e.start,t.start)<0?h(t,e,1):h(e,t,1);else if(n&&!i)o(e.start,t.end)>=0?h(e,t,-1):(o(e.start,t.start)<=0||h(e,r.fromPoints(t.start,e.start),-1),h(t,e,1));else if(!n&&i)o(t.start,e.end)>=0?h(t,e,-1):(o(t.start,e.start)<=0||h(t,r.fromPoints(e.start,t.start),-1),h(e,t,1));else if(!n&&!i)if(o(t.start,e.end)>=0)h(t,e,-1);else{var s,a;if(!(o(t.end,e.start)<=0))return o(e.start,t.start)<0&&(s=e,e=f(e,t.start)),o(e.end,t.end)>0&&(a=f(e,t.end)),p(t.end,e.start,e.end,-1),a&&!s&&(e.lines=a.lines,e.start=a.start,e.end=a.end,a=e),[t,s,a].filter(Boolean);h(e,t,-1)}return[t,e]}function h(e,t,n){p(e.start,t.start,t.end,n),p(e.end,t.start,t.end,n)}function p(e,t,n,i){e.row==(1==i?t:n).row&&(e.column+=i*(n.column-t.column)),e.row+=i*(n.row-t.row)}function f(e,t){var n=e.lines,i=e.end;e.end=s(t);var r=e.end.row-e.start.row,o=n.splice(r,n.length),a=r?t.column:t.column-e.start.column;return n.push(o[0].substring(0,a)),o[0]=o[0].substr(a),{start:s(t),end:i,lines:o,action:e.action}}function g(e,t){t=function(e){return{start:s(e.start),end:s(e.end),action:e.action,lines:e.lines.slice()}}(t);for(var n=e.length;n--;){for(var i=e[n],r=0;r<i.length;r++){var o=d(i[r],t);t=o[0],2!=o.length&&(o[2]?(i.splice(r+1,1,o[1],o[2]),r++):o[1]||(i.splice(r,1),r--))}i.length||e.splice(n,1)}return e}t.UndoManager=i}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){"use strict";var i=e("../range").Range,r=function(){function e(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new i(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}return e.prototype.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},e.prototype.addFold=function(e){if(e.sameRow){if(e.start.row<this.startRow||e.endRow>this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},e.prototype.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},e.prototype.walk=function(e,t,n){var i,r,o=0,s=this.folds,a=!0;null==t&&(t=this.end.row,n=this.end.column);for(var l=0;l<s.length;l++){if(-1==(r=(i=s[l]).range.compareStart(t,n)))return void e(null,t,n,o,a);if(!e(null,i.start.row,i.start.column,o,a)&&e(i.placeholder,i.start.row,i.start.column,o)||0===r)return;a=!i.sameRow,o=i.end.column}e(null,t,n,o,a)},e.prototype.getNextFoldTo=function(e,t){for(var n,i,r=0;r<this.folds.length;r++){if(-1==(i=(n=this.folds[r]).range.compareEnd(e,t)))return{fold:n,kind:"after"};if(0===i)return{fold:n,kind:"inside"}}return null},e.prototype.addRemoveChars=function(e,t,n){var i,r,o=this.getNextFoldTo(e,t);if(o)if(i=o.fold,"inside"==o.kind&&i.start.column!=t&&i.start.row!=e)window.console&&window.console.log(e,t,i);else if(i.start.row==e){var s=(r=this.folds).indexOf(i);for(0===s&&(this.start.column+=n);s<r.length;s++){if((i=r[s]).start.column+=n,!i.sameRow)return;i.end.column+=n}this.end.column+=n}},e.prototype.split=function(t,n){var i=this.getNextFoldTo(t,n);if(!i||"inside"==i.kind)return null;var r=i.fold,o=this.folds,s=this.foldData,a=o.indexOf(r),l=o[a-1];this.end.row=l.end.row,this.end.column=l.end.column;var c=new e(s,o=o.splice(a,o.length-a));return s.splice(s.indexOf(this)+1,0,c),c},e.prototype.merge=function(e){for(var t=e.folds,n=0;n<t.length;n++)this.addFold(t[n]);var i=this.foldData;i.splice(i.indexOf(e),1)},e.prototype.toString=function(){var e=[this.range.toString()+": ["];return this.folds.forEach(function(t){e.push(" "+t.toString())}),e.push("]"),e.join("\n")},e.prototype.idxToPosition=function(e){for(var t=0,n=0;n<this.folds.length;n++){var i=this.folds[n];if((e-=i.start.column-t)<0)return{row:i.start.row,column:i.start.column+e};if((e-=i.placeholder.length)<0)return i.start;t=i.end.column}return{row:this.end.row,column:this.end.column+e}},e}();t.FoldLine=r}),ace.define("ace/range_list",["require","exports","module","ace/range"],function(e,t,n){"use strict";var i=e("./range").Range.comparePoints,r=function(){function e(){this.ranges=[],this.$bias=1}return e.prototype.pointIndex=function(e,t,n){for(var r=this.ranges,o=n||0;o<r.length;o++){var s=r[o],a=i(e,s.end);if(!(a>0)){var l=i(e,s.start);return 0===a?t&&0!==l?-o-2:o:l>0||0===l&&!t?o:-o-1}}return-o-1},e.prototype.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var i=this.pointIndex(e.end,t,n);return i<0?i=-i-1:i++,this.ranges.splice(n,i-n,e)},e.prototype.addList=function(e){for(var t=[],n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},e.prototype.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},e.prototype.merge=function(){for(var e,t=[],n=this.ranges,r=(n=n.sort(function(e,t){return i(e.start,t.start)}))[0],o=1;o<n.length;o++){e=r,r=n[o];var s=i(e.end,r.start);s<0||(0!=s||e.isEmpty()||r.isEmpty())&&(i(e.end,r.end)<0&&(e.end.row=r.end.row,e.end.column=r.end.column),n.splice(o,1),t.push(r),r=e,o--)}return this.ranges=n,t},e.prototype.contains=function(e,t){return this.pointIndex({row:e,column:t})>=0},e.prototype.containsPoint=function(e){return this.pointIndex(e)>=0},e.prototype.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},e.prototype.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row<e)return[];var i=this.pointIndex({row:e,column:0});i<0&&(i=-i-1);var r=this.pointIndex({row:t,column:0},i);r<0&&(r=-r-1);for(var o=[],s=i;s<r;s++)o.push(n[s]);return o},e.prototype.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},e.prototype.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},e.prototype.detach=function(){this.session&&(this.session.removeListener("change",this.onChange),this.session=null)},e.prototype.$onChange=function(e){for(var t=e.start,n=e.end,i=t.row,r=n.row,o=this.ranges,s=0,a=o.length;s<a;s++){if((u=o[s]).end.row>=i)break}if("insert"==e.action)for(var l=r-i,c=-t.column+n.column;s<a;s++){if((u=o[s]).start.row>i)break;if(u.start.row==i&&u.start.column>=t.column&&(u.start.column==t.column&&this.$bias<=0||(u.start.column+=c,u.start.row+=l)),u.end.row==i&&u.end.column>=t.column){if(u.end.column==t.column&&this.$bias<0)continue;u.end.column==t.column&&c>0&&s<a-1&&u.end.column>u.start.column&&u.end.column==o[s+1].start.column&&(u.end.column-=c),u.end.column+=c,u.end.row+=l}}else for(l=i-r,c=t.column-n.column;s<a;s++){if((u=o[s]).start.row>r)break;u.end.row<r&&(i<u.end.row||i==u.end.row&&t.column<u.end.column)?(u.end.row=i,u.end.column=t.column):u.end.row==r?u.end.column<=n.column?(l||u.end.column>t.column)&&(u.end.column=t.column,u.end.row=t.row):(u.end.column+=c,u.end.row+=l):u.end.row>r&&(u.end.row+=l),u.start.row<r&&(i<u.start.row||i==u.start.row&&t.column<u.start.column)?(u.start.row=i,u.start.column=t.column):u.start.row==r?u.start.column<=n.column?(l||u.start.column>t.column)&&(u.start.column=t.column,u.start.row=t.row):(u.start.column+=c,u.start.row+=l):u.start.row>r&&(u.start.row+=l)}if(0!=l&&s<a)for(;s<a;s++){var u;(u=o[s]).start.row+=l,u.end.row+=l}},e}();r.prototype.comparePoints=i,t.RangeList=r}),ace.define("ace/edit_session/fold",["require","exports","module","ace/range_list"],function(e,t,n){"use strict";var i,r=this&&this.__extends||(i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},i(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=function(e){function t(t,n){var i=e.call(this)||this;return i.foldLine=null,i.placeholder=n,i.range=t,i.start=t.start,i.end=t.end,i.sameRow=t.start.row==t.end.row,i.subFolds=i.ranges=[],i}return r(t,e),t.prototype.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},t.prototype.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach(function(t){t.setFoldLine(e)})},t.prototype.clone=function(){var e=new t(this.range.clone(),this.placeholder);return this.subFolds.forEach(function(t){e.subFolds.push(t.clone())}),e.collapseChildren=this.collapseChildren,e},t.prototype.addSubFold=function(e){if(!this.range.isEqual(e)){var t,n;t=e,n=this.start,s(t.start,n),s(t.end,n);for(var i=e.start.row,r=e.start.column,o=0,a=-1;o<this.subFolds.length&&1==(a=this.subFolds[o].range.compare(i,r));o++);var l=this.subFolds[o],c=0;if(0==a){if(l.range.containsRange(e))return l.addSubFold(e);c=1}i=e.range.end.row,r=e.range.end.column;var u=o;for(a=-1;u<this.subFolds.length&&1==(a=this.subFolds[u].range.compare(i,r));u++);0==a&&u++;for(var d=this.subFolds.splice(o,u-o,e),h=0==a?d.length-1:d.length,p=c;p<h;p++)e.addSubFold(d[p]);return e.setFoldLine(this.foldLine),e}},t.prototype.restoreRange=function(e){return function(e,t){a(e.start,t),a(e.end,t)}(e,this.start)},t}(e("../range_list").RangeList);function s(e,t){e.row-=t.row,0==e.row&&(e.column-=t.column)}function a(e,t){0==e.row&&(e.column+=t.column),e.row+=t.row}t.Fold=o}),ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator","ace/mouse/mouse_event"],function(e,t,n){"use strict";var i=e("../range").Range,r=e("./fold_line").FoldLine,o=e("./fold").Fold,s=e("../token_iterator").TokenIterator,a=e("../mouse/mouse_event").MouseEvent;t.Folding=function(){this.getFoldAt=function(e,t,n){var i=this.getFoldLine(e);if(!i)return null;for(var r=i.folds,o=0;o<r.length;o++){var s=r[o].range;if(s.contains(e,t)){if(1==n&&s.isEnd(e,t)&&!s.isEmpty())continue;if(-1==n&&s.isStart(e,t)&&!s.isEmpty())continue;return r[o]}}},this.getFoldsInRange=function(e){var t=e.start,n=e.end,i=this.$foldData,r=[];t.column+=1,n.column-=1;for(var o=0;o<i.length;o++){var s=i[o].range.compareRange(e);if(2!=s){if(-2==s)break;for(var a=i[o].folds,l=0;l<a.length;l++){var c=a[l];if(-2==(s=c.range.compareRange(e)))break;if(2!=s){if(42==s)break;r.push(c)}}}}return t.column-=1,n.column+=1,r},this.getFoldsInRangeList=function(e){if(Array.isArray(e)){var t=[];e.forEach(function(e){t=t.concat(this.getFoldsInRange(e))},this)}else t=this.getFoldsInRange(e);return t},this.getAllFolds=function(){for(var e=[],t=this.$foldData,n=0;n<t.length;n++)for(var i=0;i<t[n].folds.length;i++)e.push(t[n].folds[i]);return e},this.getFoldStringAt=function(e,t,n,i){if(!(i=i||this.getFoldLine(e)))return null;for(var r,o,s={end:{column:0}},a=0;a<i.folds.length;a++){var l=(o=i.folds[a]).range.compareEnd(e,t);if(-1==l){r=this.getLine(o.start.row).substring(s.end.column,o.start.column);break}if(0===l)return null;s=o}return r||(r=this.getLine(o.start.row).substring(s.end.column)),-1==n?r.substring(0,t-s.end.column):1==n?r.substring(t-s.end.column):r},this.getFoldLine=function(e,t){var n=this.$foldData,i=0;for(t&&(i=n.indexOf(t)),-1==i&&(i=0);i<n.length;i++){var r=n[i];if(r.start.row<=e&&r.end.row>=e)return r;if(r.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,i=0;for(t&&(i=n.indexOf(t)),-1==i&&(i=0);i<n.length;i++){var r=n[i];if(r.end.row>=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var n=this.$foldData,i=t-e+1,r=0;r<n.length;r++){var o=n[r],s=o.end.row,a=o.start.row;if(s>=t){a<t&&(a>=e?i-=t-a:i=0);break}s>=e&&(i-=a>=e?s-a:s-e+1)}return i},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n,i=this.$foldData,s=!1;e instanceof o?n=e:(n=new o(t,e)).collapseChildren=t.collapseChildren,this.$clipRangeToDocument(n.range);var a=n.start.row,l=n.start.column,c=n.end.row,u=n.end.column,d=this.getFoldAt(a,l,1),h=this.getFoldAt(c,u,-1);if(d&&h==d)return d.addSubFold(n);d&&!d.range.isStart(a,l)&&this.removeFold(d),h&&!h.range.isEnd(c,u)&&this.removeFold(h);var p=this.getFoldsInRange(n.range);p.length>0&&(this.removeFolds(p),n.collapseChildren||p.forEach(function(e){n.addSubFold(e)}));for(var f=0;f<i.length;f++){var g=i[f];if(c==g.start.row){g.addFold(n),s=!0;break}if(a==g.end.row){if(g.addFold(n),s=!0,!n.sameRow){var m=i[f+1];if(m&&m.start.row==c){g.merge(m);break}}break}if(c<=g.start.row)break}return s||(g=this.$addFoldLine(new r(this.$foldData,n))),this.$useWrapMode?this.$updateWrapData(g.start.row,g.start.row):this.$updateRowLengthCache(g.start.row,g.start.row),this.$modified=!0,this._signal("changeFold",{data:n,action:"add"}),n},this.addFolds=function(e){e.forEach(function(e){this.addFold(e)},this)},this.removeFold=function(e){var t=e.foldLine,n=t.start.row,i=t.end.row,r=this.$foldData,o=t.folds;if(1==o.length)r.splice(r.indexOf(t),1);else if(t.range.isEnd(e.end.row,e.end.column))o.pop(),t.end.row=o[o.length-1].end.row,t.end.column=o[o.length-1].end.column;else if(t.range.isStart(e.start.row,e.start.column))o.shift(),t.start.row=o[0].start.row,t.start.column=o[0].start.column;else if(e.sameRow)o.splice(o.indexOf(e),1);else{var s=t.split(e.start.row,e.start.column);(o=s.folds).shift(),s.start.row=o[0].start.row,s.start.column=o[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(n,i):this.$updateRowLengthCache(n,i)),this.$modified=!0,this._signal("changeFold",{data:e,action:"remove"})},this.removeFolds=function(e){for(var t=[],n=0;n<e.length;n++)t.push(e[n]);t.forEach(function(e){this.removeFold(e)},this),this.$modified=!0},this.expandFold=function(e){this.removeFold(e),e.subFolds.forEach(function(t){e.restoreRange(t),this.addFold(t)},this),e.collapseChildren>0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,r;if(null==e)n=new i(0,0,this.getLength(),0),null==t&&(t=!0);else if("number"==typeof e)n=new i(e,0,e,this.getLine(e).length);else if("row"in e)n=i.fromPoints(e,e);else{if(Array.isArray(e))return r=[],e.forEach(function(e){r=r.concat(this.unfold(e))},this),r;n=e}for(var o=r=this.getFoldsInRangeList(n);1==r.length&&i.comparePoints(r[0].start,n.start)<0&&i.comparePoints(r[0].end,n.end)>0;)this.expandFolds(r),r=this.getFoldsInRangeList(n);if(0!=t?this.removeFolds(r):this.expandFolds(r),o.length)return o},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,i,r){null==i&&(i=e.start.row),null==r&&(r=0),null==t&&(t=e.end.row),null==n&&(n=this.getLine(t).length);var o=this.doc,s="";return e.walk(function(e,t,n,a){if(!(t<i)){if(t==i){if(n<r)return;a=Math.max(r,a)}s+=null!=e?e:o.getLine(t).substring(a,n)}},t,n),s},this.getDisplayLine=function(e,t,n,i){var r,o=this.getFoldLine(e);return o?this.getFoldDisplayLine(o,e,t,n,i):(r=this.doc.getLine(e)).substring(i||0,t||r.length)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map(function(t){var n=t.folds.map(function(e){return e.clone()});return new r(e,n)})},this.toggleFold=function(e){var t,n,i=this.selection.getRange();if(i.isEmpty()){var r=i.start;if(t=this.getFoldAt(r.row,r.column))return void this.expandFold(t);if(e){var o=this.getFoldLine(r.row);return void(o&&this.expandFolds(o.folds))}(n=this.findMatchingBracket(r))?1==i.comparePoint(n)?i.end=n:(i.start=n,i.start.column++,i.end.column--):(n=this.findMatchingBracket({row:r.row,column:r.column+1}))?(1==i.comparePoint(n)?i.end=n:i.start=n,i.start.column++):i=this.getCommentFoldRange(r.row,r.column)||i}else{var s=this.getFoldsInRange(i);if(e&&s.length)return void this.expandFolds(s);1==s.length&&(t=s[0])}if(t||(t=this.getFoldAt(i.start.row,i.start.column)),t&&t.range.toString()==i.toString())this.expandFold(t);else{var a="...";if(!i.isMultiLine()){if((a=this.getTextRange(i)).length<4)return;a=a.trim().substring(0,2)+".."}this.addFold(a,i)}},this.getCommentFoldRange=function(e,t,n){var r=new s(this,e,t),o=r.getCurrentToken(),a=o&&o.type;if(o&&/^comment|string/.test(a)){"comment"==(a=a.match(/comment|string/)[0])&&(a+="|doc-start|\\.doc");var l=new RegExp(a),c=new i;if(1!=n){do{o=r.stepBackward()}while(o&&l.test(o.type));o=r.stepForward()}c.start.row=r.getCurrentTokenRow(),c.start.column=r.getCurrentTokenColumn()+o.value.length,r=new s(this,e,t);var u=this.getState(r.$row);if(-1!=n){var d=-1;do{if(o=r.stepForward(),-1==d){var h=this.getState(r.$row);u.toString()!==h.toString()&&(d=r.$row)}else if(r.$row>d)break}while(o&&l.test(o.type));o=r.stepBackward()}else o=r.getCurrentToken();if(c.end.row=r.getCurrentTokenRow(),c.end.column=r.getCurrentTokenColumn(),c.start.row==c.end.row&&c.start.column>c.end.column)return;return c}},this.foldAll=function(e,t,n,i){null==n&&(n=1e5);var r=this.foldWidgets;if(r){t=t||this.getLength();for(var o=e=e||0;o<t;o++)if(null==r[o]&&(r[o]=this.getFoldWidget(o)),"start"==r[o]&&(!i||i(o))){var s=this.getFoldWidgetRange(o);s&&s.isMultiLine()&&s.end.row<=t&&s.start.row>=e&&(o=s.end.row,s.collapseChildren=n,this.addFold("...",s))}}},this.foldToLevel=function(e){for(this.foldAll();e-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,function(t){for(var n=e.getTokens(t),i=0;i<n.length;i++){var r=n[i];if("text"!=r.type||!/^\s+$/.test(r.value))return!!/comment/.test(r.type)}})},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=e){this.$foldStyle=e,"manual"==e&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)}},this.$setFolding=function(e){this.$foldMode!=e&&(this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),e&&"manual"!=this.$foldStyle?(this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)):this.foldWidgets=null)},this.getParentFoldRangeData=function(e,t){var n=this.foldWidgets;if(!n||t&&n[e])return{};for(var i,r=e-1;r>=0;){var o=n[r];if(null==o&&(o=n[r]=this.getFoldWidget(r)),"start"==o){var s=this.getFoldWidgetRange(r);if(i||(i=s),s&&s.end.row>=e)break}r--}return{range:-1!==r&&s,firstRange:i}},this.onFoldWidgetClick=function(e,t){t instanceof a&&(t=t.domEvent);var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,n)){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var n=this.getFoldWidget(e),i=this.getLine(e),r="end"===n?-1:1,o=this.getFoldAt(e,-1===r?0:i.length,r);if(o)return t.children||t.all?this.removeFold(o):this.expandFold(o),o;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(o=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(o.range))return this.removeFold(o),o;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(!n){var i=this.getParentFoldRangeData(t,!0);if(n=i.range||i.firstRange){t=n.start.row;var r=this.getFoldAt(t,this.getLine(t).length,1);r?this.removeFold(r):this.addFold("...",n)}}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(0===n)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,n+1,null);else{var i=Array(n+1);i.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,i)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){"use strict";var i=e("../token_iterator").TokenIterator,r=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(""==n)return null;var i=n.match(/([\(\[\{])|([\)\]\}])/);return i?i[1]?this.$findClosingBracket(i[1],e):this.$findOpeningBracket(i[2],e):null},this.getBracketRange=function(e){var t,n=this.getLine(e.row),i=!0,o=n.charAt(e.column-1),s=o&&o.match(/([\(\[\{])|([\)\]\}])/);if(s||(o=n.charAt(e.column),e={row:e.row,column:e.column+1},s=o&&o.match(/([\(\[\{])|([\)\]\}])/),i=!1),!s)return null;if(s[1]){if(!(a=this.$findClosingBracket(s[1],e)))return null;t=r.fromPoints(e,a),i||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a;if(!(a=this.$findOpeningBracket(s[2],e)))return null;t=r.fromPoints(a,e),i||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(e,t){var n=this.getLine(e.row),i=/([\(\[\{])|([\)\]\}])/,o=!t&&n.charAt(e.column-1),s=o&&o.match(i);if(s||(o=(void 0===t||t)&&n.charAt(e.column),e={row:e.row,column:e.column+1},s=o&&o.match(i)),!s)return null;var a=new r(e.row,e.column-1,e.row,e.column),l=s[1]?this.$findClosingBracket(s[1],e):this.$findOpeningBracket(s[2],e);return l?[a,new r(l.row,l.column,l.row,l.column+1)]:[a]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var r=this.$brackets[e],o=1,s=new i(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var u=c.charAt(l);if(u==r){if(0==(o-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else u==e&&(o+=1);l-=1}do{a=s.stepBackward()}while(a&&!n.test(a.type));if(null==a)break;l=(c=a.value).length-1}return null}},this.$findClosingBracket=function(e,t,n){var r=this.$brackets[e],o=1,s=new i(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){n||(n=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,u=c.length;l<u;){var d=c.charAt(l);if(d==r){if(0==(o-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else d==e&&(o+=1);l+=1}do{a=s.stepForward()}while(a&&!n.test(a.type));if(null==a)break;l=0}return null}},this.getMatchingTags=function(e){var t=new i(this,e.row,e.column),n=this.$findTagName(t);if(n)return"<"===t.stepBackward().value?this.$findClosingTag(t,n):this.$findOpeningTag(t,n)},this.$findTagName=function(e){var t=e.getCurrentToken(),n=!1,i=!1;if(t&&-1===t.type.indexOf("tag-name"))do{(t=i?e.stepBackward():e.stepForward())&&("/>"===t.value?i=!0:-1!==t.type.indexOf("tag-name")&&(n=!0))}while(t&&!n);return t},this.$findClosingTag=function(e,t){var n,i=t.value,o=t.value,s=0,a=new r(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);t=e.stepForward();var l=new r(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length),c=!1;do{if(-1!==(n=t).type.indexOf("tag-close")&&!c){var u=new r(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);c=!0}if(t=e.stepForward()){if(">"===t.value&&!c){u=new r(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);c=!0}if(-1!==t.type.indexOf("tag-name")){if(o===(i=t.value))if("<"===n.value)s++;else if("</"===n.value&&--s<0){e.stepBackward();var d=new r(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2);t=e.stepForward();var h=new r(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);if(-1===t.type.indexOf("tag-close")&&(t=e.stepForward()),!t||">"!==t.value)return;var p=new r(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else if(o===i&&"/>"===t.value&&--s<0)p=h=d=new r(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2),u=new r(l.end.row,l.end.column,l.end.row,l.end.column+1)}}while(t&&s>=0);if(a&&u&&d&&p&&l&&h)return{openTag:new r(a.start.row,a.start.column,u.end.row,u.end.column),closeTag:new r(d.start.row,d.start.column,p.end.row,p.end.column),openTagName:l,closeTagName:h}},this.$findOpeningTag=function(e,t){var n=e.getCurrentToken(),i=t.value,o=0,s=e.getCurrentTokenRow(),a=e.getCurrentTokenColumn(),l=a+2,c=new r(s,a,s,l);e.stepForward();var u=new r(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);if(-1===t.type.indexOf("tag-close")&&(t=e.stepForward()),t&&">"===t.value){var d=new r(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);e.stepBackward(),e.stepBackward();do{if(t=n,s=e.getCurrentTokenRow(),l=(a=e.getCurrentTokenColumn())+t.value.length,n=e.stepBackward(),t)if(-1!==t.type.indexOf("tag-name")){if(i===t.value)if("<"===n.value){if(++o>0){var h=new r(s,a,s,l),p=new r(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);do{t=e.stepForward()}while(t&&">"!==t.value);var f=new r(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else"</"===n.value&&o--}else if("/>"===t.value){for(var g=0,m=n;m;){if(-1!==m.type.indexOf("tag-name")&&m.value===i){o--;break}if("<"===m.value)break;m=e.stepBackward(),g++}for(var y=0;y<g;y++)e.stepForward()}}while(n&&o<=0);return p&&f&&c&&d&&h&&u?{openTag:new r(p.start.row,p.start.column,f.end.row,f.end.column),closeTag:new r(c.start.row,c.start.column,d.end.row,d.end.column),openTagName:h,closeTagName:u}:void 0}}}}),ace.define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/bidihandler","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/line_widgets","ace/document","ace/background_tokenizer","ace/search_highlight","ace/undomanager","ace/edit_session/folding","ace/edit_session/bracket_match"],function(e,t,n){"use strict";var i=e("./lib/oop"),r=e("./lib/lang"),o=e("./bidihandler").BidiHandler,s=e("./config"),a=e("./lib/event_emitter").EventEmitter,l=e("./selection").Selection,c=e("./mode/text").Mode,u=e("./range").Range,d=e("./line_widgets").LineWidgets,h=e("./document").Document,p=e("./background_tokenizer").BackgroundTokenizer,f=e("./search_highlight").SearchHighlight,g=e("./undomanager").UndoManager,m=function(){function e(t,n){this.doc,this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$editor=null,this.prevOp={},this.$foldData=[],this.id="session"+ ++e.$uid,this.$foldData.toString=function(){return this.join("\n")},this.$gutterCustomWidgets={},this.bgTokenizer=new p((new c).getTokenizer(),this);var i=this;this.bgTokenizer.on("update",function(e){i._signal("tokenizerUpdate",e)}),this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this),"object"==typeof t&&t.getLine||(t=new h(t)),this.setDocument(t),this.selection=new l(this),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.selection.on("changeCursor",this.$onSelectionChange),this.$bidiHandler=new o(this),s.resetOptions(this),this.setMode(n),s._signal("session",this),this.destroyed=!1,this.$initOperationListeners()}return e.prototype.$initOperationListeners=function(){var e=this;this.curOp=null,this.on("change",function(){e.curOp||(e.startOperation(),e.curOp.selectionBefore=e.$lastSel),e.curOp.docChanged=!0},!0),this.on("changeSelection",function(){e.curOp||(e.startOperation(),e.curOp.selectionBefore=e.$lastSel),e.curOp.selectionChanged=!0},!0),this.$operationResetTimer=r.delayedCall(this.endOperation.bind(this,!0))},e.prototype.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(e={}),this.$operationResetTimer.schedule(),this.curOp={command:e.command||{},args:e.args},this.curOp.selectionBefore=this.selection.toJSON(),this._signal("startOperation",e)},e.prototype.endOperation=function(e){if(this.curOp){if(e&&!1===e.returnValue)return this.curOp=null,void this._signal("endOperation",e);if(1==e&&this.curOp.command&&"mouse"==this.curOp.command.name)return;var t=this.selection.toJSON();this.curOp.selectionAfter=t,this.$lastSel=this.selection.toJSON(),this.getUndoManager().addSelection(t),this._signal("beforeEndOperation"),this.prevOp=this.curOp,this.curOp=null,this._signal("endOperation",e)}},e.prototype.setDocument=function(e){this.doc&&this.doc.off("change",this.$onChange),this.doc=e,e.on("change",this.$onChange,!0),this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},e.prototype.getDocument=function(){return this.doc},Object.defineProperty(e.prototype,"widgetManager",{get:function(){var e=new d(this);return this.widgetManager=e,this.$editor&&e.attach(this.$editor),e},set:function(e){Object.defineProperty(this,"widgetManager",{writable:!0,enumerable:!0,configurable:!0,value:e})},enumerable:!1,configurable:!0}),e.prototype.$resetRowCache=function(e){if(!e)return this.$docRowCache=[],void(this.$screenRowCache=[]);var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},e.prototype.$getRowCacheIndex=function(e,t){for(var n=0,i=e.length-1;n<=i;){var r=n+i>>1,o=e[r];if(t>o)n=r+1;else{if(!(t<o))return r;i=r-1}}return n-1},e.prototype.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.destroyed||this.bgTokenizer.start(0)},e.prototype.onChangeFold=function(e){var t=e.data;this.$resetRowCache(t.start.row)},e.prototype.onChange=function(e){this.$modified=!0,this.$bidiHandler.onChange(e),this.$resetRowCache(e.start.row);var t=this.$updateInternalDataOnChange(e);!this.$fromUndo&&this.$undoManager&&(t&&t.length&&(this.$undoManager.add({action:"removeFolds",folds:t},this.mergeUndoDeltas),this.mergeUndoDeltas=!0),this.$undoManager.add(e,this.mergeUndoDeltas),this.mergeUndoDeltas=!0,this.$informUndoManager.schedule()),this.bgTokenizer.$updateOnChange(e),this._signal("change",e)},e.prototype.onSelectionChange=function(){this._signal("changeSelection")},e.prototype.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},e.fromJSON=function(t){"string"==typeof t&&(t=JSON.parse(t));var n=new g;n.$undoStack=t.history.$undoStack,n.$redoStack=t.history.$redoStack,n.mark=t.history.mark,n.$rev=t.history.rev;var i=new e(t.value);return t.folds.forEach(function(e){i.addFold("...",u.fromPoints(e.start,e.end))}),i.setAnnotations(t.annotations),i.setBreakpoints(t.breakpoints),i.setMode(t.mode),i.setScrollLeft(t.scrollLeft),i.setScrollTop(t.scrollTop),i.setUndoManager(n),i.selection.fromJSON(t.selection),i},e.prototype.toJSON=function(){return{annotations:this.$annotations,breakpoints:this.$breakpoints,folds:this.getAllFolds().map(function(e){return e.range}),history:this.getUndoManager(),mode:this.$mode.$id,scrollLeft:this.$scrollLeft,scrollTop:this.$scrollTop,selection:this.selection.toJSON(),value:this.doc.getValue()}},e.prototype.toString=function(){return this.doc.getValue()},e.prototype.getSelection=function(){return this.selection},e.prototype.getState=function(e){return this.bgTokenizer.getState(e)},e.prototype.getTokens=function(e){return this.bgTokenizer.getTokens(e)},e.prototype.getTokenAt=function(e,t){var n,i=this.bgTokenizer.getTokens(e),r=0;if(null==t){var o=i.length-1;r=this.getLine(e).length}else for(o=0;o<i.length&&!((r+=i[o].value.length)>=t);o++);return(n=i[o])?(n.index=o,n.start=r-n.value.length,n):null},e.prototype.setUndoManager=function(e){if(this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},e.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},e.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},e.prototype.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):"\t"},e.prototype.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},e.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},e.prototype.setTabSize=function(e){this.setOption("tabSize",e)},e.prototype.getTabSize=function(){return this.$tabSize},e.prototype.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},e.prototype.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},e.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},e.prototype.setOverwrite=function(e){this.setOption("overwrite",e)},e.prototype.getOverwrite=function(){return this.$overwrite},e.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},e.prototype.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},e.prototype.removeGutterCustomWidget=function(e){this.$editor&&this.$editor.renderer.$gutterLayer.$removeCustomWidget(e)},e.prototype.addGutterCustomWidget=function(e,t){this.$editor&&this.$editor.renderer.$gutterLayer.$addCustomWidget(e,t)},e.prototype.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},e.prototype.getBreakpoints=function(){return this.$breakpoints},e.prototype.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t<e.length;t++)this.$breakpoints[e[t]]="ace_breakpoint";this._signal("changeBreakpoint",{})},e.prototype.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},e.prototype.setBreakpoint=function(e,t){void 0===t&&(t="ace_breakpoint"),t?this.$breakpoints[e]=t:delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},e.prototype.clearBreakpoint=function(e){delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},e.prototype.addMarker=function(e,t,n,i){var r=this.$markerId++,o={range:e,type:n||"line",renderer:"function"==typeof n?n:null,clazz:t,inFront:!!i,id:r};return i?(this.$frontMarkers[r]=o,this._signal("changeFrontMarker")):(this.$backMarkers[r]=o,this._signal("changeBackMarker")),r},e.prototype.addDynamicMarker=function(e,t){if(e.update){var n=this.$markerId++;return e.id=n,e.inFront=!!t,t?(this.$frontMarkers[n]=e,this._signal("changeFrontMarker")):(this.$backMarkers[n]=e,this._signal("changeBackMarker")),e}},e.prototype.removeMarker=function(e){var t=this.$frontMarkers[e]||this.$backMarkers[e];t&&(delete(t.inFront?this.$frontMarkers:this.$backMarkers)[e],this._signal(t.inFront?"changeFrontMarker":"changeBackMarker"))},e.prototype.getMarkers=function(e){return e?this.$frontMarkers:this.$backMarkers},e.prototype.highlight=function(e){if(!this.$searchHighlight){var t=new f(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(t)}this.$searchHighlight.setRegexp(e)},e.prototype.highlightLines=function(e,t,n,i){"number"!=typeof t&&(n=t,t=e),n||(n="ace_step");var r=new u(e,0,t,1/0);return r.id=this.addMarker(r,n,"fullLine",i),r},e.prototype.setAnnotations=function(e){this.$annotations=e,this._signal("changeAnnotation",{})},e.prototype.getAnnotations=function(){return this.$annotations||[]},e.prototype.clearAnnotations=function(){this.setAnnotations([])},e.prototype.$detectNewLine=function(e){var t=e.match(/^.*?(\r?\n)/m);this.$autoNewLine=t?t[1]:"\n"},e.prototype.getWordRange=function(e,t){var n=this.getLine(e),i=!1;if(t>0&&(i=!!n.charAt(t-1).match(this.tokenRe)),i||(i=!!n.charAt(t).match(this.tokenRe)),i)var r=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))r=/\s/;else r=this.nonTokenRe;var o=t;if(o>0){do{o--}while(o>=0&&n.charAt(o).match(r));o++}for(var s=t;s<n.length&&n.charAt(s).match(r);)s++;return new u(e,o,e,s)},e.prototype.getAWordRange=function(e,t){for(var n=this.getWordRange(e,t),i=this.getLine(n.end.row);i.charAt(n.end.column).match(/[ \t]/);)n.end.column+=1;return n},e.prototype.setNewLineMode=function(e){this.doc.setNewLineMode(e)},e.prototype.getNewLineMode=function(){return this.doc.getNewLineMode()},e.prototype.setUseWorker=function(e){this.setOption("useWorker",e)},e.prototype.getUseWorker=function(){return this.$useWorker},e.prototype.onReloadTokenizer=function(e){var t=e.data;this.bgTokenizer.start(t.first),this._signal("tokenizerUpdate",e)},e.prototype.setMode=function(e,t){if(e&&"object"==typeof e){if(e.getTokenizer)return this.$onChangeMode(e);var n=e,i=n.path}else i=e||"ace/mode/text";if(this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new c),this.$modes[i]&&!n)return this.$onChangeMode(this.$modes[i]),void(t&&t());this.$modeId=i,s.loadModule(["mode",i],function(e){if(!this.destroyed){if(this.$modeId!==i)return t&&t();this.$modes[i]&&!n?this.$onChangeMode(this.$modes[i]):e&&e.Mode&&(e=new e.Mode(n),n||(this.$modes[i]=e,e.$id=i),this.$onChangeMode(e)),t&&t()}}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},e.prototype.$onChangeMode=function(e,t){if(t||(this.$modeId=e.$id),this.$mode!==e){var n=this.$mode;this.$mode=e,this.$stopWorker(),this.$useWorker&&this.$startWorker();var i=e.getTokenizer();if(void 0!==i.on){var r=this.onReloadTokenizer.bind(this);i.on("update",r)}this.bgTokenizer.setTokenizer(i),this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=e.tokenRe,this.nonTokenRe=e.nonTokenRe,t||(e.attachToSession&&e.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(e.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode",{oldMode:n,mode:e}))}},e.prototype.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},e.prototype.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(e){s.warn("Could not load worker",e),this.$worker=null}},e.prototype.getMode=function(){return this.$mode},e.prototype.setScrollTop=function(e){this.$scrollTop===e||isNaN(e)||(this.$scrollTop=e,this._signal("changeScrollTop",e))},e.prototype.getScrollTop=function(){return this.$scrollTop},e.prototype.setScrollLeft=function(e){this.$scrollLeft===e||isNaN(e)||(this.$scrollLeft=e,this._signal("changeScrollLeft",e))},e.prototype.getScrollLeft=function(){return this.$scrollLeft},e.prototype.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},e.prototype.getLineWidgetMaxWidth=function(){if(null!=this.lineWidgetsWidth)return this.lineWidgetsWidth;var e=0;return this.lineWidgets.forEach(function(t){t&&t.screenWidth>e&&(e=t.screenWidth)}),this.lineWidgetWidth=e},e.prototype.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),n=this.$rowLengthCache,i=0,r=0,o=this.$foldData[r],s=o?o.start.row:1/0,a=t.length,l=0;l<a;l++){if(l>s){if((l=o.end.row+1)>=a)break;s=(o=this.$foldData[r++])?o.start.row:1/0}null==n[l]&&(n[l]=this.$getStringScreenWidth(t[l])[0]),n[l]>i&&(i=n[l])}this.screenWidth=i}},e.prototype.getLine=function(e){return this.doc.getLine(e)},e.prototype.getLines=function(e,t){return this.doc.getLines(e,t)},e.prototype.getLength=function(){return this.doc.getLength()},e.prototype.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},e.prototype.insert=function(e,t){return this.doc.insert(e,t)},e.prototype.remove=function(e){return this.doc.remove(e)},e.prototype.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},e.prototype.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=e.length-1;-1!=n;n--){var i=e[n];"insert"==i.action||"remove"==i.action?this.doc.revertDelta(i):i.folds&&this.addFolds(i.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1}},e.prototype.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=0;n<e.length;n++){var i=e[n];"insert"!=i.action&&"remove"!=i.action||this.doc.$safeApplyDelta(i)}!t&&this.$undoSelect&&(e.selectionAfter?this.selection.fromJSON(e.selectionAfter):this.selection.setRange(this.$getUndoSelection(e,!1))),this.$fromUndo=!1}},e.prototype.setUndoSelect=function(e){this.$undoSelect=e},e.prototype.$getUndoSelection=function(e,t){function n(e){return t?"insert"!==e.action:"insert"===e.action}for(var i,r,o=0;o<e.length;o++){var s=e[o];s.start&&(i?n(s)?(r=s.start,-1==i.compare(r.row,r.column)&&i.setStart(r),r=s.end,1==i.compare(r.row,r.column)&&i.setEnd(r)):(r=s.start,-1==i.compare(r.row,r.column)&&(i=u.fromPoints(s.start,s.start))):i=n(s)?u.fromPoints(s.start,s.end):u.fromPoints(s.start,s.start))}return i},e.prototype.replace=function(e,t){return this.doc.replace(e,t)},e.prototype.moveText=function(e,t,n){var i=this.getTextRange(e),r=this.getFoldsInRange(e),o=u.fromPoints(t,t);if(!n){this.remove(e);var s=e.start.row-e.end.row;(c=s?-e.end.column:e.start.column-e.end.column)&&(o.start.row==e.end.row&&o.start.column>e.end.column&&(o.start.column+=c),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=c)),s&&o.start.row>=e.end.row&&(o.start.row+=s,o.end.row+=s)}if(o.end=this.insert(o.start,i),r.length){var a=e.start,l=o.start,c=(s=l.row-a.row,l.column-a.column);this.addFolds(r.map(function(e){return(e=e.clone()).start.row==a.row&&(e.start.column+=c),e.end.row==a.row&&(e.end.column+=c),e.start.row+=s,e.end.row+=s,e}))}return o},e.prototype.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var i=e;i<=t;i++)this.doc.insertInLine({row:i,column:0},n)},e.prototype.outdentRows=function(e){for(var t=e.collapseRows(),n=new u(0,0,0,0),i=this.getTabSize(),r=t.start.row;r<=t.end.row;++r){var o=this.getLine(r);n.start.row=r,n.end.row=r;for(var s=0;s<i&&" "==o.charAt(s);++s);s<i&&"\t"==o.charAt(s)?(n.start.column=s,n.end.column=s+1):(n.start.column=0,n.end.column=s),this.remove(n)}},e.prototype.$moveLines=function(e,t,n){if(e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t),n<0){if((r=this.getRowFoldStart(e+n))<0)return 0;var i=r-e}else if(n>0){var r;if((r=this.getRowFoldEnd(t+n))>this.doc.getLength()-1)return 0;i=r-t}else{e=this.$clipRowToDocument(e);i=(t=this.$clipRowToDocument(t))-e+1}var o=new u(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(o).map(function(e){return(e=e.clone()).start.row+=i,e.end.row+=i,e}),a=0==n?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,a),s.length&&this.addFolds(s),i},e.prototype.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},e.prototype.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},e.prototype.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},e.prototype.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},e.prototype.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},e.prototype.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},e.prototype.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},e.prototype.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},e.prototype.getUseWrapMode=function(){return this.$useWrapMode},e.prototype.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},e.prototype.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var i=this.$constrainWrapLimit(e,n.min,n.max);return i!=this.$wrapLimit&&i>1&&(this.$wrapLimit=i,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},e.prototype.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},e.prototype.getWrapLimit=function(){return this.$wrapLimit},e.prototype.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},e.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},e.prototype.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,i=e.start,r=e.end,o=i.row,s=r.row,a=s-o,l=null;if(this.$updating=!0,0!=a)if("remove"===n){this[t?"$wrapData":"$rowLengthCache"].splice(o,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var u=0;if(g=this.getFoldLine(r.row)){g.addRemoveChars(r.row,r.column,i.column-r.column),g.shiftRow(-a);var d=this.getFoldLine(o);d&&d!==g&&(d.merge(g),g=d),u=c.indexOf(g)+1}for(;u<c.length;u++){(g=c[u]).start.row>=r.row&&g.shiftRow(-a)}s=o}else{var h=Array(a);h.unshift(o,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,h);c=this.$foldData,u=0;if(g=this.getFoldLine(o)){var f=g.range.compareInside(i.row,i.column);0==f?(g=g.split(i.row,i.column))&&(g.shiftRow(a),g.addRemoveChars(s,0,r.column-i.column)):-1==f&&(g.addRemoveChars(o,0,r.column-i.column),g.shiftRow(a)),u=c.indexOf(g)+1}for(;u<c.length;u++){var g;(g=c[u]).start.row>=o&&g.shiftRow(a)}}else a=Math.abs(e.start.column-e.end.column),"remove"===n&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a),(g=this.getFoldLine(o))&&g.addRemoveChars(o,i.column,a);return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(o,s):this.$updateRowLengthCache(o,s),l},e.prototype.$updateRowLengthCache=function(e,t){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},e.prototype.$updateWrapData=function(e,t){var n,i,r=this.doc.getAllLines(),o=this.getTabSize(),s=this.$wrapData,a=this.$wrapLimit,l=e;for(t=Math.min(t,r.length-1);l<=t;)(i=this.getFoldLine(l,i))?(n=[],i.walk(function(e,t,i,o){var s;if(null!=e){(s=this.$getDisplayTokens(e,n.length))[0]=b;for(var a=1;a<s.length;a++)s[a]=v}else s=this.$getDisplayTokens(r[t].substring(o,i),n.length);n=n.concat(s)}.bind(this),i.end.row,r[i.end.row].length+1),s[i.start.row]=this.$computeWrapSplits(n,a,o),l=i.end.row+1):(n=this.$getDisplayTokens(r[l]),s[l]=this.$computeWrapSplits(n,a,o),l++)},e.prototype.$computeWrapSplits=function(e,t,n){if(0==e.length)return[];var i=[],r=e.length,o=0,s=0,a=this.$wrapAsCode,l=this.$indentedSoftWrap,c=t<=Math.max(2*n,8)||!1===l?0:Math.floor(t/2);function u(t){for(var r=t-o,u=o;u<t;u++){var h=e[u];12!==h&&2!==h||(r-=1)}i.length||(d=function(){var t=0;if(0===c)return t;if(l)for(var i=0;i<e.length;i++){var r=e[i];if(r==x)t+=1;else{if(r!=L){if(r==_)continue;break}t+=n}}return a&&!1!==l&&(t+=n),Math.min(t,c)}(),i.indent=d),s+=r,i.push(s),o=t}for(var d=0;r-o>t-d;){var h=o+t-d;if(e[h-1]>=x&&e[h]>=x)u(h);else if(e[h]!=b&&e[h]!=v){for(var p=Math.max(h-(t-(t>>2)),o-1);h>p&&e[h]<b;)h--;if(a){for(;h>p&&e[h]<b;)h--;for(;h>p&&e[h]==M;)h--}else for(;h>p&&e[h]<x;)h--;h>p?u(++h):(e[h=o+t]==w&&h--,u(h-d))}else{for(;h!=o-1&&e[h]!=b;h--);if(h>o){u(h);continue}for(h=o+t;h<e.length&&e[h]==v;h++);if(h==e.length)break;u(h)}}return i},e.prototype.$getDisplayTokens=function(e,t){var n,i=[];t=t||0;for(var r=0;r<e.length;r++){var o=e.charCodeAt(r);if(9==o){n=this.getScreenTabSize(i.length+t),i.push(L);for(var s=1;s<n;s++)i.push(_)}else 32==o?i.push(x):o>39&&o<48||o>57&&o<64?i.push(M):o>=4352&&N(o)?i.push(y,w):i.push(y)}return i},e.prototype.$getStringScreenWidth=function(e,t,n){if(0==t)return[0,0];var i,r;for(null==t&&(t=1/0),n=n||0,r=0;r<e.length&&(9==(i=e.charCodeAt(r))?n+=this.getScreenTabSize(n):i>=4352&&N(i)?n+=2:n+=1,!(n>t));r++);return[n,r]},e.prototype.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+t:t},e.prototype.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},e.prototype.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]<t.column?n.indent:0}return 0},e.prototype.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},e.prototype.getDocumentLastRowColumn=function(e,t){var n=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(n)},e.prototype.getDocumentLastRowColumnPosition=function(e,t){var n=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(n,Number.MAX_VALUE/10)},e.prototype.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:void 0},e.prototype.getScreenTabSize=function(e){return this.$tabSize-(e%this.$tabSize|0)},e.prototype.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},e.prototype.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},e.prototype.screenToDocumentPosition=function(e,t,n){if(e<0)return{row:0,column:0};var i,r,o=0,s=0,a=0,l=0,c=this.$screenRowCache,u=this.$getRowCacheIndex(c,e),d=c.length;if(d&&u>=0){a=c[u],o=this.$docRowCache[u];var h=e>c[d-1]}else h=!d;for(var p=this.getLength()-1,f=this.getNextFoldLine(o),g=f?f.start.row:1/0;a<=e&&!(a+(l=this.getRowLength(o))>e||o>=p);)a+=l,++o>g&&(o=f.end.row+1,g=(f=this.getNextFoldLine(o,f))?f.start.row:1/0),h&&(this.$docRowCache.push(o),this.$screenRowCache.push(a));if(f&&f.start.row<=o)i=this.getFoldDisplayLine(f),o=f.start.row;else{if(a+l<=e||o>p)return{row:p,column:this.getLine(p).length};i=this.getLine(o),f=null}var m=0,y=Math.floor(e-a);if(this.$useWrapMode){var w=this.$wrapData[o];w&&(r=w[y],y>0&&w.length&&(m=w.indent,s=w[y-1]||w[w.length-1],i=i.substring(s)))}return void 0!==n&&this.$bidiHandler.isBidiRow(a+y,o,y)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(i,t-m)[1],this.$useWrapMode&&s>=r&&(s=r-1),f?f.idxToPosition(s):{row:o,column:s}},e.prototype.documentToScreenPosition=function(e,t){if(void 0===t)var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var i,r=0,o=null;(i=this.getFoldAt(e,t,1))&&(e=i.start.row,t=i.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),u=l.length;if(u&&c>=0){a=l[c],r=this.$screenRowCache[c];var d=e>l[u-1]}else d=!u;for(var h=this.getNextFoldLine(a),p=h?h.start.row:1/0;a<e;){if(a>=p){if((s=h.end.row+1)>e)break;p=(h=this.getNextFoldLine(s,h))?h.start.row:1/0}else s=a+1;r+=this.getRowLength(a),a=s,d&&(this.$docRowCache.push(a),this.$screenRowCache.push(r))}var f="";h&&a>=p?(f=this.getFoldDisplayLine(h,e,t),o=h.start.row):(f=this.getLine(e).substring(0,t),o=e);var g=0;if(this.$useWrapMode){var m=this.$wrapData[o];if(m){for(var y=0;f.length>=m[y];)r++,y++;f=f.substring(m[y-1]||0,f.length),g=y>0?m.indent:0}}return this.lineWidgets&&this.lineWidgets[a]&&this.lineWidgets[a].rowsAbove&&(r+=this.lineWidgets[a].rowsAbove),{row:r,column:g+this.$getStringScreenWidth(f)[0]}},e.prototype.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},e.prototype.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},e.prototype.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var n=this.$wrapData.length,i=0,r=(a=0,(t=this.$foldData[a++])?t.start.row:1/0);i<n;){var o=this.$wrapData[i];e+=o?o.length+1:1,++i>r&&(i=t.end.row+1,r=(t=this.$foldData[a++])?t.start.row:1/0)}else{e=this.getLength();for(var s=this.$foldData,a=0;a<s.length;a++)e-=(t=s[a]).end.row-t.start.row}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},e.prototype.$setFontMetrics=function(e){this.$enableVarChar&&(this.$getStringScreenWidth=function(t,n,i){if(0===n)return[0,0];var r,o;for(n||(n=1/0),i=i||0,o=0;o<t.length&&!((i+="\t"===(r=t.charAt(o))?this.getScreenTabSize(i):e.getCharacterWidth(r))>n);o++);return[i,o]})},e.prototype.getPrecedingCharacter=function(){var e=this.selection.getCursor();return 0===e.column?0===e.row?"":this.doc.getNewLineCharacter():this.getLine(e.row)[e.column-1]},e.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.endOperation(),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection&&(this.selection.off("changeCursor",this.$onSelectionChange),this.selection.off("changeSelection",this.$onSelectionChange)),this.selection.detach()},e}();m.$uid=0,m.prototype.$modes=s.$modes,m.prototype.getValue=m.prototype.toString,m.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},m.prototype.$overwrite=!1,m.prototype.$mode=null,m.prototype.$modeId=null,m.prototype.$scrollTop=0,m.prototype.$scrollLeft=0,m.prototype.$wrapLimit=80,m.prototype.$useWrapMode=!1,m.prototype.$wrapLimitRange={min:null,max:null},m.prototype.lineWidgets=null,m.prototype.isFullWidth=N,i.implement(m.prototype,a);var y=1,w=2,b=3,v=4,M=9,x=10,L=11,_=12;function N(e){return!(e<4352)&&(e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}e("./edit_session/folding").Folding.call(m.prototype),e("./edit_session/bracket_match").BracketMatch.call(m.prototype),s.defineOptions(m.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){(e=parseInt(e))>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=m}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";var i=e("./lib/lang"),r=e("./lib/oop"),o=e("./range").Range,s=function(){function e(){this.$options={}}return e.prototype.set=function(e){return r.mixin(this.$options,e),this},e.prototype.getOptions=function(){return i.copyObject(this.$options)},e.prototype.setOptions=function(e){this.$options=e},e.prototype.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var i=null;return n.forEach(function(e,n,r,s){return i=new o(e,n,r,s),!(n==s&&t.start&&t.start.start&&0!=t.skipCurrent&&i.isEqual(t.start))||(i=null,!1)}),i},e.prototype.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,r=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),s=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,u=r.length-c;e:for(var d=a.offset||0;d<=u;d++){for(var h=0;h<c;h++)if(-1==r[d+h].search(a[h]))continue e;var p=r[d],f=r[d+c-1],g=p.length-p.match(a[0])[0].length,m=f.match(a[c-1])[0].length;l&&l.end.row===d&&l.end.column>g||(s.push(l=new o(d,g,d+c-1,m)),c>2&&(d=d+c-2))}}else for(var y,w=0;w<r.length;w++)if(this.$isMultilineSearch(t)){var b=r.length-1;if(y=this.$multiLineForward(e,a,w,b)){var v=y.endRow<=b?y.endRow-1:b;v>w&&(w=v),s.push(new o(y.startRow,y.startCol,y.endRow,y.endCol))}}else{y=i.getMatchOffsets(r[w],a);for(h=0;h<y.length;h++){var M=y[h];s.push(new o(w,M.offset,w,M.offset+M.length))}}if(n){var x=n.start.column,L=n.end.column;for(w=0,h=s.length-1;w<h&&s[w].start.column<x&&0==s[w].start.row;)w++;for(var _=n.end.row-n.start.row;w<h&&s[h].end.column>L&&s[h].end.row==_;)h--;for(s=s.slice(w,h+1),w=0,h=s.length;w<h;w++)s[w].start.row+=n.start.row,s[w].end.row+=n.start.row}return s},e.prototype.parseReplaceString=function(e){for(var t=36,n=38,i=48,r=49,o=57,s=92,a=110,l=116,c="",u=0,d=e.length;u<d;u++){var h=e.charCodeAt(u);if(h!==s){if(h===t){if(++u>=d){c+="$";break}var p=e.charCodeAt(u);if(p===t){c+="$$";continue}if(p===i||p===n){c+="$&";continue}if(r<=p&&p<=o){c+="$"+e[u];continue}}c+=e[u]}else{if(++u>=d){c+="\\";break}switch(e.charCodeAt(u)){case s:c+="\\";break;case a:c+="\n";break;case l:c+="\t"}}}return c||e},e.prototype.replace=function(e,t){var n=this.$options,i=this.$assembleRegExp(n);if(n.$isMultiLine)return t;if(i){var r=this.$isMultilineSearch(n);r&&(e=e.replace(/\r\n|\r|\n/g,"\n"));var o=i.exec(e);if(!o||!r&&o[0].length!=e.length)return null;if(t=n.regExp?this.parseReplaceString(t):t.replace(/\$/g,"$$$$"),t=e.replace(i,t),n.preserveCase){t=t.split("");for(var s=Math.min(e.length,e.length);s--;){var a=e[s];a&&a.toLowerCase()!=a?t[s]=t[s].toUpperCase():t[s]=t[s].toLowerCase()}t=t.join("")}return t}},e.prototype.$assembleRegExp=function(e,t){if(e.needle instanceof RegExp)return e.re=e.needle;var n=e.needle;if(!e.needle)return e.re=!1;e.regExp||(n=i.escapeRegExp(n));var r=e.caseSensitive?"gm":"gmi";try{new RegExp(n,"u"),e.$supportsUnicodeFlag=!0,r+="u"}catch(t){e.$supportsUnicodeFlag=!1}if(e.wholeWord&&(n=function(e,t){var n=i.supportsLookbehind();function r(e,i){return void 0===i&&(i=!0),(n&&t.$supportsUnicodeFlag?new RegExp("[\\p{L}\\p{N}_]","u"):new RegExp("\\w")).test(e)||t.regExp?n&&t.$supportsUnicodeFlag?i?"(?<=^|[^\\p{L}\\p{N}_])":"(?=[^\\p{L}\\p{N}_]|$)":"\\b":""}var o=Array.from(e),s=o[0],a=o[o.length-1];return r(s)+e+r(a,!1)}(n,e)),e.$isMultiLine=!t&&/[\n\r]/.test(n),e.$isMultiLine)return e.re=this.$assembleMultilineRegExp(n,r);try{var o=new RegExp(n,r)}catch(e){o=!1}return e.re=o},e.prototype.$assembleMultilineRegExp=function(e,t){for(var n=e.replace(/\r\n|\r|\n/g,"$\n^").split("\n"),i=[],r=0;r<n.length;r++)try{i.push(new RegExp(n[r],t))}catch(e){return!1}return i},e.prototype.$isMultilineSearch=function(e){return e.re&&/\\r\\n|\\r|\\n/.test(e.re.source)&&e.regExp&&!e.$isMultiLine},e.prototype.$multiLineForward=function(e,t,n,i){for(var r,o=l(e,n),s=n;s<=i;){for(var a=0;a<o&&!(s>i);a++){var c=e.getLine(s++);r=null==r?c:r+"\n"+c}var u=t.exec(r);if(t.lastIndex=0,u){var d=r.slice(0,u.index).split("\n"),h=u[0].split("\n"),p=n+d.length-1,f=d[d.length-1].length;return{startRow:p,startCol:f,endRow:p+h.length-1,endCol:1==h.length?f+h[0].length:h[h.length-1].length}}}return null},e.prototype.$multiLineBackward=function(e,t,n,i,r){for(var o,s=l(e,i),c=e.getLine(i).length-n,u=i;u>=r;){for(var d=0;d<s&&u>=r;d++){var h=e.getLine(u--);o=null==o?h:h+"\n"+o}var p=a(o,t,c);if(p){var f=o.slice(0,p.index).split("\n"),g=p[0].split("\n"),m=u+f.length,y=f[f.length-1].length;return{startRow:m,startCol:y,endRow:m+g.length-1,endCol:1==g.length?y+g[0].length:g[g.length-1].length}}}return null},e.prototype.$matchIterator=function(e,t){var n=this.$assembleRegExp(t);if(!n)return!1;var r=this.$isMultilineSearch(t),o=this.$multiLineForward,s=this.$multiLineBackward,a=1==t.backwards,l=0!=t.skipCurrent,c=n.unicode,u=t.range,d=t.start;d||(d=u?u[a?"end":"start"]:e.selection.getRange()),d.start&&(d=d[l!=a?"end":"start"]);var h=u?u.start.row:0,p=u?u.end.row:e.getLength()-1;if(a)var f=function(e){var n=d.row;if(!m(n,d.column,e)){for(n--;n>=h;n--)if(m(n,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(n=p,h=d.row;n>=h;n--)if(m(n,Number.MAX_VALUE,e))return}};else f=function(e){var n=d.row;if(!m(n,d.column,e)){for(n+=1;n<=p;n++)if(m(n,0,e))return;if(0!=t.wrap)for(n=h,p=d.row;n<=p;n++)if(m(n,0,e))return}};if(t.$isMultiLine)var g=n.length,m=function(t,i,r){var o=a?t-g+1:t;if(!(o<0||o+g>e.getLength())){var s=e.getLine(o),l=s.search(n[0]);if(!(!a&&l<i||-1===l)){for(var c=1;c<g;c++)if(-1==(s=e.getLine(o+c)).search(n[c]))return;var u=s.match(n[g-1])[0].length;if(!(a&&u>i))return!!r(o,l,o+g-1,u)||void 0}}};else if(a)m=function(t,o,a){if(r){var l=s(e,n,o,t,h);if(!l)return!1;if(a(l.startRow,l.startCol,l.endRow,l.endCol))return!0}else{var u,d=e.getLine(t),p=[],f=0;for(n.lastIndex=0;u=n.exec(d);){var g=u[0].length;if(f=u.index,!g){if(f>=d.length)break;n.lastIndex=f+=i.skipEmptyMatch(d,f,c)}if(u.index+g>o)break;p.push(u.index,g)}for(var m=p.length-1;m>=0;m-=2){var y=p[m-1];if(a(t,y,t,y+(g=p[m])))return!0}}};else m=function(t,s,a){if(n.lastIndex=s,r){var l=o(e,n,t,p);if(l){var u=l.endRow<=p?l.endRow-1:p;u>t&&(t=u)}if(!l)return!1;if(a(l.startRow,l.startCol,l.endRow,l.endCol))return!0}else for(var d,h,f=e.getLine(t);h=n.exec(f);){var g=h[0].length;if(a(t,d=h.index,t,d+g))return!0;if(!g&&(n.lastIndex=d+=i.skipEmptyMatch(f,d,c),d>=f.length))return!1}};return{forEach:f}},e}();function a(e,t,n){for(var i=null,r=0;r<=e.length;){t.lastIndex=r;var o=t.exec(e);if(!o)break;var s=o.index+o[0].length;if(s>e.length-n)break;(!i||s>i.index+i[0].length)&&(i=o),r=o.index+1}return i}function l(e,t){var n={row:t,column:0},i=e.doc.positionToIndex(n)+5e3;return e.doc.indexToPosition(i).row+1}t.Search=s}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";var i,r=this&&this.__extends||(i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},i(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=e("../lib/keys"),s=e("../lib/useragent"),a=o.KEY_MODS,l=function(){function e(e,t){this.$init(e,t,!1)}return e.prototype.$init=function(e,t,n){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=n},e.prototype.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},e.prototype.removeCommand=function(e,t){var n=e&&("string"==typeof e?e:e.name);e=this.commands[n],t||delete this.commands[n];var i=this.commandKeyBinding;for(var r in i){var o=i[r];if(o==e)delete i[r];else if(Array.isArray(o)){var s=o.indexOf(e);-1!=s&&(o.splice(s,1),1==o.length&&(i[r]=o[0]))}}},e.prototype.bindKey=function(e,t,n){if("object"==typeof e&&e&&(null==n&&(n=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach(function(e){var i="";if(-1!=e.indexOf(" ")){var r=e.split(/\s+/);e=r.pop(),r.forEach(function(e){var t=this.parseKeys(e),n=a[t.hashId]+t.key;i+=(i?" ":"")+n,this._addCommandToBinding(i,"chainKeys")},this),i+=" "}var o=this.parseKeys(e),s=a[o.hashId]+o.key;this._addCommandToBinding(i+s,t,n)},this)},e.prototype._addCommandToBinding=function(e,t,n){var i,r=this.commandKeyBinding;if(t)if(!r[e]||this.$singleCommand)r[e]=t;else{Array.isArray(r[e])?-1!=(i=r[e].indexOf(t))&&r[e].splice(i,1):r[e]=[r[e]],"number"!=typeof n&&(n=c(t));var o=r[e];for(i=0;i<o.length;i++){if(c(o[i])>n)break}o.splice(i,0,t)}else delete r[e]},e.prototype.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(n){if("string"==typeof n)return this.bindKey(n,t);"function"==typeof n&&(n={exec:n}),"object"==typeof n&&(n.name||(n.name=t),this.addCommand(n))}},this)},e.prototype.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},e.prototype.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},e.prototype._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},e.prototype.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),i=o[n];if(o.FUNCTION_KEYS[i])n=o.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:n.toUpperCase(),hashId:-1}}for(var r=0,s=t.length;s--;){var a=o.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;r|=a}return{key:n,hashId:r}},e.prototype.findKeyCommand=function(e,t){var n=a[e]+t;return this.commandKeyBinding[n]},e.prototype.handleKeyboard=function(e,t,n,i){if(!(i<0)){var r=a[t]+n,o=this.commandKeyBinding[r];return e.$keyChain&&(e.$keyChain+=" "+r,o=this.commandKeyBinding[e.$keyChain]||o),!o||"chainKeys"!=o&&"chainKeys"!=o[o.length-1]?(e.$keyChain&&(t&&4!=t||1!=n.length?(-1==t||i>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-r.length-1)),{command:o}):(e.$keyChain=e.$keyChain||r,{command:"null"})}},e.prototype.getStatusText=function(e,t){return t.$keyChain||""},e}();function c(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}var u=function(e){function t(t,n){var i=e.call(this,t,n)||this;return i.$singleCommand=!0,i}return r(t,e),t}(l);u.call=function(e,t,n){l.prototype.$init.call(e,t,n,!0)},l.call=function(e,t,n){l.prototype.$init.call(e,t,n,!1)},t.HashHandler=u,t.MultiHashHandler=l}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){"use strict";var i,r=this&&this.__extends||(i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},i(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=e("../lib/oop"),s=e("../keyboard/hash_handler").MultiHashHandler,a=e("../lib/event_emitter").EventEmitter,l=function(e){function t(t,n){var i=e.call(this,n,t)||this;return i.byName=i.commands,i.setDefaultHandler("exec",function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)}),i}return r(t,e),t.prototype.exec=function(e,t,n){if(Array.isArray(e)){for(var i=e.length;i--;)if(this.exec(e[i],t,n))return!0;return!1}"string"==typeof e&&(e=this.commands[e]);var r={editor:t,command:e,args:n};return this.canExecute(e,t)?(r.returnValue=this._emit("exec",r),this._signal("afterExec",r),!1!==r.returnValue):(this._signal("commandUnavailable",r),!1)},t.prototype.canExecute=function(e,t){return"string"==typeof e&&(e=this.commands[e]),!!e&&(!(t&&t.$readOnly&&!e.readOnly)&&!(0!=this.$checkCommandState&&e.isAvailable&&!e.isAvailable(t)))},t.prototype.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}}},t.prototype.trimMacro=function(e){return e.map(function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e})},t}(s);o.implement(l.prototype,a),t.CommandManager=l}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,n){"use strict";var i=e("../lib/lang"),r=e("../config"),o=e("../range").Range;function s(e,t){return{win:e,mac:t}}t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:s("Ctrl-,","Command-,"),exec:function(e){r.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:s("Alt-E","F4"),exec:function(e){r.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:s("Alt-Shift-E","Shift-F4"),exec:function(e){r.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:s("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:s(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:s("Ctrl-L","Command-L"),exec:function(e,t){"number"!=typeof t||isNaN(t)||e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:s("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:s("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:s("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:s("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:s("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:s("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:s("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:s("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:s("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:s("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:s("Ctrl-F","Command-F"),exec:function(e){r.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:s("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:s("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:s("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:s("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:s("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:s("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:s("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:s("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:s("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:s("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:s("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:s("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:s("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:s("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:s("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:s("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:s("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:s("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:s("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:s("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:s(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:s("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:s(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:s("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:s("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:s("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:s("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:s("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:s("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:s("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:s(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty()?e.selection.getLineRange():e.selection.getRange();e._emit("cut",t),t.isEmpty()||e.session.remove(t),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:s("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:s("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:s("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:s("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:s("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:s("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:s("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:s("Ctrl-H","Command-Option-F"),exec:function(e){r.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",description:"Undo",bindKey:s("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:s("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:s("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:s("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:s("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:s("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:s("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:s("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:s("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:s("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:s("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:s("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:s("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:s("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:s("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:s("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:s("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:s("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:s("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(i.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:s(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:s("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:s("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:s("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:s(null,null),exec:function(e){e.autoIndent()},scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:s("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:s("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:s(null,null),exec:function(e){for(var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),r=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),s=e.session.doc.getLine(n.row).length,a=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/," ").length,l=e.session.doc.getLine(n.row),c=n.row+1;c<=r.row+1;c++){var u=i.stringTrimLeft(i.stringTrimRight(e.session.doc.getLine(c)));0!==u.length&&(u=" "+u),l+=u}r.row+1<e.session.doc.getLength()-1&&(l+=e.session.doc.getNewLineCharacter()),e.clearSelection(),e.session.doc.replace(new o(n.row,0,r.row+2,0),l),a>0?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(s=e.session.doc.getLine(n.row).length>s?s+1:s,e.selection.moveCursorTo(n.row,s))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:s(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,i=e.selection.rangeList.ranges,r=[];i.length<1&&(i=[e.selection.getRange()]);for(var s=0;s<i.length;s++)s==i.length-1&&(i[s].end.row===t&&i[s].end.column===n||r.push(new o(i[s].end.row,i[s].end.column,t,n))),0===s?0===i[s].start.row&&0===i[s].start.column||r.push(new o(0,0,i[s].start.row,i[s].start.column)):r.push(new o(i[s-1].end.row,i[s-1].end.column,i[s].start.row,i[s].start.column));e.exitMultiSelectMode(),e.clearSelection();for(s=0;s<r.length;s++)e.selection.addRange(r[s],!1)},readOnly:!0,scrollIntoView:"none"},{name:"addLineAfter",description:"Add new line after the current line",exec:function(e){e.selection.clearSelection(),e.navigateLineEnd(),e.insert("\n")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"addLineBefore",description:"Add new line before the current line",exec:function(e){e.selection.clearSelection();var t=e.getCursorPosition();e.selection.moveTo(t.row-1,Number.MAX_VALUE),e.insert("\n"),0===t.row&&e.navigateUp()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"openCommandPallete",exec:function(e){console.warn("This is an obsolete command. Please use `openCommandPalette` instead."),e.prompt({$type:"commands"})},readOnly:!0},{name:"openCommandPalette",description:"Open command palette",bindKey:s("F1","F1"),exec:function(e){e.prompt({$type:"commands"})},readOnly:!0},{name:"modeSelect",description:"Change language mode...",bindKey:s(null,null),exec:function(e){e.prompt({$type:"modes"})},readOnly:!0}];for(var a=1;a<9;a++)t.commands.push({name:"foldToLevel"+a,description:"Fold To Level "+a,level:a,exec:function(e){e.session.foldToLevel(this.level)},scrollIntoView:"center",readOnly:!0})}),ace.define("ace/keyboard/gutter_handler",["require","exports","module","ace/lib/keys"],function(e,t,n){"use strict";var i=e("../lib/keys"),r=function(){function e(e){this.editor=e,this.gutterLayer=e.renderer.$gutterLayer,this.element=e.renderer.$gutter,this.lines=e.renderer.$gutterLayer.$lines,this.activeRowIndex=null,this.activeLane=null,this.annotationTooltip=this.editor.$mouseHandler.$tooltip}return e.prototype.addListener=function(){this.element.addEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.addEventListener("focusout",this.$blurGutter.bind(this)),this.editor.on("mousewheel",this.$blurGutter.bind(this))},e.prototype.removeListener=function(){this.element.removeEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.removeEventListener("focusout",this.$blurGutter.bind(this)),this.editor.off("mousewheel",this.$blurGutter.bind(this))},e.prototype.$onGutterKeyDown=function(e){if(this.annotationTooltip.isOpen)return e.preventDefault(),void(e.keyCode===i.escape&&this.annotationTooltip.hide());if(e.target===this.element){if(e.keyCode!=i.enter)return;e.preventDefault();var t=this.editor.getCursorPosition().row;return this.editor.isRowVisible(t)||this.editor.scrollToLine(t,!0,!0),void setTimeout(function(){var e=this.$rowToRowIndex(this.gutterLayer.$cursorCell.row),t=this.$findNearestFoldLaneWidget(e),n=this.$findNearestAnnotation(e);if(null!==t||null!==n)return this.$findClosestNumber(t,n,e)===t?(this.activeLane="fold",this.activeRowIndex=t,this.$isCustomWidgetVisible(t)?void this.$focusCustomWidget(this.activeRowIndex):void this.$focusFoldWidget(this.activeRowIndex)):(this.activeRowIndex=n,this.activeLane="annotation",void this.$focusAnnotation(this.activeRowIndex))}.bind(this),10)}this.$handleGutterKeyboardInteraction(e),setTimeout(function(){this.editor._signal("gutterkeydown",new o(e,this))}.bind(this),10)},e.prototype.$handleGutterKeyboardInteraction=function(e){if(e.keyCode!==i.tab){if(e.keyCode===i.escape)return e.preventDefault(),this.$blurGutter(),this.element.focus(),void(this.lane=null);if(e.keyCode!==i.up)if(e.keyCode!==i.down){if(e.keyCode===i.left)return e.preventDefault(),void this.$switchLane("annotation");if(e.keyCode===i.right)return e.preventDefault(),void this.$switchLane("fold");if(e.keyCode!==i.enter&&e.keyCode!==i.space);else switch(e.preventDefault(),this.activeLane){case"fold":var t=this.$rowIndexToRow(this.activeRowIndex),n=this.editor.session.$gutterCustomWidgets[t];if(n)n.callbacks&&n.callbacks.onClick&&n.callbacks.onClick(e,t);else{if("start"===this.gutterLayer.session.foldWidgets[t]){this.editor.session.onFoldWidgetClick(this.$rowIndexToRow(this.activeRowIndex),e),setTimeout(function(){this.$rowIndexToRow(this.activeRowIndex)!==t&&(this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=this.$rowToRowIndex(t),this.$focusFoldWidget(this.activeRowIndex))}.bind(this),10);break}if("end"===this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)])break}return;case"annotation":this.annotationTooltip.showTooltip(this.$rowIndexToRow(this.activeRowIndex)),this.annotationTooltip.$fromKeyboard=!0}}else switch(e.preventDefault(),this.activeLane){case"fold":this.$moveFoldWidgetDown();break;case"annotation":this.$moveAnnotationDown()}else switch(e.preventDefault(),this.activeLane){case"fold":this.$moveFoldWidgetUp();break;case"annotation":this.$moveAnnotationUp()}}else e.preventDefault()},e.prototype.$blurGutter=function(){if(null!==this.activeRowIndex)switch(this.activeLane){case"fold":this.$blurFoldWidget(this.activeRowIndex),this.$blurCustomWidget(this.activeRowIndex);break;case"annotation":this.$blurAnnotation(this.activeRowIndex)}this.annotationTooltip.isOpen&&this.annotationTooltip.hide()},e.prototype.$isFoldWidgetVisible=function(e){var t=this.editor.isRowFullyVisible(this.$rowIndexToRow(e)),n="none"!==this.$getFoldWidget(e).style.display;return t&&n},e.prototype.$isCustomWidgetVisible=function(e){var t=this.editor.isRowFullyVisible(this.$rowIndexToRow(e)),n=!!this.$getCustomWidget(e);return t&&n},e.prototype.$isAnnotationVisible=function(e){var t=this.editor.isRowFullyVisible(this.$rowIndexToRow(e)),n="none"!==this.$getAnnotation(e).style.display;return t&&n},e.prototype.$getFoldWidget=function(e){return this.lines.get(e).element.childNodes[1]},e.prototype.$getCustomWidget=function(e){return this.lines.get(e).element.childNodes[3]},e.prototype.$getAnnotation=function(e){return this.lines.get(e).element.childNodes[2]},e.prototype.$findNearestFoldLaneWidget=function(e){if(this.$isCustomWidgetVisible(e))return e;if(this.$isFoldWidgetVisible(e))return e;for(var t=0;e-t>0||e+t<this.lines.getLength()-1;){if(e-++t>=0&&this.$isCustomWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isCustomWidgetVisible(e+t))return e+t;if(e-t>=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},e.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;for(var t=0;e-t>0||e+t<this.lines.getLength()-1;){if(e-++t>=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},e.prototype.$focusFoldWidget=function(e){if(null!=e){var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$focusCustomWidget=function(e){if(null!=e){var t=this.$getCustomWidget(e);t&&(t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus())}},e.prototype.$focusAnnotation=function(e){if(null!=e){var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$blurCustomWidget=function(e){var t=this.$getCustomWidget(e);t&&(t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur())},e.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$moveFoldWidgetUp=function(){for(var e=this.activeRowIndex;e>0;)if(e--,this.$isFoldWidgetVisible(e)||this.$isCustomWidgetVisible(e))return this.$blurFoldWidget(this.activeRowIndex),this.$blurCustomWidget(this.activeRowIndex),this.activeRowIndex=e,void(this.$isFoldWidgetVisible(e)?this.$focusFoldWidget(this.activeRowIndex):this.$focusCustomWidget(this.activeRowIndex))},e.prototype.$moveFoldWidgetDown=function(){for(var e=this.activeRowIndex;e<this.lines.getLength()-1;)if(e++,this.$isFoldWidgetVisible(e)||this.$isCustomWidgetVisible(e))return this.$blurFoldWidget(this.activeRowIndex),this.$blurCustomWidget(this.activeRowIndex),this.activeRowIndex=e,void(this.$isFoldWidgetVisible(e)?this.$focusFoldWidget(this.activeRowIndex):this.$focusCustomWidget(this.activeRowIndex))},e.prototype.$moveAnnotationUp=function(){for(var e=this.activeRowIndex;e>0;)if(e--,this.$isAnnotationVisible(e))return this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,void this.$focusAnnotation(this.activeRowIndex)},e.prototype.$moveAnnotationDown=function(){for(var e=this.activeRowIndex;e<this.lines.getLength()-1;)if(e++,this.$isAnnotationVisible(e))return this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,void this.$focusAnnotation(this.activeRowIndex)},e.prototype.$findClosestNumber=function(e,t,n){return null===e?t:null===t||Math.abs(n-e)<=Math.abs(n-t)?e:t},e.prototype.$switchLane=function(e){switch(e){case"annotation":if("annotation"===this.activeLane)break;var t=this.$findNearestAnnotation(this.activeRowIndex);if(null==t)break;this.activeLane="annotation",this.$blurFoldWidget(this.activeRowIndex),this.$blurCustomWidget(this.activeRowIndex),this.activeRowIndex=t,this.$focusAnnotation(this.activeRowIndex);break;case"fold":if("fold"===this.activeLane)break;var n=this.$findNearestFoldLaneWidget(this.activeRowIndex);if(null===n)break;this.activeLane="fold",this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=n,this.$isCustomWidgetVisible(n)?this.$focusCustomWidget(this.activeRowIndex):this.$focusFoldWidget(this.activeRowIndex)}},e.prototype.$rowIndexToRow=function(e){var t=this.lines.get(e);return t?t.row:null},e.prototype.$rowToRowIndex=function(e){for(var t=0;t<this.lines.getLength();t++){if(this.lines.get(t).row==e)return t}return null},e}();t.GutterKeyboardHandler=r;var o=function(){function e(e,t){this.gutterKeyboardHandler=t,this.domEvent=e}return e.prototype.getKey=function(){return i.keyCodeToString(this.domEvent.keyCode)},e.prototype.getRow=function(){return this.gutterKeyboardHandler.$rowIndexToRow(this.gutterKeyboardHandler.activeRowIndex)},e.prototype.isInAnnotationLane=function(){return"annotation"===this.gutterKeyboardHandler.activeLane},e.prototype.isInFoldLane=function(){return"fold"===this.gutterKeyboardHandler.activeLane},e}();t.GutterKeyboardEvent=o}),ace.define("ace/editor",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config","ace/token_iterator","ace/keyboard/gutter_handler","ace/config","ace/clipboard","ace/lib/keys","ace/lib/event","ace/tooltip"],function(e,t,n){"use strict";var i=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},r=e("./lib/oop"),o=e("./lib/dom"),s=e("./lib/lang"),a=e("./lib/useragent"),l=e("./keyboard/textinput").TextInput,c=e("./mouse/mouse_handler").MouseHandler,u=e("./mouse/fold_handler").FoldHandler,d=e("./keyboard/keybinding").KeyBinding,h=e("./edit_session").EditSession,p=e("./search").Search,f=e("./range").Range,g=e("./lib/event_emitter").EventEmitter,m=e("./commands/command_manager").CommandManager,y=e("./commands/default_commands").commands,w=e("./config"),b=e("./token_iterator").TokenIterator,v=e("./keyboard/gutter_handler").GutterKeyboardHandler,M=e("./config").nls,x=e("./clipboard"),L=e("./lib/keys"),_=e("./lib/event"),N=e("./tooltip").HoverTooltip,S=function(){function e(t,n,i){this.id="editor"+ ++e.$uid,this.session,this.$toDestroy=[];var r=t.getContainerElement();this.container=r,this.renderer=t,this.commands=new m(a.isMac?"mac":"win",y),"object"==typeof document&&(this.textInput=new l(t.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new u(this)),this.keyBinding=new d(this),this.$search=(new p).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(n||i&&i.session||new h("")),w.resetOptions(this),i&&this.setOptions(i),w._signal("editor",this)}return e.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0)},e.prototype.startOperation=function(e){this.session.startOperation(e)},e.prototype.endOperation=function(e){this.session.endOperation(e)},e.prototype.onStartOperation=function(e){this.curOp=this.session.curOp,this.curOp.scrollTop=this.renderer.scrollTop,this.prevOp=this.session.prevOp,e||(this.previousCommand=null)},e.prototype.onEndOperation=function(e){if(this.curOp&&this.session){if(e&&!1===e.returnValue)return void(this.curOp=null);if(this._signal("beforeEndOperation"),!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var i=this.selection.getRange(),r=this.renderer.layerConfig;(i.start.row>=r.lastRow||i.end.row<=r.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==n&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.$lastSel=this.session.selection.toJSON(),this.prevOp=this.curOp,this.curOp=null}},e.prototype.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,n=this.$mergeableCommands,i=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var r=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),i=i&&this.mergeNextCommand&&(!/\s/.test(r)||/\s/.test(t.args)),this.mergeNextCommand=!0}else i=i&&-1!==n.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(i=!1),i?this.session.mergeUndoDeltas=!0:-1!==n.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},e.prototype.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e&&"ace"!=e){this.$keybindingId=e;var n=this;w.loadModule(["keybinding",e],function(i){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(i&&i.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},e.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},e.prototype.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange),this.session.off("startOperation",this.$onStartOperation),this.session.off("endOperation",this.$onEndOperation);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.$onStartOperation=this.onStartOperation.bind(this),this.session.on("startOperation",this.$onStartOperation),this.$onEndOperation=this.onEndOperation.bind(this),this.session.on("endOperation",this.$onEndOperation),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),t&&(t.$editor=null),e&&e._signal("changeEditor",{editor:this}),e&&(e.$editor=this),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()}},e.prototype.getSession=function(){return this.session},e.prototype.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},e.prototype.getValue=function(){return this.session.getValue()},e.prototype.getSelection=function(){return this.selection},e.prototype.resize=function(e){this.renderer.onResize(e)},e.prototype.setTheme=function(e,t){this.renderer.setTheme(e,t)},e.prototype.getTheme=function(){return this.renderer.getTheme()},e.prototype.setStyle=function(e,t){this.renderer.setStyle(e,t)},e.prototype.unsetStyle=function(e){this.renderer.unsetStyle(e)},e.prototype.getFontSize=function(){return this.getOption("fontSize")||o.computedStyle(this.container).fontSize},e.prototype.setFontSize=function(e){this.setOption("fontSize",e)},e.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(t&&!t.destroyed){t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach(function(e){t.removeMarker(e)}),t.$bracketHighlight=null);var n=e.getCursorPosition(),i=e.getKeyboardHandler(),r=i&&i.$getDirectionForHighlight&&i.$getDirectionForHighlight(e),o=t.getMatchingBracketRanges(n,r);if(!o){var s=new b(t,n.row,n.column).getCurrentToken();if(s&&/\b(?:tag-open|tag-name)/.test(s.type)){var a=t.getMatchingTags(n);a&&(o=[a.openTagName.isEmpty()?a.openTag:a.openTagName,a.closeTagName.isEmpty()?a.closeTag:a.closeTagName])}}if(!o&&t.$mode.getMatching&&(o=t.$mode.getMatching(e.session)),o){var l="ace_bracket";Array.isArray(o)?1==o.length&&(l="ace_error_bracket"):o=[o],2==o.length&&(0==f.comparePoints(o[0].end,o[1].start)?o=[f.fromPoints(o[0].start,o[1].end)]:0==f.comparePoints(o[0].start,o[1].end)&&(o=[f.fromPoints(o[1].start,o[0].end)])),t.$bracketHighlight={ranges:o,markerIds:o.map(function(e){return t.addMarker(e,l,"text")})},e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}else e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}},50)}},e.prototype.focus=function(){this.textInput.focus()},e.prototype.isFocused=function(){return this.textInput.isFocused()},e.prototype.blur=function(){this.textInput.blur()},e.prototype.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e))},e.prototype.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e))},e.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},e.prototype.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:1/0;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange()},e.prototype.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},e.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},e.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},e.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},e.prototype.$updateHighlightActiveLine=function(){var e,t=this.getSession();if(this.$highlightActiveLine&&("line"==this.$selectionStyle&&this.selection.isMultiLine()||(e=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(e=!1),!this.renderer.$maxLines||1!==this.session.getLength()||this.renderer.$minLines>1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var n=new f(e.row,e.column,e.row,1/0);n.id=t.addMarker(n,"ace_active-line","screenLine"),t.$highlightLineMarker=n}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},e.prototype.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var n=this.selection.getRange(),i=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",i)}var r=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(r),this._signal("changeSelection")},e.prototype.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var n=t.start.column,i=t.end.column,r=e.getLine(t.start.row),o=r.substring(n,i);if(!(o.length>5e3)&&/[\w\d]/.test(o)){var s=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:o}),a=r.substring(n-1,i+1);if(s.test(a))return s}}},e.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},e.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},e.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},e.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},e.prototype.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},e.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},e.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},e.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},e.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},e.prototype.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;for(var i=this.selection.getAllRanges(),r=0;r<i.length;r++){var o=i[r];r&&i[r-1].start.row==o.start.row||(e+=this.session.getLine(o.start.row)+t)}}var s={text:e};return this._signal("copy",s),x.lineMode=!!n&&s.text,s.text},e.prototype.onCopy=function(){this.commands.exec("copy",this)},e.prototype.onCut=function(){this.commands.exec("cut",this)},e.prototype.onPaste=function(e,t){var n={text:e,event:t};this.commands.exec("paste",this,n)},e.prototype.$handlePaste=function(e){"string"==typeof e&&(e={text:e}),this._signal("paste",e);var t=e.text,n=t===x.lineMode,i=this.session;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)n?i.insert({row:this.selection.lead.row,column:0},t):this.insert(t);else if(n)this.selection.rangeList.ranges.forEach(function(e){i.insert({row:e.start.row,column:0},t)});else{var r=t.split(/\r\n|\r|\n/),o=this.selection.rangeList.ranges,s=!(2!=r.length||r[0]&&r[1]);if(r.length!=o.length||s)return this.commands.exec("insertstring",this,t);for(var a=o.length;a--;){var l=o[a];l.isEmpty()||i.remove(l),i.insert(l.start,r[a])}}},e.prototype.execCommand=function(e,t){return this.commands.exec(e,this,t)},e.prototype.insert=function(e,t){var n=this.session,i=n.getMode(),r=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var o=i.transformAction(n.getState(r.row),"insertion",this,n,e);o&&(e!==o.text&&(this.inVirtualSelectionMode||(this.session.mergeUndoDeltas=!1,this.mergeNextCommand=!1)),e=o.text)}if("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&-1==e.indexOf("\n")){(s=f.fromPoints(r,r)).end.column+=e.length,this.session.remove(s)}}else{var s=this.getSelectionRange();r=this.session.remove(s),this.clearSelection()}if("\n"==e||"\r\n"==e){var a=n.getLine(r.row);if(r.column>a.search(/\S|$/)){var l=a.substr(r.column).search(/\S|$/);n.doc.removeInLine(r.row,r.column,r.column+l)}}this.clearSelection();var c=r.column,u=n.getState(r.row),d=(a=n.getLine(r.row),i.checkOutdent(u,a,e));if(n.insert(r,e),o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new f(r.row,c+o.selection[0],r.row,c+o.selection[1])):this.selection.setSelectionRange(new f(r.row+o.selection[0],o.selection[1],r.row+o.selection[2],o.selection[3]))),this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var h=i.getNextLineIndent(u,a.slice(0,r.column),n.getTabString());n.insert({row:r.row+1,column:0},h)}d&&i.autoOutdent(u,n,r.row)}},e.prototype.autoIndent=function(){for(var e=this.session,t=e.getMode(),n=this.selection.isEmpty()?[new f(0,0,e.doc.getLength()-1,0)]:this.selection.getAllRanges(),i="",r="",o="",s=e.getTabString(),a=0;a<n.length;a++)for(var l=n[a].start.row,c=n[a].end.row,u=l;u<=c;u++){u>0&&(i=e.getState(u-1),r=e.getLine(u-1),o=t.getNextLineIndent(i,r,s));var d=e.getLine(u),h=t.$getIndent(d);if(o!==h){if(h.length>0){var p=new f(u,0,u,h.length);e.remove(p)}o.length>0&&e.insert({row:u,column:0},o)}t.autoOutdent(i,e,u)}},e.prototype.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},e.prototype.applyComposition=function(e,t){var n;(t.extendLeft||t.extendRight)&&((n=this.selection.getRange()).start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),e||n.isEmpty()||this.remove());(!e&&this.selection.isEmpty()||this.insert(e,!0),t.restoreStart||t.restoreEnd)&&((n=this.selection.getRange()).start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n))},e.prototype.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},e.prototype.setOverwrite=function(e){this.session.setOverwrite(e)},e.prototype.getOverwrite=function(){return this.session.getOverwrite()},e.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},e.prototype.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},e.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},e.prototype.setDragDelay=function(e){this.setOption("dragDelay",e)},e.prototype.getDragDelay=function(){return this.getOption("dragDelay")},e.prototype.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},e.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},e.prototype.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},e.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},e.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},e.prototype.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},e.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},e.prototype.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},e.prototype.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},e.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},e.prototype.setHighlightIndentGuides=function(e){this.renderer.setHighlightIndentGuides(e)},e.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},e.prototype.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},e.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},e.prototype.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},e.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},e.prototype.setReadOnly=function(e){this.setOption("readOnly",e)},e.prototype.getReadOnly=function(){return this.getOption("readOnly")},e.prototype.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},e.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},e.prototype.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},e.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},e.prototype.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},e.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,i=n.getState(t.start.row),r=n.getMode().transformAction(i,"deletion",this,n,t);if(0===t.end.column){var o=n.getTextRange(t);if("\n"==o[o.length-1]){var s=n.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}r&&(t=r)}this.session.remove(t),this.clearSelection()},e.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},e.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},e.prototype.setGhostText=function(e,t){this.renderer.setGhostText(e,t)},e.prototype.removeGhostText=function(){this.renderer.removeGhostText()},e.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var n,i,r=this.session.getLine(e.row);t<r.length?(n=r.charAt(t)+r.charAt(t-1),i=new f(e.row,t-1,e.row,t+1)):(n=r.charAt(t-1)+r.charAt(t-2),i=new f(e.row,t-2,e.row,t)),this.session.replace(i,n),this.session.selection.moveToPosition(i.end)}}},e.prototype.toLowerCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toLowerCase()),this.selection.setSelectionRange(e)},e.prototype.toUpperCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toUpperCase()),this.selection.setSelectionRange(e)},e.prototype.indent=function(){var e=this.session,t=this.getSelectionRange();if(!(t.start.row<t.end.row)){if(t.start.column<t.end.column){var n=e.getTextRange(t);if(!/^\s+$/.test(n)){u=this.$getSelectedRows();return void e.indentRows(u.first,u.last,"\t")}}var i=e.getLine(t.start.row),r=t.start,o=e.getTabSize(),a=e.documentToScreenColumn(r.row,r.column);if(this.session.getUseSoftTabs())var l=o-a%o,c=s.stringRepeat(" ",l);else{for(l=a%o;" "==i[t.start.column-1]&&l;)t.start.column--,l--;this.selection.setSelectionRange(t),c="\t"}return this.insert(c)}var u=this.$getSelectedRows();e.indentRows(u.first,u.last,"\t")},e.prototype.blockIndent=function(){var e=this.$getSelectedRows();this.session.indentRows(e.first,e.last,"\t")},e.prototype.blockOutdent=function(){var e=this.session.getSelection();this.session.outdentRows(e.getRange())},e.prototype.sortLines=function(){for(var e=this.$getSelectedRows(),t=this.session,n=[],i=e.first;i<=e.last;i++)n.push(t.getLine(i));n.sort(function(e,t){return e.toLowerCase()<t.toLowerCase()?-1:e.toLowerCase()>t.toLowerCase()?1:0});var r=new f(0,0,0,0);for(i=e.first;i<=e.last;i++){var o=t.getLine(i);r.start.row=i,r.end.row=i,r.end.column=o.length,t.replace(r,n[i-e.first])}},e.prototype.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},e.prototype.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},e.prototype.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;for(var i=this.session.getLine(e);n.lastIndex<t;){var r=n.exec(i);if(r.index<=t&&r.index+r[0].length>=t)return{value:r[0],start:r.index,end:r.index+r[0].length}}return null},e.prototype.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,i=new f(t,n-1,t,n),r=this.session.getTextRange(i);if(!isNaN(parseFloat(r))&&isFinite(r)){var o=this.getNumberAt(t,n);if(o){var s=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,a=o.start+o.value.length-s,l=parseFloat(o.value);l*=Math.pow(10,a),s!==o.end&&n<s?e*=Math.pow(10,o.end-n-1):e*=Math.pow(10,o.end-n),l+=e;var c=(l/=Math.pow(10,a)).toFixed(a),u=new f(t,o.start,t,o.end);this.session.replace(u,c),this.moveCursorTo(t,Math.max(o.start+1,n+c.length-o.value.length))}}else this.toggleWord()},e.prototype.toggleWord=function(){var e=this.selection.getCursor().row,t=this.selection.getCursor().column;this.selection.selectWord();var n=this.getSelectedText(),i=this.selection.getWordRange().start.column,r=n.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g,"$1 ").split(/\s/),o=t-i-1;o<0&&(o=0);var a=0,l=0,c=this;n.match(/[A-Za-z0-9_]+/)&&r.forEach(function(t,r){l=a+t.length,o>=a&&o<=l&&(n=t,c.selection.clearSelection(),c.moveCursorTo(e,a+i),c.selection.selectTo(e,l+i)),a=l});for(var u,d=this.$toggleWordPairs,h=0;h<d.length;h++)for(var p=d[h],f=0;f<=1;f++){var g=+!f,m=n.match(new RegExp("^\\s?_?("+s.escapeRegExp(p[f])+")\\s?$","i"));if(m)n.match(new RegExp("([_]|^|\\s)("+s.escapeRegExp(m[1])+")($|\\s)","g"))&&(u=n.replace(new RegExp(s.escapeRegExp(p[f]),"i"),function(e){var t=p[g];return e.toUpperCase()==e?t=t.toUpperCase():e.charAt(0).toUpperCase()==e.charAt(0)&&(t=t.substr(0,0)+p[g].charAt(0).toUpperCase()+t.substr(1)),t}),this.insert(u),u="")}},e.prototype.findLinkAt=function(e,t){var n,r,o=this.session.getLine(e).split(/((?:https?|ftp):\/\/[\S]+)/),s=t;s<0&&(s=0);var a,l=0,c=0;try{for(var u=i(o),d=u.next();!d.done;d=u.next()){var h=d.value;if(c=l+h.length,s>=l&&s<=c&&h.match(/((?:https?|ftp):\/\/[\S]+)/)){a=h.replace(/[\s:.,'";}\]]+$/,"");break}l=c}}catch(e){n={error:e}}finally{try{d&&!d.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}return a},e.prototype.openLink=function(){var e=this.selection.getCursor(),t=this.findLinkAt(e.row,e.column);return t&&window.open(t,"_blank"),null!=t},e.prototype.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},e.prototype.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),i=e.isBackwards();if(n.isEmpty()){var r=n.start.row;t.duplicateLines(r,r)}else{var o=i?n.start:n.end,s=t.insert(o,t.getTextRange(n));n.start=o,n.end=s,e.setSelectionRange(n,i)}},e.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},e.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},e.prototype.moveText=function(e,t,n){return this.session.moveText(e,t,n)},e.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},e.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},e.prototype.$moveLines=function(e,t){var n,i,r=this.selection;if(!r.inMultiSelectMode||this.inVirtualSelectionMode){var o=r.toOrientedRange();n=this.$getSelectedRows(o),i=this.session.$moveLines(n.first,n.last,t?0:e),t&&-1==e&&(i=0),o.moveBy(i,0),r.fromOrientedRange(o)}else{var s=r.rangeList.ranges;r.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var a=0,l=0,c=s.length,u=0;u<c;u++){var d=u;s[u].moveBy(a,0);for(var h=(n=this.$getSelectedRows(s[u])).first,p=n.last;++u<c;){l&&s[u].moveBy(l,0);var f=this.$getSelectedRows(s[u]);if(t&&f.first!=p)break;if(!t&&f.first>p+1)break;p=f.last}for(u--,a=this.session.$moveLines(h,p,t?0:e),t&&-1==e&&(d=u+1);d<=u;)s[d].moveBy(a,0),d++;t||(a=0),l+=a}r.fromOrientedRange(r.ranges[0]),r.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},e.prototype.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},e.prototype.onCompositionStart=function(e){this.renderer.showComposition(e)},e.prototype.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},e.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},e.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},e.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},e.prototype.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},e.prototype.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},e.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},e.prototype.$moveByPage=function(e,t){var n=this.renderer,i=this.renderer.layerConfig,r=e*Math.floor(i.height/i.lineHeight);!0===t?this.selection.$moveSelection(function(){this.moveCursorBy(r,0)}):!1===t&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection());var o=n.scrollTop;n.scrollBy(0,r*i.lineHeight),null!=t&&n.scrollCursorIntoView(null,.5),n.animateScrolling(o)},e.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},e.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},e.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},e.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},e.prototype.scrollPageDown=function(){this.$moveByPage(1)},e.prototype.scrollPageUp=function(){this.$moveByPage(-1)},e.prototype.scrollToRow=function(e){this.renderer.scrollToRow(e)},e.prototype.scrollToLine=function(e,t,n,i){this.renderer.scrollToLine(e,t,n,i)},e.prototype.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},e.prototype.getCursorPosition=function(){return this.selection.getCursor()},e.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},e.prototype.getSelectionRange=function(){return this.selection.getRange()},e.prototype.selectAll=function(){this.selection.selectAll()},e.prototype.clearSelection=function(){this.selection.clearSelection()},e.prototype.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},e.prototype.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},e.prototype.jumpToMatching=function(e,t){var n=this.getCursorPosition(),i=new b(this.session,n.row,n.column),r=i.getCurrentToken(),o=0;r&&-1!==r.type.indexOf("tag-name")&&(r=i.stepBackward());var s=r||i.stepForward();if(s){var a,l,c=!1,u={},d=n.column-s.start,h={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g)){for(;d<s.value.length&&!c;d++)if(h[s.value[d]])switch(l=h[s.value[d]]+"."+s.type.replace("rparen","lparen"),isNaN(u[l])&&(u[l]=0),s.value[d]){case"(":case"[":case"{":u[l]++;break;case")":case"]":case"}":u[l]--,-1===u[l]&&(a="bracket",c=!0)}}else-1!==s.type.indexOf("tag-name")&&(isNaN(u[s.value])&&(u[s.value]=0),"<"===r.value&&o>1?u[s.value]++:"</"===r.value&&u[s.value]--,-1===u[s.value]&&(a="tag",c=!0));c||(r=s,o++,s=i.stepForward(),d=0)}while(s&&!c);if(a){var p,g;if("bracket"===a)(p=this.session.getBracketRange(n))||(g=(p=new f(i.getCurrentTokenRow(),i.getCurrentTokenColumn()+d-1,i.getCurrentTokenRow(),i.getCurrentTokenColumn()+d-1)).start,(t||g.row===n.row&&Math.abs(g.column-n.column)<2)&&(p=this.session.getBracketRange(g)));else if("tag"===a){if(!s||-1===s.type.indexOf("tag-name"))return;if(0===(p=new f(i.getCurrentTokenRow(),i.getCurrentTokenColumn()-2,i.getCurrentTokenRow(),i.getCurrentTokenColumn()-2)).compare(n.row,n.column)){var m=this.session.getMatchingTags(n);m&&(m.openTag.contains(n.row,n.column)?g=(p=m.closeTag).start:(p=m.openTag,g=m.closeTag.start.row===n.row&&m.closeTag.start.column===n.column?p.end:p.start))}g=g||p.start}(g=p&&p.cursor||g)&&(e?p&&t?this.selection.setRange(p):p&&p.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(g.row,g.column):this.selection.moveTo(g.row,g.column))}}},e.prototype.gotoLine=function(e,t,n){this.selection.clearSelection(),this.session.unfold({row:e-1,column:t||0}),this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(e-1,t||0),this.isRowFullyVisible(e-1)||this.scrollToLine(e-1,!0,n)},e.prototype.navigateTo=function(e,t){this.selection.moveTo(e,t)},e.prototype.navigateUp=function(e){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(-e||-1,0)},e.prototype.navigateDown=function(e){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(e||1,0)},e.prototype.navigateLeft=function(e){if(this.selection.isEmpty())for(e=e||1;e--;)this.selection.moveCursorLeft();else{var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}this.clearSelection()},e.prototype.navigateRight=function(e){if(this.selection.isEmpty())for(e=e||1;e--;)this.selection.moveCursorRight();else{var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}this.clearSelection()},e.prototype.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},e.prototype.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},e.prototype.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},e.prototype.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},e.prototype.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},e.prototype.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},e.prototype.replace=function(e,t){t&&this.$search.set(t);var n=this.$search.find(this.session),i=0;return n?(this.$tryReplace(n,e)&&(i=1),this.selection.setSelectionRange(n),this.renderer.scrollSelectionIntoView(n.start,n.end),i):i},e.prototype.replaceAll=function(e,t){t&&this.$search.set(t);var n=this.$search.findAll(this.session),i=0;if(!n.length)return i;var r=this.getSelectionRange();this.selection.moveTo(0,0);for(var o=n.length-1;o>=0;--o)this.$tryReplace(n[o],e)&&i++;return this.selection.setSelectionRange(r),i},e.prototype.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return null!==(t=this.$search.replace(n,t))?(e.end=this.session.replace(e,t),e):null},e.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},e.prototype.find=function(e,t,n){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&r.mixin(t,e);var i=this.selection.getRange();null==t.needle&&((e=this.session.getTextRange(i)||this.$search.$options.needle)||(i=this.session.getWordRange(i.start.row,i.start.column),e=this.session.getTextRange(i)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:i});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,n),o):(t.backwards?i.start=i.end:i.end=i.start,void this.selection.setRange(i))},e.prototype.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},e.prototype.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},e.prototype.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(n)},e.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.destroy=function(){this.destroyed=!0,this.$toDestroy&&(this.$toDestroy.forEach(function(e){e.destroy()}),this.$toDestroy=[]),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},e.prototype.setAutoScrollEditorIntoView=function(e){if(e){var t,n=this,i=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var r=this.$scrollAnchor;r.style.cssText="position:absolute",this.container.insertBefore(r,this.container.firstChild);var o=this.on("changeSelection",function(){i=!0}),s=this.renderer.on("beforeRender",function(){i&&(t=n.renderer.container.getBoundingClientRect())}),a=this.renderer.on("afterRender",function(){if(i&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,o=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=o.top-s.offset;null!=(i=o.top>=0&&a+t.top<0||!(o.top<s.height&&o.top+t.top+s.lineHeight>window.innerHeight)&&null)&&(r.style.top=a+"px",r.style.left=o.left+"px",r.style.height=s.lineHeight+"px",r.scrollIntoView(i)),i=t=null}});this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",o),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},e.prototype.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,o.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))},e.prototype.prompt=function(e,t,n){var i=this;w.loadModule("ace/ext/prompt",function(r){r.prompt(i,e,t,n)})},Object.defineProperty(e.prototype,"hoverTooltip",{get:function(){return this.$hoverTooltip||(this.$hoverTooltip=new N(this.container))},set:function(e){this.$hoverTooltip&&this.$hoverTooltip.destroy(),this.$hoverTooltip=e},enumerable:!1,configurable:!0}),e}();S.$uid=0,S.prototype.curOp=null,S.prototype.prevOp={},S.prototype.$mergeableCommands=["backspace","del","insertstring"],S.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],r.implement(S.prototype,g),w.defineOptions(S.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){var t=this;if(this.textInput.setReadOnly(e),!this.destroyed){this.$resetCursorStyle(),this.$readOnlyCallback||(this.$readOnlyCallback=function(e){var n=!1;if(e&&"keydown"==e.type){if(e&&e.key&&!e.ctrlKey&&!e.metaKey&&(" "==e.key&&e.preventDefault(),n=1==e.key.length),!n)return}else e&&"exec"!==e.type&&(n=!0);if(n){var i=o.createElement("div");i.textContent=M("editor.tooltip.disable-editing","Editing is disabled"),t.hoverTooltip.isOpen||t.hoverTooltip.showForRange(t,t.getSelectionRange(),i)}else t.hoverTooltip&&t.hoverTooltip.isOpen&&t.hoverTooltip.hide()});var n=this.textInput.getElement();e?(_.addListener(n,"keydown",this.$readOnlyCallback,this),this.commands.on("exec",this.$readOnlyCallback),this.commands.on("commandUnavailable",this.$readOnlyCallback)):(_.removeListener(n,"keydown",this.$readOnlyCallback),this.commands.off("exec",this.$readOnlyCallback),this.commands.off("commandUnavailable",this.$readOnlyCallback))}},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?C.attach(this):C.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?C.attach(this):C.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),o.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(e||this.renderer.placeholderNode)!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"");else{this.renderer.on("afterRender",this.$updatePlaceholder),o.addCssClass(this.container,"ace_hasPlaceholder");var t=o.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(e){var t,n={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(e){e.blur(),e.renderer.scroller.focus()},readOnly:!0},i=function(e){if(e.target==this.renderer.scroller&&e.keyCode===L.enter){e.preventDefault();var t=this.getCursorPosition().row;this.isRowVisible(t)||this.scrollToLine(t,!0,!0),this.focus()}};e?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(a.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",M("editor.scroller.aria-roledescription","editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",M("editor.scroller.aria-label","Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",i.bind(this)),this.commands.addCommand(n),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",M("editor.gutter.aria-roledescription","editor gutter")),this.renderer.$gutter.setAttribute("aria-label",M("editor.gutter.aria-label","Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),t||(t=new v(this)),t.addListener(),this.textInput.setAriaOptions({setLabel:!0})):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",i.bind(this)),this.commands.removeCommand(n),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),t&&t.removeListener())},initialValue:!1},textInputAriaLabel:{set:function(e){this.$textInputAriaLabel=e},initialValue:""},enableMobileMenu:{set:function(e){this.$enableMobileMenu=e},initialValue:!0},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var C={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"·":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=S}),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var i=e("../lib/dom"),r=function(){function e(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=2*this.canvasHeight+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return e.prototype.moveContainer=function(e){i.translate(this.element,0,-e.firstRowScreen*e.lineHeight%this.canvasHeight-e.offset*this.$offsetCoefficient)},e.prototype.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},e.prototype.computeLineTop=function(e,t,n){var i=t.firstRowScreen*t.lineHeight,r=Math.floor(i/this.canvasHeight);return n.documentToScreenRow(e,0)*t.lineHeight-r*this.canvasHeight},e.prototype.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLineCount(e)},e.prototype.getLength=function(){return this.cells.length},e.prototype.get=function(e){return this.cells[e]},e.prototype.shift=function(){this.$cacheCell(this.cells.shift())},e.prototype.pop=function(){this.$cacheCell(this.cells.pop())},e.prototype.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);for(var t=i.createFragment(this.element),n=0;n<e.length;n++)t.appendChild(e[n].element);this.element.appendChild(t)}else this.cells.push(e),this.element.appendChild(e.element)},e.prototype.unshift=function(e){if(Array.isArray(e)){this.cells.unshift.apply(this.cells,e);for(var t=i.createFragment(this.element),n=0;n<e.length;n++)t.appendChild(e[n].element);this.element.firstChild?this.element.insertBefore(t,this.element.firstChild):this.element.appendChild(t)}else this.cells.unshift(e),this.element.insertAdjacentElement("afterbegin",e.element)},e.prototype.last=function(){return this.cells.length?this.cells[this.cells.length-1]:null},e.prototype.$cacheCell=function(e){e&&(e.element.remove(),this.cellCache.push(e))},e.prototype.createCell=function(e,t,n,r){var o=this.cellCache.pop();if(!o){var s=i.createElement("div");r&&r(s),this.element.appendChild(s),o={element:s,text:"",row:e}}return o.row=e,o},e}();t.Lines=r}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/layer/lines","ace/config"],function(e,t,n){"use strict";var i=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/lang"),s=e("../lib/event_emitter").EventEmitter,a=e("./lines").Lines,l=e("../config").nls,c=function(){function e(e){this.$showCursorMarker=null,this.element=i.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$lines=new a(this.element),this.$lines.$offsetCoefficient=1}return e.prototype.setSession=function(e){this.session&&this.session.off("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},e.prototype.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},e.prototype.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},e.prototype.setAnnotations=function(e){this.$annotations=[];for(var t=0;t<e.length;t++){var n=e[t],i=n.row,r=this.$annotations[i];r||(r=this.$annotations[i]={text:[],type:[],displayText:[]});var s=n.text,a=n.text,l=n.type;s=s?o.escapeHTML(s):n.html||"",a=a||(n.html||""),-1===r.text.indexOf(s)&&(r.text.push(s),r.type.push(l),r.displayText.push(a));var c=n.className;c?r.className=c:"error"===l?r.className=" ace_error":"security"!==l||/\bace_error\b/.test(r.className)?"warning"!==l||/\bace_(error|security)\b/.test(r.className)?"info"!==l||r.className?"hint"!==l||r.className||(r.className=" ace_hint"):r.className=" ace_info":r.className=" ace_warning":r.className=" ace_security"}},e.prototype.$updateAnnotations=function(e){if(this.$annotations.length){var t=e.start.row,n=e.end.row-t;if(0===n);else if("remove"==e.action)this.$annotations.splice(t,n+1,null);else{var i=new Array(n+1);i.unshift(t,1),this.$annotations.splice.apply(this.$annotations,i)}}},e.prototype.update=function(e){this.config=e;var t=this.session,n=e.firstRow,i=Math.min(e.lastRow+e.gutterOffset,t.getLength()-1);this.oldLastRow=i,this.config=e,this.$lines.moveContainer(e),this.$updateCursorRow();for(var r=t.getNextFoldLine(n),o=r?r.start.row:1/0,s=null,a=-1,l=n;;){if(l>o&&(l=r.end.row+1,o=(r=t.getNextFoldLine(l,r))?r.start.row:1/0),l>i){for(;this.$lines.getLength()>a+1;)this.$lines.pop();break}(s=this.$lines.get(++a))?s.row=l:(s=this.$lines.createCell(l,e,this.session,u),this.$lines.push(s)),this.$renderCell(s,e,r,l),l++}this._signal("afterRender"),this.$updateGutterWidth(e),this.$showCursorMarker&&this.$highlightGutterLine&&this.$updateCursorMarker()},e.prototype.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,i=t.$firstLineNumber,r=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||t.$useWrapMode)&&(r=t.getLength()+i-1);var o=n?n.getWidth(t,r,e):r.toString().length*e.characterWidth,s=this.$padding||this.$computePadding();(o+=s.left+s.right)===this.gutterWidth||isNaN(o)||(this.gutterWidth=o,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",o))},e.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var e=this.session.selection.getCursor();this.$cursorRow!==e.row&&(this.$cursorRow=e.row)}},e.prototype.updateLineHighlight=function(){if(this.$showCursorMarker&&this.$updateCursorMarker(),this.$highlightGutterLine){var e=this.session.selection.cursor.row;if(this.$cursorRow=e,!this.$cursorCell||this.$cursorCell.row!=e){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n<t.length;n++){var i=t[n];if(i.row>=this.$cursorRow){if(i.row>this.$cursorRow){var r=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&r&&r.start.row==t[n-1].row))break;i=t[n-1]}i.element.className="ace_gutter-active-line "+i.element.className,this.$cursorCell=i;break}}}}},e.prototype.$updateCursorMarker=function(){if(this.session){var e=this.session;this.$highlightElement||(this.$highlightElement=i.createElement("div"),this.$highlightElement.className="ace_gutter-cursor",this.$highlightElement.style.pointerEvents="none",this.element.appendChild(this.$highlightElement));var t=e.selection.cursor,n=this.config,r=this.$lines,o=n.firstRowScreen*n.lineHeight,s=Math.floor(o/r.canvasHeight),a=e.documentToScreenRow(t)*n.lineHeight-s*r.canvasHeight;i.setStyle(this.$highlightElement.style,"height",n.lineHeight+"px"),i.setStyle(this.$highlightElement.style,"top",a+"px")}},e.prototype.scrollLines=function(e){var t=this.config;if(this.config=e,this.$updateCursorRow(),this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),i=this.oldLastRow;if(this.oldLastRow=n,!t||i<e.firstRow)return this.update(e);if(n<t.firstRow)return this.update(e);if(t.firstRow<e.firstRow)for(var r=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);r>0;r--)this.$lines.shift();if(i>n)for(r=this.session.getFoldedRowCount(n+1,i);r>0;r--)this.$lines.pop();e.firstRow<t.firstRow&&this.$lines.unshift(this.$renderLines(e,e.firstRow,t.firstRow-1)),n>i&&this.$lines.push(this.$renderLines(e,i+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$renderLines=function(e,t,n){for(var i=[],r=t,o=this.session.getNextFoldLine(r),s=o?o.start.row:1/0;r>s&&(r=o.end.row+1,s=(o=this.session.getNextFoldLine(r,o))?o.start.row:1/0),!(r>n);){var a=this.$lines.createCell(r,e,this.session,u);this.$renderCell(a,e,o,r),i.push(a),r++}return i},e.prototype.$renderCell=function(e,t,n,r){var o=e.element,s=this.session,a=o.childNodes[0],c=o.childNodes[1],u=o.childNodes[2],d=o.childNodes[3],h=u.firstChild,p=s.$firstLineNumber,f=s.$breakpoints,g=s.$decorations,m=s.gutterRenderer||this.$renderer,y=this.$showFoldWidgets&&s.foldWidgets,w=n?n.start.row:Number.MAX_VALUE,b=t.lineHeight+"px",v=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",M=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",x=(m?m.getText(s,r):r+p).toString();if(this.$highlightGutterLine&&(r==this.$cursorRow||n&&r<this.$cursorRow&&r>=w&&this.$cursorRow<=n.end.row)&&(v+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),f[r]&&(v+=f[r]),g[r]&&(v+=g[r]),this.$annotations[r]&&r!==w&&(v+=this.$annotations[r].className),y){var L=y[r];null==L&&(L=y[r]=s.getFoldWidget(r))}if(L){var _="ace_fold-widget ace_"+L,N="start"==L&&r==w&&r<n.end.row;if(N){_+=" ace_closed";for(var S="",C=!1,T=r+1;T<=n.end.row;T++)if(this.$annotations[T]){if(" ace_error"===this.$annotations[T].className){C=!0,S=" ace_error_fold";break}" ace_security"===this.$annotations[T].className?(C=!0,S=" ace_security_fold"):" ace_warning"===this.$annotations[T].className&&" ace_security_fold"!==S&&(C=!0,S=" ace_warning_fold")}v+=S}else _+=" ace_open";c.className!=_&&(c.className=_),i.setStyle(c.style,"height",b),i.setStyle(c.style,"display","inline-block"),c.setAttribute("role","button"),c.setAttribute("tabindex","-1");var k=s.getFoldWidgetRange(r);k?c.setAttribute("aria-label",l("gutter.code-folding.range.aria-label","Toggle code folding, rows $0 through $1",[k.start.row+1,k.end.row+1])):n?c.setAttribute("aria-label",l("gutter.code-folding.closed.aria-label","Toggle code folding, rows $0 through $1",[n.start.row+1,n.end.row+1])):c.setAttribute("aria-label",l("gutter.code-folding.open.aria-label","Toggle code folding, row $0",[r+1])),N?(c.setAttribute("aria-expanded","false"),c.setAttribute("title",l("gutter.code-folding.closed.title","Unfold code"))):(c.setAttribute("aria-expanded","true"),c.setAttribute("title",l("gutter.code-folding.open.title","Fold code")))}else c&&(i.setStyle(c.style,"display","none"),c.setAttribute("tabindex","0"),c.removeAttribute("role"),c.removeAttribute("aria-label"));var A=this.session.$gutterCustomWidgets[r];if(A?this.$addCustomWidget(r,A,e):d&&this.$removeCustomWidget(r,e),C&&this.$showFoldedAnnotations){switch(u.className="ace_gutter_annotation",h.className=M,h.className+=S,i.setStyle(h.style,"height",b),i.setStyle(u.style,"display","block"),i.setStyle(u.style,"height",b),S){case" ace_error_fold":D=l("gutter.annotation.aria-label.error","Error, read annotations row $0",[x]);break;case" ace_security_fold":D=l("gutter.annotation.aria-label.security","Security finding, read annotations row $0",[x]);break;case" ace_warning_fold":D=l("gutter.annotation.aria-label.warning","Warning, read annotations row $0",[x])}u.setAttribute("aria-label",D),u.setAttribute("tabindex","-1"),u.setAttribute("role","button")}else if(this.$annotations[r]){var D;switch(u.className="ace_gutter_annotation",h.className=M,this.$useSvgGutterIcons?h.className+=this.$annotations[r].className:o.classList.add(this.$annotations[r].className.replace(" ","")),i.setStyle(h.style,"height",b),i.setStyle(u.style,"display","block"),i.setStyle(u.style,"height",b),this.$annotations[r].className){case" ace_error":D=l("gutter.annotation.aria-label.error","Error, read annotations row $0",[x]);break;case" ace_security":D=l("gutter.annotation.aria-label.security","Security finding, read annotations row $0",[x]);break;case" ace_warning":D=l("gutter.annotation.aria-label.warning","Warning, read annotations row $0",[x]);break;case" ace_info":D=l("gutter.annotation.aria-label.info","Info, read annotations row $0",[x]);break;case" ace_hint":D=l("gutter.annotation.aria-label.hint","Suggestion, read annotations row $0",[x])}u.setAttribute("aria-label",D),u.setAttribute("tabindex","-1"),u.setAttribute("role","button")}else i.setStyle(u.style,"display","none"),u.removeAttribute("aria-label"),u.removeAttribute("role"),u.setAttribute("tabindex","0");return x!==a.data&&(a.data=x),o.className!=v&&(o.className=v),i.setStyle(e.element.style,"height",this.$lines.computeLineHeight(r,t,s)+"px"),i.setStyle(e.element.style,"top",this.$lines.computeLineTop(r,t,s)+"px"),e.text=x,"none"!==u.style.display||"none"!==c.style.display||A?e.element.setAttribute("aria-hidden",!1):e.element.setAttribute("aria-hidden",!0),e},e.prototype.setHighlightGutterLine=function(e){this.$highlightGutterLine=e,!e&&this.$highlightElement&&(this.$highlightElement.remove(),this.$highlightElement=null)},e.prototype.setShowLineNumbers=function(e){this.$renderer=!e&&{getWidth:function(){return 0},getText:function(){return""}}},e.prototype.getShowLineNumbers=function(){return this.$showLineNumbers},e.prototype.setShowFoldWidgets=function(e){e?i.addCssClass(this.element,"ace_folding-enabled"):i.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=e,this.$padding=null},e.prototype.getShowFoldWidgets=function(){return this.$showFoldWidgets},e.prototype.$hideFoldWidget=function(e,t){var n=t||this.$getGutterCell(e);if(n&&n.element){var r=n.element.childNodes[1];r&&i.setStyle(r.style,"display","none")}},e.prototype.$showFoldWidget=function(e,t){var n=t||this.$getGutterCell(e);if(n&&n.element){var r=n.element.childNodes[1];r&&this.session.foldWidgets&&this.session.foldWidgets[n.row]&&i.setStyle(r.style,"display","inline-block")}},e.prototype.$getGutterCell=function(e){var t=this.$lines.cells,n=0,i=t.length-1;if(!(e<t[0].row||e>t[i].row)){for(;n<=i;){var r=Math.floor((n+i)/2),o=t[r];if(o.row>e)i=r-1;else{if(!(o.row<e))return o;n=r+1}}return o}},e.prototype.$addCustomWidget=function(e,t,n){var r=t.className,o=t.label,s=t.title,a=t.callbacks;this.session.$gutterCustomWidgets[e]={className:r,label:o,title:s,callbacks:a},this.$hideFoldWidget(e,n);var l=n||this.$getGutterCell(e);if(l&&l.element){var c=l.element.querySelector(".ace_custom-widget");c&&c.remove(),(c=i.createElement("span")).className="ace_custom-widget ".concat(r),c.setAttribute("tabindex","-1"),c.setAttribute("role","button"),c.setAttribute("aria-label",o),c.setAttribute("title",s),i.setStyle(c.style,"display","inline-block"),i.setStyle(c.style,"height","inherit"),a&&a.onClick&&c.addEventListener("click",function(t){a.onClick(t,e),t.stopPropagation()}),l.element.appendChild(c)}},e.prototype.$removeCustomWidget=function(e,t){delete this.session.$gutterCustomWidgets[e],this.$showFoldWidget(e,t);var n=t||this.$getGutterCell(e);if(n&&n.element){var i=n.element.querySelector(".ace_custom-widget");i&&n.element.removeChild(i)}},e.prototype.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var e=i.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=(parseInt(e.borderLeftWidth)||0)+(parseInt(e.paddingLeft)||0)+1,this.$padding.right=(parseInt(e.borderRightWidth)||0)+(parseInt(e.paddingRight)||0),this.$padding},e.prototype.getRegion=function(e){var t=this.$padding||this.$computePadding(),n=this.element.getBoundingClientRect();return e.x<t.left+n.left?"markers":this.$showFoldWidgets&&e.x>n.right-t.right?"foldWidgets":void 0},e}();function u(e){var t=document.createTextNode("");e.appendChild(t);var n=i.createElement("span");e.appendChild(n);var r=i.createElement("span");e.appendChild(r);var o=i.createElement("span");return r.appendChild(o),e}c.prototype.$fixedWidth=!1,c.prototype.$highlightGutterLine=!0,c.prototype.$renderer=void 0,c.prototype.$showLineNumbers=!0,c.prototype.$showFoldWidgets=!0,r.implement(c.prototype,s),t.Gutter=c}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){"use strict";var i=e("../range").Range,r=e("../lib/dom"),o=function(){function e(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setMarkers=function(e){this.markers=e},e.prototype.elt=function(e,t){var n=-1!=this.i&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},e.prototype.update=function(e){if(e){var t;for(var n in this.config=e,this.i=0,this.markers){var i=this.markers[n];if(i.range){var r=i.range.clipRows(e.firstRow,e.lastRow);if(!r.isEmpty())if(r=r.toScreenRange(this.session),i.renderer){var o=this.$getTop(r.start.row,e),s=this.$padding+r.start.column*e.characterWidth;i.renderer(t,r,s,o,e)}else"fullLine"==i.type?this.drawFullLineMarker(t,r,i.clazz,e):"screenLine"==i.type?this.drawScreenLineMarker(t,r,i.clazz,e):r.isMultiLine()?"text"==i.type?this.drawTextMarker(t,r,i.clazz,e):this.drawMultiLineMarker(t,r,i.clazz,e):this.drawSingleLineMarker(t,r,i.clazz+" ace_start ace_br15",e)}else i.update(t,this,this.session,e)}if(-1!=this.i)for(;this.i<this.element.childElementCount;)this.element.removeChild(this.element.lastChild)}},e.prototype.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},e.prototype.drawTextMarker=function(e,t,n,r,o){for(var a=this.session,l=t.start.row,c=t.end.row,u=l,d=0,h=0,p=a.getScreenLastRowColumn(u),f=new i(u,t.start.column,u,h);u<=c;u++)f.start.row=f.end.row=u,f.start.column=u==l?t.start.column:a.getRowWrapIndent(u),f.end.column=p,d=h,h=p,p=u+1<c?a.getScreenLastRowColumn(u+1):u==c?0:t.end.column,this.drawSingleLineMarker(e,f,n+(u==l?" ace_start":"")+" ace_br"+s(u==l||u==l+1&&t.start.column,d<h,h>p,u==c),r,u==c?0:1,o)},e.prototype.drawMultiLineMarker=function(e,t,n,i,r){var o=this.$padding,s=i.lineHeight,a=this.$getTop(t.start.row,i),l=o+t.start.column*i.characterWidth;(r=r||"",this.session.$bidiHandler.isBidiRow(t.start.row))?((c=t.clone()).end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,n+" ace_br1 ace_start",i,null,r)):this.elt(n+" ace_br1 ace_start","height:"+s+"px;right:"+o+"px;top:"+a+"px;left:"+l+"px;"+(r||""));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var c;(c=t.clone()).start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,n+" ace_br12",i,null,r)}else{a=this.$getTop(t.end.row,i);var u=t.end.column*i.characterWidth;this.elt(n+" ace_br12","height:"+s+"px;width:"+u+"px;top:"+a+"px;left:"+o+"px;"+(r||""))}if(!((s=(t.end.row-t.start.row-1)*i.lineHeight)<=0)){a=this.$getTop(t.start.row+1,i);var d=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(d?" ace_br"+d:""),"height:"+s+"px;right:"+o+"px;top:"+a+"px;left:"+o+"px;"+(r||""))}},e.prototype.drawSingleLineMarker=function(e,t,n,i,r,o){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,i,r,o);var s=i.lineHeight,a=(t.end.column+(r||0)-t.start.column)*i.characterWidth,l=this.$getTop(t.start.row,i),c=this.$padding+t.start.column*i.characterWidth;this.elt(n,"height:"+s+"px;width:"+a+"px;top:"+l+"px;left:"+c+"px;"+(o||""))},e.prototype.drawBidiSingleLineMarker=function(e,t,n,i,r,o){var s=i.lineHeight,a=this.$getTop(t.start.row,i),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach(function(e){this.elt(n,"height:"+s+"px;width:"+(e.width+(r||0))+"px;top:"+a+"px;left:"+(l+e.left)+"px;"+(o||""))},this)},e.prototype.drawFullLineMarker=function(e,t,n,i,r){var o=this.$getTop(t.start.row,i),s=i.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,i)-o),this.elt(n,"height:"+s+"px;top:"+o+"px;left:0;right:0;"+(r||""))},e.prototype.drawScreenLineMarker=function(e,t,n,i,r){var o=this.$getTop(t.start.row,i),s=i.lineHeight;this.elt(n,"height:"+s+"px;top:"+o+"px;left:0;right:0;"+(r||""))},e}();function s(e,t,n,i){return(e?1:0)|(t?2:0)|(n?4:0)|(i?8:0)}o.prototype.$padding=0,t.Marker=o}),ace.define("ace/layer/text_util",["require","exports","module"],function(e,t,n){var i=new Set(["text","rparen","lparen"]);t.isTextToken=function(e){return i.has(e)}}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],function(e,t,n){"use strict";var i=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=e("./lines").Lines,a=e("../lib/event_emitter").EventEmitter,l=e("../config").nls,c=e("./text_util").isTextToken,u=function(){function e(e){this.dom=r,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new s(this.element)}return e.prototype.$updateEolChar=function(){var e=this.session.doc,t="\n"==e.getNewLineCharacter()&&"windows"!=e.getNewLineMode()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=t)return this.EOL_CHAR=t,!0},e.prototype.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},e.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},e.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},e.prototype.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},e.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},e.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},e.prototype.setSession=function(e){this.session=e,e&&this.$computeTabString()},e.prototype.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,"string"==typeof e?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},e.prototype.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},e.prototype.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides!==e&&(this.$highlightIndentGuides=e,e)},e.prototype.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],n=1;n<e+1;n++){if(this.showTabs)(i=this.dom.createElement("span")).className="ace_invisible ace_invisible_tab",i.textContent=o.stringRepeat(this.TAB_CHAR,n),t.push(i);else t.push(this.dom.createTextNode(o.stringRepeat(" ",n),this.element))}if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var i,r="ace_indent-guide",s=this.showSpaces?" ace_invisible ace_invisible_space":"",a=this.showSpaces?o.stringRepeat(this.SPACE_CHAR,this.tabSize):o.stringRepeat(" ",this.tabSize),l=this.showTabs?" ace_invisible ace_invisible_tab":"",c=this.showTabs?o.stringRepeat(this.TAB_CHAR,this.tabSize):a;(i=this.dom.createElement("span")).className=r+s,i.textContent=a,this.$tabStrings[" "]=i,(i=this.dom.createElement("span")).className=r+l,i.textContent=c,this.$tabStrings["\t"]=i}},e.prototype.updateLines=function(e,t,n){if(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)return this.update(e);this.config=e;for(var i=Math.max(t,e.firstRow),r=Math.min(n,e.lastRow),o=this.element.childNodes,s=0,a=e.firstRow;a<i;a++){if(l=this.session.getFoldLine(a)){if(l.containsRow(i)){i=l.start.row;break}a=l.end.row}s++}for(var l,c=!1,u=(a=i,(l=this.session.getNextFoldLine(a))?l.start.row:1/0);a>u&&(a=l.end.row+1,u=(l=this.session.getNextFoldLine(a,l))?l.start.row:1/0),!(a>r);){var d=o[s++];if(d){this.dom.removeChildren(d),this.$renderLine(d,a,a==u&&l),c&&(d.style.top=this.$lines.computeLineTop(a,e,this.session)+"px");var h=e.lineHeight*this.session.getRowLength(a)+"px";d.style.height!=h&&(c=!0,d.style.height=h)}a++}if(c)for(;s<this.$lines.cells.length;){var p=this.$lines.cells[s++];p.element.style.top=this.$lines.computeLineTop(p.row,e,this.session)+"px"}},e.prototype.scrollLines=function(e){var t=this.config;if(this.config=e,this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=e.lastRow,i=t?t.lastRow:-1;if(!t||i<e.firstRow)return this.update(e);if(n<t.firstRow)return this.update(e);if(!t||t.lastRow<e.firstRow)return this.update(e);if(e.lastRow<t.firstRow)return this.update(e);if(t.firstRow<e.firstRow)for(var r=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);r>0;r--)this.$lines.shift();if(t.lastRow>e.lastRow)for(r=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);r>0;r--)this.$lines.pop();e.firstRow<t.firstRow&&this.$lines.unshift(this.$renderLinesFragment(e,e.firstRow,t.firstRow-1)),e.lastRow>t.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},e.prototype.$renderLinesFragment=function(e,t,n){for(var i=[],o=t,s=this.session.getNextFoldLine(o),a=s?s.start.row:1/0;o>a&&(o=s.end.row+1,a=(s=this.session.getNextFoldLine(o,s))?s.start.row:1/0),!(o>n);){var l=this.$lines.createCell(o,e,this.session),c=l.element;this.dom.removeChildren(c),r.setStyle(c.style,"height",this.$lines.computeLineHeight(o,e,this.session)+"px"),r.setStyle(c.style,"top",this.$lines.computeLineTop(o,e,this.session)+"px"),this.$renderLine(c,o,o==a&&s),this.$useLineGroups()?c.className="ace_line_group":c.className="ace_line",i.push(l),o++}return i},e.prototype.update=function(e){this.$lines.moveContainer(e),this.config=e;for(var t=e.firstRow,n=e.lastRow,i=this.$lines;i.getLength();)i.pop();i.push(this.$renderLinesFragment(e,t,n))},e.prototype.$renderToken=function(e,t,n,i){for(var r,s=this,a=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069\u2060\u2061\u2062\u2063\u2064\u206A\u206B\u206B\u206C\u206D\u206E\u206F]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),d=0;r=a.exec(i);){var h=r[1],p=r[2],f=r[3],g=r[4],m=r[5];if(s.showSpaces||!p){var y=d!=r.index?i.slice(d,r.index):"";if(d=r.index+r[0].length,y&&u.appendChild(this.dom.createTextNode(y,this.element)),h){var w=s.session.getScreenTabSize(t+r.index),b=s.$tabStrings[w].cloneNode(!0);b.charCount=1,u.appendChild(b),t+=w-1}else if(p){if(s.showSpaces)(M=this.dom.createElement("span")).className="ace_invisible ace_invisible_space",M.textContent=o.stringRepeat(s.SPACE_CHAR,p.length),u.appendChild(M);else u.appendChild(this.dom.createTextNode(p,this.element))}else if(f){(M=this.dom.createElement("span")).className="ace_invisible ace_invisible_space ace_invalid",M.textContent=o.stringRepeat(s.SPACE_CHAR,f.length),u.appendChild(M)}else if(g){t+=1,(M=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",M.className=s.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",M.textContent=s.showSpaces?s.SPACE_CHAR:g,u.appendChild(M)}else if(m){t+=1,(M=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",M.className="ace_cjk",M.textContent=m,u.appendChild(M)}}}if(u.appendChild(this.dom.createTextNode(d?i.slice(d):i,this.element)),c(n.type))e.appendChild(u);else{var v="ace_"+n.type.replace(/\./g," ace_"),M=this.dom.createElement("span");"fold"==n.type&&(M.style.width=n.value.length*this.config.characterWidth+"px",M.setAttribute("title",l("inline-fold.closed.title","Unfold code"))),M.className=v,M.appendChild(u),e.appendChild(M)}return t+i.length},e.prototype.renderIndentGuide=function(e,t,n){var i=t.search(this.$indentGuideRe);if(i<=0||i>=n)return t;if(" "==t[0]){for(var r=(i-=i%this.tabSize)/this.tabSize,o=0;o<r;o++)e.appendChild(this.$tabStrings[" "].cloneNode(!0));return this.$highlightIndentGuide(),t.substr(i)}if("\t"==t[0]){for(o=0;o<i;o++){var s=this.$tabStrings["\t"].cloneNode(!0);s.charCount=1,e.appendChild(s)}return this.$highlightIndentGuide(),t.substr(i)}return this.$highlightIndentGuide(),t},e.prototype.$highlightIndentGuide=function(){if(this.$highlightIndentGuides&&this.displayIndentGuides){this.$highlightIndentGuideMarker={indentLevel:void 0,start:void 0,end:void 0,dir:void 0};var e=this.session.doc.$lines;if(e){var t=this.session.selection.getCursor(),n=/^\s*/.exec(this.session.doc.getLine(t.row))[0].length,i=Math.floor(n/this.tabSize);if(this.$highlightIndentGuideMarker={indentLevel:i,start:t.row},this.session.$bracketHighlight)for(var r=this.session.$bracketHighlight.ranges,o=0;o<r.length;o++)if(t.row!==r[o].start.row){this.$highlightIndentGuideMarker.end=r[o].start.row+1,t.row>r[o].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}if(!this.$highlightIndentGuideMarker.end&&""!==e[t.row]&&t.column===e[t.row].length){this.$highlightIndentGuideMarker.dir=1;for(o=t.row+1;o<e.length;o++){var s=e[o],a=/^\s*/.exec(s)[0].length;if(""!==s&&(this.$highlightIndentGuideMarker.end=o,a<=n))break}}this.$renderHighlightIndentGuide()}}},e.prototype.$clearActiveIndentGuide=function(){for(var e=this.element.querySelectorAll(".ace_indent-guide-active"),t=0;t<e.length;t++)e[t].classList.remove("ace_indent-guide-active")},e.prototype.$setIndentGuideActive=function(e,t){if(""!==this.session.doc.getLine(e.row)){var n=e.element;if(e.element.classList&&e.element.classList.contains("ace_line_group")){if(!(e.element.childNodes.length>0))return;n=e.element.childNodes[0]}var i=n.childNodes;if(i){var r=i[t-1];r&&r.classList&&r.classList.contains("ace_indent-guide")&&r.classList.add("ace_indent-guide-active")}}},e.prototype.$renderHighlightIndentGuide=function(){if(this.$lines){var e=this.$lines.cells;this.$clearActiveIndentGuide();var t=this.$highlightIndentGuideMarker.indentLevel;if(0!==t)if(1===this.$highlightIndentGuideMarker.dir)for(var n=0;n<e.length;n++){var i=e[n];if(this.$highlightIndentGuideMarker.end&&i.row>=this.$highlightIndentGuideMarker.start+1){if(i.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(i,t)}}else for(n=e.length-1;n>=0;n--){i=e[n];if(this.$highlightIndentGuideMarker.end&&i.row<this.$highlightIndentGuideMarker.start){if(i.row<this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(i,t)}}}},e.prototype.$createLineElement=function(e){var t=this.dom.createElement("div");return t.className="ace_line",t.style.height=this.config.lineHeight+"px",t},e.prototype.$renderWrappedLine=function(e,t,n){var i=0,r=0,s=n[0],a=0,l=this.$createLineElement();e.appendChild(l);for(var c=0;c<t.length;c++){var u=t[c],d=u.value;if(0==c&&this.displayIndentGuides){if(i=d.length,!(d=this.renderIndentGuide(l,d,s)))continue;i-=d.length}if(i+d.length<s)a=this.$renderToken(l,a,u,d),i+=d.length;else{for(;i+d.length>=s;){a=this.$renderToken(l,a,u,d.substring(0,s-i)),d=d.substring(s-i),i=s,l=this.$createLineElement(),e.appendChild(l);var h=this.dom.createTextNode(o.stringRepeat(" ",n.indent),this.element);h.charCount=0,l.appendChild(h),a=0,s=n[++r]||Number.MAX_VALUE}0!=d.length&&(i+=d.length,a=this.$renderToken(l,a,u,d))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(l,a,null,"",!0)},e.prototype.$renderSimpleLine=function(e,t){for(var n=0,i=0;i<t.length;i++){var r=t[i],o=r.value;if(0!=i||!this.displayIndentGuides||(o=this.renderIndentGuide(e,o))){if(n+o.length>this.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,r,o);n=this.$renderToken(e,n,r,o)}}},e.prototype.$renderOverflowMessage=function(e,t,n,i,r){n&&this.$renderToken(e,t,n,i.slice(0,this.MAX_LINE_LENGTH-t));var o=this.dom.createElement("span");o.className="ace_inline_button ace_keyword ace_toggle_wrap",o.textContent=r?"<hide>":"<click to see more...>",e.appendChild(o)},e.prototype.$renderLine=function(e,t,n){if(n||0==n||(n=this.session.getFoldLine(t)),n)var i=this.$getFoldLineTokens(t,n);else i=this.session.getTokens(t);var r=e;if(i.length){var o=this.session.getRowSplitData(t);if(o&&o.length){this.$renderWrappedLine(e,i,o);r=e.lastChild}else{r=e;this.$useLineGroups()&&(r=this.$createLineElement(),e.appendChild(r)),this.$renderSimpleLine(r,i)}}else this.$useLineGroups()&&(r=this.$createLineElement(),e.appendChild(r));if(this.showEOL&&r){n&&(t=n.end.row);var s=this.dom.createElement("span");s.className="ace_invisible ace_invisible_eol",s.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,r.appendChild(s)}},e.prototype.$getFoldLineTokens=function(e,t){var n=this.session,i=[];var r=n.getTokens(e);return t.walk(function(e,t,o,s,a){null!=e?i.push({type:"fold",value:e}):(a&&(r=n.getTokens(t)),r.length&&function(e,t,n){for(var r=0,o=0;o+e[r].value.length<t;)if(o+=e[r].value.length,++r==e.length)return;for(o!=t&&((s=e[r].value.substring(t-o)).length>n-t&&(s=s.substring(0,n-t)),i.push({type:e[r].type,value:s}),o=t+s.length,r+=1);o<n&&r<e.length;){var s;(s=e[r].value).length+o>n?i.push({type:e[r].type,value:s.substring(0,n-o)}):i.push(e[r]),o+=s.length,r+=1}}(r,s,o))},t.end.row,this.session.getLine(t.end.row).length),i},e.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},e}();u.prototype.EOF_CHAR="¶",u.prototype.EOL_CHAR_LF="¬",u.prototype.EOL_CHAR_CRLF="¤",u.prototype.EOL_CHAR=u.prototype.EOL_CHAR_LF,u.prototype.TAB_CHAR="—",u.prototype.SPACE_CHAR="·",u.prototype.$padding=0,u.prototype.MAX_LINE_LENGTH=1e4,u.prototype.showInvisibles=!1,u.prototype.showSpaces=!1,u.prototype.showTabs=!1,u.prototype.showEOL=!1,u.prototype.displayIndentGuides=!0,u.prototype.$highlightIndentGuides=!0,u.prototype.$tabStrings=[],u.prototype.destroy={},u.prototype.onChangeTabSize=u.prototype.$computeTabString,i.implement(u.prototype,a),t.Text=u}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var i=e("../lib/dom"),r=function(){function e(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),i.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return e.prototype.$updateOpacity=function(e){for(var t=this.cursors,n=t.length;n--;)i.setStyle(t[n].style,"opacity",e?"":"0")},e.prototype.$startCssAnimation=function(){for(var e=this.cursors,t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&i.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},e.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,i.removeCssClass(this.element,"ace_animate-blinking")},e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},e.prototype.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},e.prototype.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,i.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},e.prototype.addCursor=function(){var e=i.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},e.prototype.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},e.prototype.hideCursor=function(){this.isVisible=!1,i.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.showCursor=function(){this.isVisible=!0,i.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,i.removeCssClass(this.element,"ace_smooth-blinking")),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible)if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&i.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),i.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}else this.$stopCssAnimation()},e.prototype.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),top:(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},e.prototype.isCursorInView=function(e,t){return e.top>=0&&e.top<t.maxHeight},e.prototype.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,r=0;void 0!==t&&0!==t.length||(t=[{cursor:null}]);n=0;for(var o=t.length;n<o;n++){var s=this.getPixelPosition(t[n].cursor,!0);if(!((s.top>e.height+e.offset||s.top<0)&&n>1)){var a=this.cursors[r++]||this.addCursor(),l=a.style;this.drawCursor?this.drawCursor(a,s,e,t[n],this.session):this.isCursorInView(s,e)?(i.setStyle(l,"display","block"),i.translate(a,s.left,s.top),i.setStyle(l,"width",Math.round(e.characterWidth)+"px"),i.setStyle(l,"height",e.lineHeight+"px")):i.setStyle(l,"display","none")}}for(;this.cursors.length>r;)this.removeCursor();var c=this.session.getOverwrite();this.$setOverwrite(c),this.$pixelPos=s,this.restartTimer()},e.prototype.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?i.addCssClass(this.element,"ace_overwrite-cursors"):i.removeCssClass(this.element,"ace_overwrite-cursors"))},e.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},e}();r.prototype.$padding=0,r.prototype.drawCursor=null,t.Cursor=r}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var i,r=this&&this.__extends||(i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},i(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter,c=32768,u=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+t,this.element.tabIndex=-1,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();o.implement(u.prototype,l);var d=function(e){function t(t,n){var i=e.call(this,t,"-v")||this;return i.scrollTop=0,i.scrollHeight=0,n.$scrollbarWidth=i.width=s.scrollbarWidth(t.ownerDocument),i.inner.style.width=i.element.style.width=(i.width||15)+5+"px",i.$minWidth=0,i}return r(t,e),t.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.element.style.height=e+"px"},t.prototype.setScrollHeight=function(e){this.scrollHeight=e,e>c?(this.coeff=c/e,e=c):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},t.prototype.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)},t}(u);d.prototype.setInnerHeight=d.prototype.setScrollHeight;var h=function(e){function t(t,n){var i=e.call(this,t,"-h")||this;return i.scrollLeft=0,i.height=n.$scrollbarWidth,i.inner.style.height=i.element.style.height=(i.height||15)+5+"px",i}return r(t,e),t.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.setWidth=function(e){this.element.style.width=e+"px"},t.prototype.setInnerWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)},t}(u);t.ScrollBar=d,t.ScrollBarV=d,t.ScrollBarH=h,t.VScrollBar=d,t.HScrollBar=h}),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var i,r=this&&this.__extends||(i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},i(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=e("./lib/oop"),s=e("./lib/dom"),a=e("./lib/event"),l=e("./lib/event_emitter").EventEmitter;s.importCssString(".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\n position: absolute;\n background: rgba(128, 128, 128, 0.6);\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid #bbb;\n border-radius: 2px;\n z-index: 8;\n}\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\n position: absolute;\n z-index: 6;\n background: none;\n overflow: hidden!important;\n}\n.ace_editor>.ace_sb-v {\n z-index: 6;\n right: 0;\n top: 0;\n width: 12px;\n}\n.ace_editor>.ace_sb-v div {\n z-index: 8;\n right: 0;\n width: 100%;\n}\n.ace_editor>.ace_sb-h {\n bottom: 0;\n left: 0;\n height: 12px;\n}\n.ace_editor>.ace_sb-h div {\n bottom: 0;\n height: 100%;\n}\n.ace_editor>.ace_sb_grabbed {\n z-index: 8;\n background: #000;\n}","ace_scrollbar.css",!1);var c=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_sb"+t,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();o.implement(c.prototype,l);var u=function(e){function t(t,n){var i=e.call(this,t,"-v")||this;return i.scrollTop=0,i.scrollHeight=0,i.parent=t,i.width=i.VScrollWidth,i.renderer=n,i.inner.style.width=i.element.style.width=(i.width||15)+"px",i.$minWidth=0,i}return r(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,i=t.clientY,r=t.clientY,o=this.thumbTop;a.capture(this.inner,function(e){i=e.clientY},function(){clearInterval(s)});var s=setInterval(function(){if(void 0!==i){var e=n.scrollTopFromThumbTop(o+i-r);e!==n.scrollTop&&n._emit("scroll",{data:e})}},20);return a.preventDefault(t)}var l=t.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.height},t.prototype.scrollTopFromThumbTop=function(e){var t=e*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return(t|=0)<0?t=0:t>this.pageHeight-this.viewHeight&&(t=this.pageHeight-this.viewHeight),t},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.height=Math.max(0,e),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},t.prototype.setScrollHeight=function(e,t){(this.pageHeight!==e||t)&&(this.pageHeight=e,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},t.prototype.setScrollTop=function(e){this.scrollTop=e,e<0&&(e=0),this.thumbTop=e*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},t}(c);u.prototype.setInnerHeight=u.prototype.setScrollHeight;var d=function(e){function t(t,n){var i=e.call(this,t,"-h")||this;return i.scrollLeft=0,i.scrollWidth=0,i.height=i.HScrollHeight,i.inner.style.height=i.element.style.height=(i.height||12)+"px",i.renderer=n,i}return r(t,e),t.prototype.onMouseDown=function(e,t){if("mousedown"===e&&0===a.getButton(t)&&2!==t.detail){if(t.target===this.inner){var n=this,i=t.clientX,r=t.clientX,o=this.thumbLeft;a.capture(this.inner,function(e){i=e.clientX},function(){clearInterval(s)});var s=setInterval(function(){if(void 0!==i){var e=n.scrollLeftFromThumbLeft(o+i-r);e!==n.scrollLeft&&n._emit("scroll",{data:e})}},20);return a.preventDefault(t)}var l=t.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(l)}),a.preventDefault(t)}},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.scrollLeftFromThumbLeft=function(e){var t=e*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return(t|=0)<0?t=0:t>this.pageWidth-this.viewWidth&&(t=this.pageWidth-this.viewWidth),t},t.prototype.setWidth=function(e){this.width=Math.max(0,e),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},t.prototype.setScrollWidth=function(e,t){(this.pageWidth!==e||t)&&(this.pageWidth=e,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},t.prototype.setScrollLeft=function(e){this.scrollLeft=e,e<0&&(e=0),this.thumbLeft=e*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},t}(c);d.prototype.setInnerWidth=d.prototype.setScrollWidth,t.ScrollBar=u,t.ScrollBarV=u,t.ScrollBarH=d,t.VScrollBar=u,t.HScrollBar=d}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){"use strict";var i=e("./lib/event"),r=function(){function e(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;if(t&&(i.blockIdle(100),n.changes=0,n.onRender(t)),n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}}return e.prototype.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(i.nextFrame(this._flush),this.pending=!0)},e.prototype.clear=function(e){var t=this.changes;return this.changes=0,t},e}();t.RenderLoop=r}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var i=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=e("../lib/event"),a=e("../lib/useragent"),l=e("../lib/event_emitter").EventEmitter,c=512,u="function"==typeof ResizeObserver,d=200,h=function(){function e(e){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=o.stringRepeat("X",c),this.$characterSize={width:0,height:0},u?this.$addObserver():this.checkForSizeChanges()}return e.prototype.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",a.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},e.prototype.checkForSizeChanges=function(e){if(void 0===e&&(e=this.$measureSizes()),e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},e.prototype.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver(function(t){e.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},e.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=s.onIdle(function t(){e.checkForSizeChanges(),s.onIdle(t,500)},500)},e.prototype.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},e.prototype.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/c};return 0===t.width||0===t.height?null:t},e.prototype.$measureCharWidth=function(e){return this.$main.textContent=o.stringRepeat(e,c),this.$main.getBoundingClientRect().width/c},e.prototype.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},e.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},e.prototype.$getZoom=function(e){return e&&e.parentElement?(Number(window.getComputedStyle(e).zoom)||1)*this.$getZoom(e.parentElement):1},e.prototype.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=r.buildDom([e(0,0),e(d,0),e(0,d),e(d,d)],this.el)},e.prototype.transformCoordinates=function(e,t){e&&(e=o(1/this.$getZoom(this.el),e));function n(e,t,n){var i=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/i,(+e[1]*n[0]-e[0]*n[1])/i]}function i(e,t){return[e[0]-t[0],e[1]-t[1]]}function r(e,t){return[e[0]+t[0],e[1]+t[1]]}function o(e,t){return[e*t[0],e*t[1]]}function s(e){var t=e.getBoundingClientRect();return[t.left,t.top]}this.els||this.$initTransformMeasureNodes();var a=s(this.els[0]),l=s(this.els[1]),c=s(this.els[2]),u=s(this.els[3]),h=n(i(u,l),i(u,c),i(r(l,c),r(u,a))),p=o(1+h[0],i(l,a)),f=o(1+h[1],i(c,a));if(t){var g=t,m=h[0]*g[0]/d+h[1]*g[1]/d+1,y=r(o(g[0],p),o(g[1],f));return r(o(1/m/d,y),a)}var w=i(e,a),b=n(i(p,o(h[0],w)),i(f,o(h[1],w)),w);return o(d,b)},e}();h.prototype.$characterSize={width:0,height:0},i.implement(h.prototype,l),t.FontMetrics=h}),ace.define("ace/css/editor-css",["require","exports","module"],function(e,t,n){n.exports='\n.ace_br1 {border-top-left-radius : 3px;}\n.ace_br2 {border-top-right-radius : 3px;}\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\n.ace_br4 {border-bottom-right-radius: 3px;}\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\n.ace_br8 {border-bottom-left-radius : 3px;}\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n\n\n.ace_editor {\n position: relative;\n overflow: hidden;\n padding: 0;\n font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'Source Code Pro\', \'source-code-pro\', monospace;\n direction: ltr;\n text-align: left;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n forced-color-adjust: none;\n}\n\n.ace_scroller {\n position: absolute;\n overflow: hidden;\n top: 0;\n bottom: 0;\n background-color: inherit;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n cursor: text;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n min-width: 100%;\n contain: style size layout;\n font-variant-ligatures: no-common-ligatures;\n}\n.ace_invisible {\n font-variant-ligatures: none;\n}\n\n.ace_keyboard-focus:focus {\n box-shadow: inset 0 0 0 2px #5E9ED6;\n outline: none;\n}\n\n.ace_dragging .ace_scroller:before{\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n content: \'\';\n background: rgba(250, 250, 250, 0.01);\n z-index: 1000;\n}\n.ace_dragging.ace_dark .ace_scroller:before{\n background: rgba(0, 0, 0, 0.01);\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n width: auto;\n top: 0;\n bottom: 0;\n left: 0;\n cursor: default;\n z-index: 4;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n contain: style size layout;\n}\n\n.ace_gutter-active-line {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.ace_scroller.ace_scroll-left:after {\n content: "";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n pointer-events: none;\n}\n\n.ace_gutter-cell, .ace_gutter-cell_svg-icons {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding-left: 19px;\n padding-right: 6px;\n background-repeat: no-repeat;\n}\n\n.ace_gutter-cell_svg-icons .ace_gutter_annotation {\n margin-left: -14px;\n float: left;\n}\n\n.ace_gutter-cell .ace_gutter_annotation {\n margin-left: -19px;\n float: left;\n}\n\n.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold, .ace_gutter-cell.ace_security, .ace_icon.ace_security, .ace_icon.ace_security_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info, .ace_icon.ace_info, .ace_gutter-cell.ace_hint, .ace_icon.ace_hint {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info, .ace_dark .ace_gutter-cell.ace_hint, .ace_dark .ace_icon.ace_hint {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\n}\n\n.ace_icon_svg.ace_error {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+");\n background-color: crimson;\n}\n.ace_icon_svg.ace_security {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0iZGFya29yYW5nZSIgZmlsbD0ibm9uZSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgogICAgICAgIDxwYXRoIGNsYXNzPSJzdHJva2UtbGluZWpvaW4tcm91bmQiIGQ9Ik04IDE0LjgzMDdDOCAxNC44MzA3IDIgMTIuOTA0NyAyIDguMDg5OTJWMy4yNjU0OEM1LjMxIDMuMjY1NDggNy45ODk5OSAxLjM0OTE4IDcuOTg5OTkgMS4zNDkxOEM3Ljk4OTk5IDEuMzQ5MTggMTAuNjkgMy4yNjU0OCAxNCAzLjI2NTQ4VjguMDg5OTJDMTQgMTIuOTA0NyA4IDE0LjgzMDcgOCAxNC44MzA3WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yIDguMDg5OTJWMy4yNjU0OEM1LjMxIDMuMjY1NDggNy45ODk5OSAxLjM0OTE4IDcuOTg5OTkgMS4zNDkxOCIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMy45OSA4LjA4OTkyVjMuMjY1NDhDMTAuNjggMy4yNjU0OCA4IDEuMzQ5MTggOCAxLjM0OTE4Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTggNFY5Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTggMTBWMTIiLz4KICAgIDwvZz4KPC9zdmc+");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: darkorange;\n}\n.ace_icon_svg.ace_info {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: royalblue;\n}\n.ace_icon_svg.ace_hint {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0ic2lsdmVyIiBmaWxsPSJub25lIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTYgMTRIMTAiLz4KICAgICAgICA8cGF0aCBkPSJNOCAxMUg5QzkgOS40NzAwMiAxMiA4LjU0MDAyIDEyIDUuNzYwMDJDMTIuMDIgNC40MDAwMiAxMS4zOSAzLjM2MDAyIDEwLjQzIDIuNjcwMDJDOSAxLjY0MDAyIDcuMDAwMDEgMS42NDAwMiA1LjU3MDAxIDIuNjcwMDJDNC42MTAwMSAzLjM2MDAyIDMuOTggNC40MDAwMiA0IDUuNzYwMDJDNCA4LjU0MDAyIDcuMDAwMDEgOS40NzAwMiA3LjAwMDAxIDExSDhaIi8+CiAgICA8L2c+Cjwvc3ZnPg==");\n background-color: silver;\n}\n\n.ace_icon_svg.ace_error_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");\n background-color: crimson;\n}\n.ace_icon_svg.ace_security_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTcgMTQiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTEwLjAwMDEgMTMuNjk5MkMxMC4wMDAxIDEzLjY5OTIgMTEuOTI0MSAxMy40NzYzIDEzIDEyLjY5OTJDMTQuNDEzOSAxMS42NzgxIDE2IDEwLjUgMTYuMTI1MSA2LjgxMTI2VjIuNTg5ODdDMTYuMTI1MSAyLjU0NzY4IDE2LjEyMjEgMi41MDYxOSAxNi4xMTY0IDIuNDY1NTlWMS43MTQ4NUgxNS4yNDE0TDE1LjIzMDcgMS43MTQ4NEwxNC42MjUxIDEuNjk5MjJWNi44MTEyM0MxNC42MjUxIDguNTEwNjEgMTQuNjI1MSA5LjQ2NDYxIDEyLjc4MjQgMTEuNzIxQzEyLjE1ODYgMTIuNDg0OCAxMC4wMDAxIDEzLjY5OTIgMTAuMDAwMSAxMy42OTkyWiIgZmlsbD0iY3JpbXNvbiIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcuMzM2MDkgMC4zNjc0NzVDNy4wMzIxNCAwLjE1MjY1MiA2LjYyNTQ4IDAuMTUzNjE0IDYuMzIyNTMgMC4zNjk5OTdMNi4zMDg2OSAwLjM3OTU1NEM2LjI5NTUzIDAuMzg4NTg4IDYuMjczODggMC40MDMyNjYgNi4yNDQxNyAwLjQyMjc4OUM2LjE4NDcxIDAuNDYxODYgNi4wOTMyMSAwLjUyMDE3MSA1Ljk3MzEzIDAuNTkxMzczQzUuNzMyNTEgMC43MzQwNTkgNS4zNzk5IDAuOTI2ODY0IDQuOTQyNzkgMS4xMjAwOUM0LjA2MTQ0IDEuNTA5NyAyLjg3NTQxIDEuODgzNzcgMS41ODk4NCAxLjg4Mzc3SDAuNzE0ODQ0VjIuNzU4NzdWNi45ODAxNUMwLjcxNDg0NCA5LjQ5Mzc0IDIuMjg4NjYgMTEuMTk3MyAzLjcwMjU0IDEyLjIxODVDNC40MTg0NSAxMi43MzU1IDUuMTI4NzQgMTMuMTA1MyA1LjY1NzMzIDEzLjM0NTdDNS45MjI4NCAxMy40NjY0IDYuMTQ1NjYgMTMuNTU1OSA2LjMwNDY1IDEzLjYxNjFDNi4zODQyMyAxMy42NDYyIDYuNDQ4MDUgMTMuNjY5IDYuNDkzNDkgMTMuNjg0OEM2LjUxNjIyIDEzLjY5MjcgNi41MzQzOCAxMy42OTg5IDYuNTQ3NjQgMTMuNzAzM0w2LjU2MzgyIDEzLjcwODdMNi41NjkwOCAxMy43MTA0TDYuNTcwOTkgMTMuNzExTDYuODM5ODQgMTMuNzUzM0w2LjU3MjQyIDEzLjcxMTVDNi43NDYzMyAxMy43NjczIDYuOTMzMzUgMTMuNzY3MyA3LjEwNzI3IDEzLjcxMTVMNy4xMDg3IDEzLjcxMUw3LjExMDYxIDEzLjcxMDRMNy4xMTU4NyAxMy43MDg3TDcuMTMyMDUgMTMuNzAzM0M3LjE0NTMxIDEzLjY5ODkgNy4xNjM0NiAxMy42OTI3IDcuMTg2MTkgMTMuNjg0OEM3LjIzMTY0IDEzLjY2OSA3LjI5NTQ2IDEzLjY0NjIgNy4zNzUwMyAxMy42MTYxQzcuNTM0MDMgMTMuNTU1OSA3Ljc1Njg1IDEzLjQ2NjQgOC4wMjIzNiAxMy4zNDU3QzguNTUwOTUgMTMuMTA1MyA5LjI2MTIzIDEyLjczNTUgOS45NzcxNSAxMi4yMTg1QzExLjM5MSAxMS4xOTczIDEyLjk2NDggOS40OTM3NyAxMi45NjQ4IDYuOTgwMThWMi43NTg4QzEyLjk2NDggMi43MTY2IDEyLjk2MTkgMi42NzUxMSAxMi45NTYxIDIuNjM0NTFWMS44ODM3N0gxMi4wODExQzEyLjA3NzUgMS44ODM3NyAxMi4wNzQgMS44ODM3NyAxMi4wNzA0IDEuODgzNzdDMTAuNzk3OSAxLjg4MDA0IDkuNjE5NjIgMS41MTEwMiA4LjczODk0IDEuMTI0ODZDOC43MzUzNCAxLjEyMzI3IDguNzMxNzQgMS4xMjE2OCA4LjcyODE0IDEuMTIwMDlDOC4yOTEwMyAwLjkyNjg2NCA3LjkzODQyIDAuNzM0MDU5IDcuNjk3NzkgMC41OTEzNzNDNy41Nzc3MiAwLjUyMDE3MSA3LjQ4NjIyIDAuNDYxODYgNy40MjY3NiAwLjQyMjc4OUM3LjM5NzA1IDAuNDAzMjY2IDcuMzc1MzkgMC4zODg1ODggNy4zNjIyNCAwLjM3OTU1NEw3LjM0ODk2IDAuMzcwMzVDNy4zNDg5NiAwLjM3MDM1IDcuMzQ4NDcgMC4zNzAwMiA3LjM0NTYzIDAuMzc0MDU0TDcuMzM3NzkgMC4zNjg2NTlMNy4zMzYwOSAwLjM2NzQ3NVpNOC4wMzQ3MSAyLjcyNjkxQzguODYwNCAzLjA5MDYzIDkuOTYwNjYgMy40NjMwOSAxMS4yMDYxIDMuNTg5MDdWNi45ODAxNUgxMS4yMTQ4QzExLjIxNDggOC42Nzk1MyAxMC4xNjM3IDkuOTI1MDcgOC45NTI1NCAxMC43OTk4QzguMzU1OTUgMTEuMjMwNiA3Ljc1Mzc0IDExLjU0NTQgNy4yOTc5NiAxMS43NTI3QzcuMTE2NzEgMTEuODM1MSA2Ljk2MDYyIDExLjg5OTYgNi44Mzk4NCAxMS45NDY5QzYuNzE5MDYgMTEuODk5NiA2LjU2Mjk3IDExLjgzNTEgNi4zODE3MyAxMS43NTI3QzUuOTI1OTUgMTEuNTQ1NCA1LjMyMzczIDExLjIzMDYgNC43MjcxNSAxMC43OTk4QzMuNTE2MDMgOS45MjUwNyAyLjQ2NDg0IDguNjc5NTUgMi40NjQ4NCA2Ljk4MDE4VjMuNTg5MDlDMy43MTczOCAzLjQ2MjM5IDQuODIzMDggMy4wODYzOSA1LjY1MDMzIDIuNzIwNzFDNi4xNDIyOCAyLjUwMzI0IDYuNTQ0ODUgMi4yODUzNyA2LjgzMjU0IDIuMTE2MjRDNy4xMjE4MSAyLjI4NTM1IDcuNTI3IDIuNTAzNTIgOC4wMjE5NiAyLjcyMTMxQzguMDI2MiAyLjcyMzE3IDguMDMwNDUgMi43MjUwNCA4LjAzNDcxIDIuNzI2OTFaTTUuOTY0ODQgMy40MDE0N1Y3Ljc3NjQ3SDcuNzE0ODRWMy40MDE0N0g1Ljk2NDg0Wk01Ljk2NDg0IDEwLjQwMTVWOC42NTE0N0g3LjcxNDg0VjEwLjQwMTVINS45NjQ4NFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=");\n background-color: darkorange;\n}\n\n.ace_scrollbar {\n contain: strict;\n position: absolute;\n right: 0;\n bottom: 0;\n z-index: 6;\n}\n\n.ace_scrollbar-inner {\n position: absolute;\n cursor: text;\n left: 0;\n top: 0;\n}\n\n.ace_scrollbar-v{\n overflow-x: hidden;\n overflow-y: scroll;\n top: 0;\n}\n\n.ace_scrollbar-h {\n overflow-x: scroll;\n overflow-y: hidden;\n left: 0;\n}\n\n.ace_print-margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_text-input {\n position: absolute;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n -moz-appearance: none;\n appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n font: inherit;\n padding: 0 1px;\n margin: 0 -1px;\n contain: strict;\n -ms-user-select: text;\n -moz-user-select: text;\n -webkit-user-select: text;\n user-select: text;\n /*with `pre-line` chrome inserts &nbsp; instead of space*/\n white-space: pre!important;\n}\n.ace_text-input.ace_composition {\n background: transparent;\n color: inherit;\n z-index: 1000;\n opacity: 1;\n}\n.ace_composition_placeholder { color: transparent }\n.ace_composition_marker { \n border-bottom: 1px solid;\n position: absolute;\n border-radius: 0;\n margin-top: 1px;\n}\n\n[ace_nocontext=true] {\n transform: none!important;\n filter: none!important;\n clip-path: none!important;\n mask : none!important;\n contain: none!important;\n perspective: none!important;\n mix-blend-mode: initial!important;\n z-index: auto;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/\n word-wrap: normal;\n white-space: pre;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter-layer {\n position: relative;\n width: auto;\n text-align: right;\n pointer-events: auto;\n height: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer {\n font: inherit !important;\n position: absolute;\n height: 1000000px;\n width: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\n contain: style size layout;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.ace_hidpi .ace_text-layer,\n.ace_hidpi .ace_gutter-layer,\n.ace_hidpi .ace_content,\n.ace_hidpi .ace_gutter {\n contain: strict;\n}\n.ace_hidpi .ace_text-layer > .ace_line, \n.ace_hidpi .ace_text-layer > .ace_line_group {\n contain: strict;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n box-sizing: border-box;\n border-left: 2px solid;\n /* workaround for smooth cursor repaintng whole screen in chrome */\n transform: translatez(0);\n}\n\n.ace_multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_slim-cursors .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_overwrite-cursors .ace_cursor {\n border-left-width: 0;\n border-bottom: 1px solid;\n}\n\n.ace_hidden-cursors .ace_cursor {\n opacity: 0.2;\n}\n\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\n opacity: 0;\n}\n\n.ace_smooth-blinking .ace_cursor {\n transition: opacity 0.18s;\n}\n\n.ace_animate-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: step-end;\n animation-name: blink-ace-animate;\n animation-iteration-count: infinite;\n}\n\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: ease-in-out;\n animation-name: blink-ace-animate-smooth;\n}\n \n@keyframes blink-ace-animate {\n from, to { opacity: 1; }\n 60% { opacity: 0; }\n}\n\n@keyframes blink-ace-animate-smooth {\n from, to { opacity: 1; }\n 45% { opacity: 1; }\n 60% { opacity: 0; }\n 85% { opacity: 0; }\n}\n\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_error_bracket {\n position: absolute;\n border-bottom: 1px solid #DE5555;\n border-radius: 0;\n}\n\n.ace_marker-layer .ace_active-line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected-word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n\n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n border-radius: 2px;\n\n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\n}\n\n.ace_tooltip {\n background-color: #f5f5f5;\n border: 1px solid gray;\n border-radius: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n color: black;\n padding: 3px 4px;\n position: fixed;\n z-index: 999999;\n box-sizing: border-box;\n cursor: default;\n white-space: pre-wrap;\n word-wrap: break-word;\n line-height: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n pointer-events: none;\n overflow: auto;\n max-width: min(33em, 66vw);\n overscroll-behavior: contain;\n}\n.ace_tooltip pre {\n white-space: pre-wrap;\n}\n\n.ace_tooltip.ace_dark {\n background-color: #636363;\n color: #fff;\n}\n\n.ace_tooltip:focus {\n outline: 1px solid #5E9ED6;\n}\n\n.ace_icon {\n display: inline-block;\n width: 18px;\n vertical-align: top;\n}\n\n.ace_icon_svg {\n display: inline-block;\n width: 12px;\n vertical-align: top;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-size: 12px;\n -webkit-mask-position: center;\n}\n\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\n padding-right: 13px;\n}\n\n.ace_fold-widget, .ace_custom-widget {\n box-sizing: border-box;\n\n margin: 0 -12px 0 1px;\n display: none;\n width: 11px;\n vertical-align: top;\n\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: 3px;\n \n border: 1px solid transparent;\n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_custom-widget {\n background: none;\n}\n\n.ace_folding-enabled .ace_fold-widget {\n display: inline-block; \n}\n\n.ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\n}\n\n.ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\n}\n.ace_dark .ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget:hover {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n\n.ace_inline_button {\n border: 1px solid lightgray;\n display: inline-block;\n margin: -1px 8px;\n padding: 0 5px;\n pointer-events: auto;\n cursor: pointer;\n}\n.ace_inline_button:hover {\n border-color: gray;\n background: rgba(200,200,200,0.2);\n display: inline-block;\n pointer-events: auto;\n}\n\n.ace_fold-widget.ace_invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n transition: opacity 0.4s ease 0.05s;\n opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n transition: opacity 0.05s ease 0.05s;\n opacity:1;\n}\n\n.ace_underline {\n text-decoration: underline;\n}\n\n.ace_bold {\n font-weight: bold;\n}\n\n.ace_nobold .ace_bold {\n font-weight: normal;\n}\n\n.ace_italic {\n font-style: italic;\n}\n\n\n.ace_error-marker {\n background-color: rgba(255, 0, 0,0.2);\n position: absolute;\n z-index: 9;\n}\n\n.ace_highlight-marker {\n background-color: rgba(255, 255, 0,0.2);\n position: absolute;\n z-index: 8;\n}\n\n.ace_mobile-menu {\n position: absolute;\n line-height: 1.5;\n border-radius: 4px;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n background: white;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #dcdcdc;\n color: black;\n}\n.ace_dark > .ace_mobile-menu {\n background: #333;\n color: #ccc;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #444;\n\n}\n.ace_mobile-button {\n padding: 2px;\n cursor: pointer;\n overflow: hidden;\n}\n.ace_mobile-button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_mobile-button:active {\n background-color: #ddd;\n}\n\n.ace_placeholder {\n position: relative;\n font-family: arial;\n transform: scale(0.9);\n transform-origin: left;\n white-space: pre;\n opacity: 0.7;\n margin: 0 10px;\n z-index: 1;\n}\n\n.ace_ghost_text {\n opacity: 0.5;\n font-style: italic;\n}\n\n.ace_ghost_text_container > div {\n white-space: pre;\n}\n\n.ghost_text_line_wrapped::after {\n content: "↩";\n position: absolute;\n}\n\n.ace_lineWidgetContainer.ace_ghost_text {\n margin: 0px 4px\n}\n\n.ace_screenreader-only {\n position:absolute;\n left:-10000px;\n top:auto;\n width:1px;\n height:1px;\n overflow:hidden;\n}\n\n.ace_hidden_token {\n display: none;\n}'}),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var i=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/event_emitter").EventEmitter,s=function(){function e(e,t){this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},this.setScrollBarV(e)}return e.prototype.$createCanvas=function(){this.canvas=i.createElement("canvas"),this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7",this.canvas.style.position="absolute"},e.prototype.setScrollBarV=function(e){this.$createCanvas(),this.scrollbarV=e,e.element.appendChild(this.canvas),this.setDimensions()},e.prototype.$updateDecorators=function(e){if("function"==typeof this.canvas.getContext){var t=!0===this.renderer.theme.isDark?this.colors.dark:this.colors.light;this.setDimensions(e);var n=this.canvas.getContext("2d"),i=this.renderer.session.$annotations;if(n.clearRect(0,0,this.canvas.width,this.canvas.height),i){var r={info:1,warning:2,error:3};i.forEach(function(e){e.priority=r[e.type]||null}),i=i.sort(function(e,t){return e.priority<t.priority?-1:e.priority>t.priority?1:0});for(var o=0;o<i.length;o++){var s=i[o].row,a=this.getVerticalOffsetForRow(s),l=a+this.lineHeight,c=Math.round(this.heightRatio*a),u=Math.round(this.heightRatio*l),d=Math.round((c+u)/2),h=u-d;h<this.halfMinDecorationHeight&&(h=this.halfMinDecorationHeight),d-h<0&&(d=h),d+h>this.canvasHeight&&(d=this.canvasHeight-h);var p=d-h,f=d+h-p;n.fillStyle=t[i[o].type]||null,n.fillRect(0,p,Math.round(this.oneZoneWidth-1),f)}}var g=this.renderer.session.selection.getCursor();if(g){var m=Math.round(this.getVerticalOffsetForRow(g.row)*this.heightRatio);n.fillStyle="rgba(0, 0, 0, 0.5)",n.fillRect(0,m,this.canvasWidth,2)}}},e.prototype.getVerticalOffsetForRow=function(e){return e|=0,this.renderer.session.documentToScreenRow(e,0)*this.lineHeight},e.prototype.setDimensions=function(e){e=e||this.renderer.layerConfig,this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height,this.canvasWidth=this.scrollbarV.width||this.canvasWidth,this.setZoneWidth(),this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.maxHeight<this.canvasHeight?this.heightRatio=1:this.heightRatio=this.canvasHeight/this.maxHeight},e.prototype.setZoneWidth=function(){this.oneZoneWidth=this.canvasWidth},e.prototype.destroy=function(){this.canvas.parentNode.removeChild(this.canvas)},e}();r.implement(s.prototype,o),t.Decorator=s}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent","ace/layer/text_util"],function(e,t,n){"use strict";var i=e("./lib/oop"),r=e("./lib/dom"),o=e("./lib/lang"),s=e("./config"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,u=e("./layer/cursor").Cursor,d=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,p=e("./scrollbar_custom").HScrollBar,f=e("./scrollbar_custom").VScrollBar,g=e("./renderloop").RenderLoop,m=e("./layer/font_metrics").FontMetrics,y=e("./lib/event_emitter").EventEmitter,w=e("./css/editor-css"),b=e("./layer/decorators").Decorator,v=e("./lib/useragent"),M=e("./layer/text_util").isTextToken;r.importCssString(w,"ace_editor.css",!1);var x=function(){function e(e,t){var n=this;this.container=e||r.createElement("div"),r.addCssClass(this.container,"ace_editor"),r.HI_DPI&&r.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),null==s.get("useStrictCSP")&&s.set("useStrictCSP",!1),this.$gutter=r.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden","true"),this.scroller=r.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=r.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var i=this.$textLayer=new c(this.content);this.canvas=i.element,this.$markerFront=new l(this.content),this.$cursorLayer=new u(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new d(this.container,this),this.scrollBarV.on("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.on("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new m(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!v.isIOS,this.$loop=new g(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),s.resetOptions(this),s._signal("renderer",this)}return e.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),r.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},e.prototype.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},e.prototype.updateLines=function(e,t,n){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRow<t&&(this.$changedLines.lastRow=t)):this.$changedLines={firstRow:e,lastRow:t},this.$changedLines.lastRow<this.layerConfig.firstRow){if(!n)return;this.$changedLines.lastRow=this.layerConfig.lastRow}this.$changedLines.firstRow>this.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},e.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},e.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},e.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},e.prototype.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},e.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},e.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},e.prototype.onResize=function(e,t,n,i){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var r=this.container;i||(i=r.clientHeight||r.scrollHeight),!i&&this.$maxLines&&this.lineHeight>1&&(r.style.height&&"0px"!=r.style.height||(r.style.height="1px",i=r.clientHeight||r.scrollHeight)),n||(n=r.clientWidth||r.scrollWidth);var o=this.$updateCachedSize(e,t,n,i);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!n&&!i)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(o|this.$changes,!0):this.$loop.schedule(o|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},e.prototype.$updateCachedSize=function(e,t,n,i){i-=this.$extraHeight||0;var o=0,s=this.$size,a={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};if(i&&(e||s.height!=i)&&(s.height=i,o|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(s.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",o|=this.CHANGE_SCROLL),n&&(e||s.width!=n)){o|=this.CHANGE_SIZE,s.width=n,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,r.setStyle(this.scrollBarH.element.style,"left",t+"px"),r.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),r.setStyle(this.$gutter.style,"left",this.margin.left+"px");var l=this.scrollBarV.getWidth()+"px";r.setStyle(this.scrollBarH.element.style,"right",l),r.setStyle(this.scroller.style,"right",l),r.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(s.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(o|=this.CHANGE_FULL)}return s.$dirty=!n||!i,o&&this._signal("resize",a),o},e.prototype.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},e.prototype.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},e.prototype.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},e.prototype.getAnimatedScroll=function(){return this.$animatedScroll},e.prototype.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},e.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},e.prototype.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},e.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},e.prototype.setHighlightIndentGuides=function(e){this.setOption("highlightIndentGuides",e)},e.prototype.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},e.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},e.prototype.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},e.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},e.prototype.getShowGutter=function(){return this.getOption("showGutter")},e.prototype.setShowGutter=function(e){return this.setOption("showGutter",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=r.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},e.prototype.getContainerElement=function(){return this.container},e.prototype.getMouseEventTarget=function(){return this.scroller},e.prototype.getTextAreaContainer=function(){return this.container},e.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var e=this.textarea.style,t=this.$composition;if(this.$keepTextAreaAtCursor||t){var n=this.$cursorLayer.$pixelPos;if(n){t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var i=this.layerConfig,o=n.top,s=n.left;o-=i.offset;var a=t&&t.useTextareaForIME||v.isMobile?this.lineHeight:1;if(o<0||o>i.height-a)r.translate(this.textarea,0,0);else{var l=1,c=this.$size.height-a;if(t)if(t.useTextareaForIME){var u=this.textarea.value;l=this.characterWidth*this.session.$getStringScreenWidth(u)[0]}else o+=this.lineHeight+2;else o+=this.lineHeight;(s-=this.scrollLeft)>this.$size.scrollerWidth-l&&(s=this.$size.scrollerWidth-l),s+=this.gutterWidth+this.margin.left,r.setStyle(e,"height",a+"px"),r.setStyle(e,"width",l+"px"),r.translate(this.textarea,Math.min(s,this.$size.scrollerWidth-l),Math.min(o,c))}}}else r.translate(this.textarea,-100,0)}},e.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},e.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},e.prototype.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},e.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},e.prototype.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},e.prototype.setScrollMargin=function(e,t,n,i){var r=this.scrollMargin;r.top=0|e,r.bottom=0|t,r.right=0|i,r.left=0|n,r.v=r.top+r.bottom,r.h=r.left+r.right,r.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-r.top),this.updateFull()},e.prototype.setMargin=function(e,t,n,i){var r=this.margin;r.top=0|e,r.bottom=0|t,r.right=0|i,r.left=0|n,r.v=r.top+r.bottom,r.h=r.left+r.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},e.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},e.prototype.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},e.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},e.prototype.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},e.prototype.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},e.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},e.prototype.freeze=function(){this.$frozen=!0},e.prototype.unfreeze=function(){this.$frozen=!1},e.prototype.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig()|this.$loop.clear(),n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var i=this.scrollTop+(n.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;i>0&&(this.scrollTop=i,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),r.translate(this.content,-this.scrollLeft,-n.offset);var o=n.width+2*this.$padding+"px",s=n.minHeight+"px";r.setStyle(this.content.style,"width",o),r.setStyle(this.content.style,"height",s)}if(e&this.CHANGE_H_SCROLL&&(r.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),e&this.CHANGE_FULL)return this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);if(e&this.CHANGE_SCROLL)return this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),void this._signal("afterRender",e);e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_LINES?((this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender",e)}else this.$changes|=e},e.prototype.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var i=!(n<=2*this.lineHeight)&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||i!=this.$vScroll){i!=this.$vScroll&&(this.$vScroll=i,this.scrollBarV.setVisible(i));var r=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,r,n),this.desiredHeight=n,this._signal("autosize")}},e.prototype.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,i=this.session.getScreenLength()*this.lineHeight,r=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-r-2*this.$padding<0),s=this.$horizScroll!==o;s&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&(this.$autosize(),n=t.height<=2*this.lineHeight);var l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=c;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,i-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,r+2*this.$padding-t.scrollerWidth+u.right)));var d=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+c<0||this.scrollTop>u.top),h=a!==d;h&&(this.$vScroll=d,this.scrollBarV.setVisible(d));var p,f,g=this.scrollTop%this.lineHeight,m=Math.ceil(l/this.lineHeight)-1,y=Math.max(0,Math.round((this.scrollTop-g)/this.lineHeight)),w=y+m,b=this.lineHeight;y=e.screenToDocumentRow(y,0);var v=e.getFoldLine(y);v&&(y=v.start.row),p=e.documentToScreenRow(y,0),f=e.getRowLength(y)*b,w=Math.min(e.screenToDocumentRow(w,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(w)*b+f,(g=this.scrollTop-p*b)<0&&p>0&&(p=Math.max(0,p+Math.floor(g/b)),g=this.scrollTop-p*b);var M=0;return(this.layerConfig.width!=r||s)&&(M=this.CHANGE_H_SCROLL),(s||h)&&(M|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),h&&(r=this.$getLongestLine())),this.layerConfig={width:r,padding:this.$padding,firstRow:y,firstRowScreen:p,lastRow:w,lineHeight:b,characterWidth:this.characterWidth,minHeight:l,maxHeight:i,offset:g,gutterOffset:b?Math.max(0,Math.ceil((g+t.height-t.scrollerHeight)/b)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(r-this.$padding),M},e.prototype.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(!(e>n.lastRow+1||t<n.firstRow))return t===1/0?(this.$showGutter&&this.$gutterLayer.update(n),void this.$textLayer.update(n)):(this.$textLayer.updateLines(n,e,t),!0)}},e.prototype.$getLongestLine=function(){var e=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(e+=1),this.$textLayer&&e>this.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},e.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},e.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},e.prototype.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},e.prototype.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},e.prototype.updateBreakpoints=function(e){this._rows=e,this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},e.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},e.prototype.showCursor=function(){this.$cursorLayer.showCursor()},e.prototype.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},e.prototype.scrollCursorIntoView=function(e,t,n){if(0!==this.$size.scrollerHeight){var i=this.$cursorLayer.getPixelPosition(e),r=i.left,o=i.top,s=n&&n.top||0,a=n&&n.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var l=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;l+s>o?(t&&l+s>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):l+this.$size.scrollerHeight-a<o+this.lineHeight&&(t&&l+this.$size.scrollerHeight-a<o-this.lineHeight&&(o+=t*this.$size.scrollerHeight),this.session.setScrollTop(o+this.lineHeight+a-this.$size.scrollerHeight));var c=this.scrollLeft,u=2*this.layerConfig.characterWidth;r-u<c?((r-=u)<this.$padding+u&&(r=-this.scrollMargin.left),this.session.setScrollLeft(r)):(r+=u,c+this.$size.scrollerWidth<r+this.characterWidth?this.session.setScrollLeft(Math.round(r+this.characterWidth-this.$size.scrollerWidth)):c<=this.$padding&&r-c<this.characterWidth&&this.session.setScrollLeft(0))}},e.prototype.getScrollTop=function(){return this.session.getScrollTop()},e.prototype.getScrollLeft=function(){return this.session.getScrollLeft()},e.prototype.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},e.prototype.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},e.prototype.scrollToRow=function(e){this.session.setScrollTop(e*this.lineHeight)},e.prototype.alignCursor=function(e,t){"number"==typeof e&&(e={row:e,column:0});var n=this.$cursorLayer.getPixelPosition(e),i=this.$size.scrollerHeight-this.lineHeight,r=n.top-i*(t||0);return this.session.setScrollTop(r),r},e.prototype.$calcSteps=function(e,t){var n=0,i=this.STEPS,r=[],o=function(e,t,n){return n*(Math.pow(e-1,3)+1)+t};for(n=0;n<i;++n)r.push(o(n/this.STEPS,e,t-e));return r},e.prototype.scrollToLine=function(e,t,n,i){var r=this.$cursorLayer.getPixelPosition({row:e,column:0}).top;t&&(r-=this.$size.scrollerHeight/2);var o=this.scrollTop;this.session.setScrollTop(r),!1!==n&&this.animateScrolling(o,i)},e.prototype.animateScrolling=function(e,t){var n=this.scrollTop;if(this.$animatedScroll){var i=this;if(e!=n){if(this.$scrollAnimation){var r=this.$scrollAnimation.steps;if(r.length&&(e=r[0])==n)return}var o=i.$calcSteps(e,n);this.$scrollAnimation={from:e,to:n,steps:o},clearInterval(this.$timer),i.session.setScrollTop(o.shift()),i.session.$scrollTop=n,this.$timer=setInterval(function(){if(!i.$stopAnimation)return i.session?void(o.length?(i.session.setScrollTop(o.shift()),i.session.$scrollTop=n):null!=n?(i.session.$scrollTop=-1,i.session.setScrollTop(n),n=null):s()):clearInterval(i.$timer);s()},10)}}function s(){i.$timer=clearInterval(i.$timer),i.$scrollAnimation=null,i.$stopAnimation=!1,t&&t()}},e.prototype.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},e.prototype.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},e.prototype.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(e)},e.prototype.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},e.prototype.isScrollableBy=function(e,t){return t<0&&this.session.getScrollTop()>=1-this.scrollMargin.top||(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0)))},e.prototype.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var i=this.$fontMetrics.transformCoordinates([e,t]);e=i[1]-this.gutterWidth-this.margin.left,t=i[0]}else n=this.scroller.getBoundingClientRect();var r=e+this.scrollLeft-n.left-this.$padding,o=r/this.characterWidth,s=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),a=this.$blockCursor?Math.floor(o):Math.round(o);return{row:s,column:a,side:o-a>0?1:-1,offsetX:r}},e.prototype.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var i=this.$fontMetrics.transformCoordinates([e,t]);e=i[1]-this.gutterWidth-this.margin.left,t=i[0]}else n=this.scroller.getBoundingClientRect();var r=e+this.scrollLeft-n.left-this.$padding,o=r/this.characterWidth,s=this.$blockCursor?Math.floor(o):Math.round(o),a=(t+this.scrollTop-n.top)/this.lineHeight;return this.session.screenToDocumentPosition(a,Math.max(s,0),r)},e.prototype.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),i=this.session.documentToScreenPosition(e,t),r=this.$padding+(this.session.$bidiHandler.isBidiRow(i.row,e)?this.session.$bidiHandler.getPosLeft(i.column):Math.round(i.column*this.characterWidth)),o=i.row*this.lineHeight;return{pageX:n.left+r-this.scrollLeft,pageY:n.top+o-this.scrollTop}},e.prototype.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},e.prototype.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},e.prototype.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),null==e.useTextareaForIME&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},e.prototype.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},e.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),r.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},e.prototype.setGhostText=function(e,t){var n=this.session.selection.cursor,i=t||{row:n.row,column:n.column};this.removeGhostText();var o=this.$calculateWrappedTextChunks(e,i);this.addToken(o[0].text,"ghost_text",i.row,i.column),this.$ghostText={text:e,position:{row:i.row,column:i.column}};var s=r.createElement("div");if(o.length>1){var a,l=this.hideTokensAfterPosition(i.row,i.column);o.slice(1).forEach(function(e){var t=r.createElement("div"),n=r.createElement("span");n.className="ace_ghost_text",e.wrapped&&(t.className="ghost_text_line_wrapped"),0===e.text.length&&(e.text=" "),n.appendChild(r.createTextNode(e.text)),t.appendChild(n),s.appendChild(t),a=t}),l.forEach(function(e){var t=r.createElement("span");M(e.type)||(t.className="ace_"+e.type.replace(/\./g," ace_")),t.appendChild(r.createTextNode(e.value)),a.appendChild(t)}),this.$ghostTextWidget={el:s,row:i.row,column:i.column,className:"ace_ghost_text_container"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var c=this.$cursorLayer.getPixelPosition(i,!0),u=this.container.getBoundingClientRect().height,d=o.length*this.lineHeight;if(d<u-c.top)return;d<u?this.scrollBy(0,(o.length-1)*this.lineHeight):this.scrollToRow(i.row)}},e.prototype.$calculateWrappedTextChunks=function(e,t){var n=this.$size.scrollerWidth-2*this.$padding,i=Math.floor(n/this.characterWidth)-2;i=i<=0?60:i;for(var r=e.split(/\r?\n/),o=[],s=0;s<r.length;s++){var a=this.session.$getDisplayTokens(r[s],t.column),l=this.session.$computeWrapSplits(a,i,this.session.$tabSize);if(l.length>0){var c=0;l.push(r[s].length);for(var u=0;u<l.length;u++){var d=r[s].slice(c,l[u]);o.push({text:d,wrapped:!0}),c=l[u]}}else o.push({text:r[s],wrapped:!1})}return o},e.prototype.removeGhostText=function(){if(this.$ghostText){var e=this.$ghostText.position;this.removeExtraToken(e.row,e.column),this.$ghostTextWidget&&(this.session.widgetManager.removeLineWidget(this.$ghostTextWidget),this.$ghostTextWidget=null),this.$ghostText=null}},e.prototype.addToken=function(e,t,n,i){var r=this.session;r.bgTokenizer.lines[n]=null;var o={type:t,value:e},s=r.getTokens(n);if(null!=i&&s.length)for(var a=0,l=0;l<s.length;l++){var c=s[l];if(i<=(a+=c.value.length)){var u=c.value.length-(a-i),d=c.value.slice(0,u),h=c.value.slice(u);s.splice(l,1,{type:c.type,value:d},o,{type:c.type,value:h});break}}else s.push(o);this.updateLines(n,n)},e.prototype.hideTokensAfterPosition=function(e,t){for(var n=this.session.getTokens(e),i=0,r=!1,o=[],s=0;s<n.length;s++){var a=n[s];i+=a.value.length,"ghost_text"!==a.type&&(r?(o.push({type:a.type,value:a.value}),a.type="hidden_token"):i===t&&(r=!0))}return this.updateLines(e,e),o},e.prototype.removeExtraToken=function(e,t){this.session.bgTokenizer.lines[e]=null,this.updateLines(e,e)},e.prototype.setTheme=function(e,t){var n=this;if(this.$themeId=e,n._dispatchEvent("themeChange",{theme:e}),e&&"string"!=typeof e)o(e);else{var i=e||this.$options.theme.initialValue;s.loadModule(["theme",i],o)}function o(i){if(n.$themeId!=e)return t&&t();if(!i||!i.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");i.$id&&(n.$themeId=i.$id),r.importCssString(i.cssText,i.cssClass,n.container),n.theme&&r.removeCssClass(n.container,n.theme.cssClass);var o="padding"in i?i.padding:"padding"in(n.theme||{})?4:n.$padding;if(n.$padding&&o!=n.$padding&&n.setPadding(o),n.$gutterLayer){var s=i.$showGutterCursorMarker;s&&!n.$gutterLayer.$showCursorMarker?n.$gutterLayer.$showCursorMarker="theme":s||"theme"!=n.$gutterLayer.$showCursorMarker||(n.$gutterLayer.$showCursorMarker=null)}n.$theme=i.cssClass,n.theme=i,r.addCssClass(n.container,i.cssClass),r.setCssClass(n.container,"ace_dark",i.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:i}),t&&t(),v.isSafari&&n.scroller&&(n.scroller.style.background="red",n.scroller.style.background="")}},e.prototype.getTheme=function(){return this.$themeId},e.prototype.setStyle=function(e,t){r.setCssClass(this.container,e,!1!==t)},e.prototype.unsetStyle=function(e){r.removeCssClass(this.container,e)},e.prototype.setCursorStyle=function(e){r.setStyle(this.scroller.style,"cursor",e)},e.prototype.setMouseCursor=function(e){r.setStyle(this.scroller.style,"cursor",e)},e.prototype.attachToShadowRoot=function(){r.importCssString(w,"ace_editor.css",this.container)},e.prototype.destroy=function(){this.freeze(),this.$fontMetrics.destroy(),this.$cursorLayer.destroy(),this.removeAllListeners(),this.container.textContent="",this.setOption("useResizeObserver",!1)},e.prototype.$updateCustomScrollbar=function(e){var t=this;this.$horizScroll=this.$vScroll=null,this.scrollBarV.element.remove(),this.scrollBarH.element.remove(),!0===e?(this.scrollBarV=new f(this.container,this),this.scrollBarH=new p(this.container,this),this.scrollBarV.setHeight(this.$size.scrollerHeight),this.scrollBarH.setWidth(this.$size.scrollerWidth),this.scrollBarV.addEventListener("scroll",function(e){t.$scrollAnimation||t.session.setScrollTop(e.data-t.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){t.$scrollAnimation||t.session.setScrollLeft(e.data-t.scrollMargin.left)}),this.$scrollDecorator?(this.$scrollDecorator.setScrollBarV(this.scrollBarV),this.$scrollDecorator.$updateDecorators()):(this.$scrollDecorator=new b(this.scrollBarV,this),this.$scrollDecorator.$updateDecorators())):(this.scrollBarV=new h(this.container,this),this.scrollBarH=new d(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){t.$scrollAnimation||t.session.setScrollTop(e.data-t.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){t.$scrollAnimation||t.session.setScrollLeft(e.data-t.scrollMargin.left)}))},e.prototype.$addResizeObserver=function(){if(window.ResizeObserver&&!this.$resizeObserver){var e=this;this.$resizeTimer=o.delayedCall(function(){e.destroyed||e.onResize()},50),this.$resizeObserver=new window.ResizeObserver(function(t){var n=t[0].contentRect.width,i=t[0].contentRect.height;Math.abs(e.$size.width-n)>1||Math.abs(e.$size.height-i)>1?e.$resizeTimer.delay():e.$resizeTimer.cancel()}),this.$resizeObserver.observe(this.container)}},e}();x.prototype.CHANGE_CURSOR=1,x.prototype.CHANGE_MARKER=2,x.prototype.CHANGE_GUTTER=4,x.prototype.CHANGE_SCROLL=8,x.prototype.CHANGE_LINES=16,x.prototype.CHANGE_TEXT=32,x.prototype.CHANGE_SIZE=64,x.prototype.CHANGE_MARKER_BACK=128,x.prototype.CHANGE_MARKER_FRONT=256,x.prototype.CHANGE_FULL=512,x.prototype.CHANGE_H_SCROLL=1024,x.prototype.$changes=0,x.prototype.$padding=null,x.prototype.$frozen=!1,x.prototype.STEPS=8,i.implement(x.prototype,y),s.defineOptions(x.prototype,"renderer",{useResizeObserver:{set:function(e){!e&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):e&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(e){this.$gutterLayer.$useSvgGutterIcons=e},initialValue:!1},showFoldedAnnotations:{set:function(e){this.$gutterLayer.$showFoldedAnnotations=e},initialValue:!1},fadeFoldWidgets:{set:function(e){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(e){1==this.$textLayer.setHighlightIndentGuides(e)?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(e){this.$updateCustomScrollbar(e)},initialValue:!1},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!v.isMobile&&!v.isIE}}),t.VirtualRenderer=x}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";var i=e("../lib/oop"),r=e("../lib/net"),o=e("../lib/event_emitter").EventEmitter,s=e("../config");function a(e){if("undefined"==typeof Worker)return{postMessage:function(){},terminate:function(){}};if(s.get("loadWorkerFromBlob")){var t=function(e){var t="importScripts('"+r.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(e){var n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder);return n.append(t),n.getBlob("application/javascript")}}(e),n=(window.URL||window.webkitURL).createObjectURL(t);return new Worker(n)}return new Worker(e)}var l=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){i.implement(this,o),this.$createWorkerFromOldConfig=function(t,n,i,r,o){if(e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),s.get("packaged")||!e.toUrl)r=r||s.moduleUrl(n,"worker");else{var l=this.$normalizePath;r=r||l(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach(function(t){c[t]=l(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=a(r),o&&this.send("importScripts",o),this.$worker.postMessage({init:!0,tlns:c,module:n,classname:i}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return r.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(e){e.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var i=this.callbackId++;this.callbacks[i]=n,t.push(i)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker&&this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener,!0)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(l.prototype);t.UIWorkerClient=function(e,t,n){var i=null,r=!1,a=Object.create(o),c=[],u=new l({messageBuffer:c,terminate:function(){},postMessage:function(e){c.push(e),i&&(r?setTimeout(d):d())}});u.setEmitSync=function(e){r=e};var d=function(){var e=c.shift();e.command?i[e.command].apply(i,e.args):e.event&&a._signal(e.event,e.data)};return a.postMessage=function(e){u.onMessage({data:e})},a.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},a.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},s.loadModule(["worker",t],function(e){for(i=new e[n](a);c.length;)d()}),u},t.WorkerClient=l,t.createWorker=a}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){"use strict";var i=e("./range").Range,r=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),s=function(){function e(e,t,n,i,r,o){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=r,this.othersClass=o,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=i,this.$onCursorChange=function(){setTimeout(function(){s.onCursorChange()})},this.$pos=n;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return e.prototype.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var r=this.pos;r.$insertRight=!0,r.detach(),r.markerId=n.addMarker(new i(r.row,r.column,r.row,r.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var i=t.createAnchor(n.row,n.column);i.$insertRight=!0,i.detach(),e.others.push(i)}),n.setUndoSelect(!1)},e.prototype.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new i(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})}},e.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e<this.others.length;e++)this.session.removeMarker(this.others[e].markerId)}},e.prototype.onUpdate=function(e){if(this.$updating)return this.updateAnchors(e);var t=e;if(t.start.row===t.end.row&&t.start.row===this.pos.row){this.$updating=!0;var n="insert"===e.action?t.end.column-t.start.column:t.start.column-t.end.column,r=t.start.column>=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),r&&(this.length+=n),r&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a={row:(l=this.others[s]).row,column:l.column+o};this.doc.insertMergedLines(a,e.lines)}else if("remove"===e.action)for(s=this.others.length-1;s>=0;s--){var l;a={row:(l=this.others[s]).row,column:l.column+o};this.doc.remove(new i(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()}},e.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},e.prototype.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,n=function(n,r){t.removeMarker(n.markerId),n.markerId=t.addMarker(new i(n.row,n.column,n.row,n.column+e.length),r,null,!1)};n(this.pos,this.mainClass);for(var r=this.others.length;r--;)n(this.others[r],this.othersClass)}},e.prototype.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},e.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},e.prototype.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,n=0;n<t;n++)e.undo(this.session,!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}},e}();o.implement(s.prototype,r),t.PlaceHolder=s}),ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){var i=e("../lib/event"),r=e("../lib/useragent");function o(e,t){return e.row==t.row&&e.column==t.column}t.onMouseDown=function(e){var t=e.domEvent,n=t.altKey,s=t.shiftKey,a=t.ctrlKey,l=e.getAccelKey(),c=e.getButton();if(a&&r.isMac&&(c=t.button),e.editor.inMultiSelectMode&&2==c)e.editor.textInput.onContextMenu(e.domEvent);else if(a||n||l){if(0===c){var u,d=e.editor,h=d.selection,p=d.inMultiSelectMode,f=e.getDocumentPosition(),g=h.getCursor(),m=e.inSelection()||h.isEmpty()&&o(f,g),y=e.x,w=e.y,b=d.session,v=d.renderer.pixelToScreenCoordinates(y,w),M=v;if(d.$mouseHandler.$enableJumpToDef)a&&n||l&&n?u=s?"block":"add":n&&d.$blockSelectEnabled&&(u="block");else if(l&&!n){if(u="add",!p&&s)return}else n&&d.$blockSelectEnabled&&(u="block");if(u&&r.isMac&&t.ctrlKey&&d.$mouseHandler.cancelContextMenu(),"add"==u){if(!p&&m)return;if(!p){var x=h.toOrientedRange();d.addSelectionMarker(x)}var L=h.rangeList.rangeAtPoint(f);d.inVirtualSelectionMode=!0,s&&(L=null,x=h.ranges[0]||x,d.removeSelectionMarker(x)),d.once("mouseup",function(){var e=h.toOrientedRange();L&&e.isEmpty()&&o(L.cursor,e.cursor)?h.substractPoint(e.cursor):(s?h.substractPoint(x.cursor):x&&(d.removeSelectionMarker(x),h.addRange(x)),h.addRange(e)),d.inVirtualSelectionMode=!1})}else if("block"==u){var _;e.stop(),d.inVirtualSelectionMode=!0;var N=[],S=function(){var e=d.renderer.pixelToScreenCoordinates(y,w),t=b.screenToDocumentPosition(e.row,e.column,e.offsetX);o(M,e)&&o(t,h.lead)||(M=e,d.selection.moveToPosition(t),d.renderer.scrollCursorIntoView(),d.removeSelectionMarkers(N),N=h.rectangularRangeBlock(M,v),d.$mouseHandler.$clickSelection&&1==N.length&&N[0].isEmpty()&&(N[0]=d.$mouseHandler.$clickSelection.clone()),N.forEach(d.addSelectionMarker,d),d.updateSelectionMarkers())};p&&!l?h.toSingleRange():!p&&l&&(_=h.toOrientedRange(),d.addSelectionMarker(_)),s?v=b.documentToScreenPosition(h.lead):h.moveToPosition(f),M={row:-1,column:-1};var C=S;i.capture(d.container,function(e){y=e.clientX,w=e.clientY},function(e){S(),clearInterval(T),d.removeSelectionMarkers(N),N.length||(N=[h.toOrientedRange()]),_&&(d.removeSelectionMarker(_),h.toSingleRange(_));for(var t=0;t<N.length;t++)h.addRange(N[t]);d.inVirtualSelectionMode=!1,d.$mouseHandler.$clickSelection=null});var T=setInterval(function(){C()},20);return e.preventDefault()}}}else 0===c&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode()}}),ace.define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(e,t,n){t.defaultCommands=[{name:"addCursorAbove",description:"Add cursor above",exec:function(e){e.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelow",description:"Add cursor below",exec:function(e){e.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorAboveSkipCurrent",description:"Add cursor above (skip current)",exec:function(e){e.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelowSkipCurrent",description:"Add cursor below (skip current)",exec:function(e){e.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreBefore",description:"Select more before",exec:function(e){e.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreAfter",description:"Select more after",exec:function(e){e.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextBefore",description:"Select next before",exec:function(e){e.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextAfter",description:"Select next after",exec:function(e){e.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"toggleSplitSelectionIntoLines",description:"Split selection into lines",exec:function(e){e.multiSelect.rangeCount>1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var i=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new i(t.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(e,t,n){var i=e("./range_list").RangeList,r=e("./range").Range,o=e("./selection").Selection,s=e("./mouse/multi_select_handler").onMouseDown,a=e("./lib/event"),l=e("./lib/lang"),c=e("./commands/multi_select_commands");t.commands=c.defaultCommands.concat(c.multiSelectCommands);var u=new(0,e("./search").Search);var d=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(d.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(e){if(!this.inMultiSelectMode&&0===this.rangeCount){var n=this.toOrientedRange();if(this.rangeList.add(n),this.rangeList.add(e),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var i=this.rangeList.add(e);return this.$onAddRange(e),i.length&&this.$onRemoveRange(i),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var i=this.ranges.indexOf(e[n]);this.ranges.splice(i,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new i,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var e=this.ranges.length?this.ranges:[this.getRange()],t=[],n=0;n<e.length;n++){var i=e[n],o=i.start.row,s=i.end.row;if(o===s)t.push(i.clone());else{for(t.push(new r(o,i.start.column,o,this.session.getLine(o).length));++o<s;)t.push(this.getLineRange(o,!0));t.push(new r(s,0,s,i.end.column))}0!=n||this.isBackwards()||(t=t.reverse())}this.toSingleRange();for(n=t.length;n--;)this.addRange(t[n])},this.joinSelections=function(){var e=this.rangeList.ranges,t=e[e.length-1],n=r.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)},this.toggleBlockSelection=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=r.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var i=this.session.documentToScreenPosition(this.cursor),o=this.session.documentToScreenPosition(this.anchor);this.rectangularRangeBlock(i,o).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var i=[],o=e.column<t.column;if(o)var s=e.column,a=t.column,l=e.offsetX,c=t.offsetX;else s=t.column,a=e.column,l=t.offsetX,c=e.offsetX;var u,d=e.row<t.row;if(d)var h=e.row,f=t.row;else h=t.row,f=e.row;s<0&&(s=0),h<0&&(h=0),h==f&&(n=!0);for(var g=h;g<=f;g++){var m=r.fromPoints(this.session.screenToDocumentPosition(g,s,l),this.session.screenToDocumentPosition(g,a,c));if(m.isEmpty()){if(u&&p(m.end,u))break;u=m.end}m.cursor=o?m.start:m.end,i.push(m)}if(d&&i.reverse(),!n){for(var y=i.length-1;i[y].isEmpty()&&y>0;)y--;if(y>0)for(var w=0;i[w].isEmpty();)w++;for(var b=y;b>=w;b--)i[b].isEmpty()&&i.splice(b,1)}return i}}.call(o.prototype);var h=e("./editor").Editor;function p(e,t){return e.row==t.row&&e.column==t.column}function f(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",s),e.commands.addCommands(c.defaultCommands),function(e){if(!e.textInput)return;var t=e.textInput.getElement(),n=!1;function i(t){n&&(e.renderer.setMouseCursor(""),n=!1)}a.addListener(t,"keydown",function(t){var r=18==t.keyCode&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&r?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&i()},e),a.addListener(t,"keyup",i,e),a.addListener(t,"blur",i,e)}(e))}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,n=e.length;n--;){var i=e[n];if(i.marker){this.session.removeMarker(i.marker);var r=t.indexOf(i);-1!=r&&t.splice(r,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(c.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(c.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(n.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?i=n.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?i=n.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(n.exitMultiSelectMode(),i=t.exec(n,e.args||{})):i=t.multiSelectAction(n,e.args||{});else{var i=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}return i}},this.forEachSelection=function(e,t,n){if(!this.inVirtualSelectionMode){var i,r=n&&n.keepOrder,s=1==n||n&&n.$byLines,a=this.session,l=this.selection,c=l.rangeList,u=(r?l:c).ranges;if(!u.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var d=l._eventRegistry;l._eventRegistry={};var h=new o(a);this.inVirtualSelectionMode=!0;for(var p=u.length;p--;){if(s)for(;p>0&&u[p].start.row==u[p-1].end.row;)p--;h.fromOrientedRange(u[p]),h.index=p,this.selection=a.selection=h;var f=e.exec?e.exec(this,t||{}):e(this,t||{});i||void 0===f||(i=f),h.toOrientedRange(u[p])}h.detach(),this.selection=a.selection=l,this.inVirtualSelectionMode=!1,l._eventRegistry=d,l.mergeOverlappingRanges(),l.ranges[0]&&l.fromOrientedRange(l.ranges[0]);var g=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),g&&g.from==g.to&&this.renderer.animateScrolling(g.from),i}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,n=[],i=0;i<t.length;i++)n.push(this.session.getTextRange(t[i]));var r=this.session.getDocument().getNewLineCharacter();(e=n.join(r)).length==(n.length-1)*r.length&&(e="")}else this.selection.isEmpty()||(e=this.session.getTextRange(this.getSelectionRange()));return e},this.$checkMultiselectChange=function(e,t){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var n=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&t==this.multiSelect.anchor)return;var i=t==this.multiSelect.anchor?n.cursor==n.start?n.end:n.start:n.cursor;i.row!=t.row||this.session.$clipPositionToDocument(i.row,i.column).column!=t.column?this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange()):this.multiSelect.mergeOverlappingRanges()}},this.findAll=function(e,t,n){if((t=t||{}).needle=e||t.needle,null==t.needle){var i=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();t.needle=this.session.getTextRange(i)}this.$search.set(t);var r=this.$search.findAll(this.session);if(!r.length)return 0;var o=this.multiSelect;n||o.toSingleRange(r[0]);for(var s=r.length;s--;)o.addRange(r[s],!0);return i&&o.rangeList.rangeAtPoint(i.start)&&o.addRange(i,!0),r.length},this.selectMoreLines=function(e,t){var n=this.selection.toOrientedRange(),i=n.cursor==n.end,o=this.session.documentToScreenPosition(n.cursor);this.selection.$desiredColumn&&(o.column=this.selection.$desiredColumn);var s,a=this.session.screenToDocumentPosition(o.row+e,o.column);if(n.isEmpty())c=a;else var l=this.session.documentToScreenPosition(i?n.end:n.start),c=this.session.screenToDocumentPosition(l.row+e,l.column);i?(s=r.fromPoints(a,c)).cursor=s.start:(s=r.fromPoints(c,a)).cursor=s.end;if(s.desiredColumn=o.column,this.selection.inMultiSelectMode){if(t)var u=n.cursor}else this.selection.addRange(n);this.selection.addRange(s),u&&this.selection.substractPoint(u)},this.transposeSelections=function(e){for(var t=this.session,n=t.multiSelect,i=n.ranges,r=i.length;r--;){if((a=i[r]).isEmpty()){var o=t.getWordRange(a.start.row,a.start.column);a.start.row=o.start.row,a.start.column=o.start.column,a.end.row=o.end.row,a.end.column=o.end.column}}n.mergeOverlappingRanges();var s=[];for(r=i.length;r--;){var a=i[r];s.unshift(t.getTextRange(a))}e<0?s.unshift(s.pop()):s.push(s.shift());for(r=i.length;r--;){var l=(a=i[r]).clone();t.replace(a,s[r]),a.start.row=l.start.row,a.start.column=l.start.column}n.fromOrientedRange(n.ranges[0])},this.selectMore=function(e,t,n){var i=this.session,r=i.multiSelect.toOrientedRange();if(!r.isEmpty()||((r=i.getWordRange(r.start.row,r.start.column)).cursor=-1==e?r.start:r.end,this.multiSelect.addRange(r),!n)){var o=i.getTextRange(r),s=function(e,t,n){return u.$options.wrap=!0,u.$options.needle=t,u.$options.backwards=-1==n,u.find(e)}(i,o,e);s&&(s.cursor=-1==e?s.start:s.end,this.session.unfold(s),this.multiSelect.addRange(s),this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(r.cursor)}},this.alignCursors=function(){var e=this.session,t=e.multiSelect,n=t.ranges,i=-1,o=n.filter(function(e){if(e.cursor.row==i)return!0;i=e.cursor.row});if(n.length&&o.length!=n.length-1){o.forEach(function(e){t.substractPoint(e.cursor)});var s=0,a=1/0,c=n.map(function(t){var n=t.cursor,i=e.getLine(n.row).substr(n.column).search(/\S/g);return-1==i&&(i=0),n.column>s&&(s=n.column),i<a&&(a=i),i});n.forEach(function(t,n){var i=t.cursor,o=s-i.column,u=c[n]-a;o>u?e.insert(i,l.stringRepeat(" ",o-u)):e.remove(new r(i.row,i.column,i.row,i.column-o+u)),t.start.column=t.end.column=s,t.start.row=t.end.row=i.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var u=this.selection.getRange(),d=u.start.row,h=u.end.row,p=d==h;if(p){var f,g=this.session.getLength();do{f=this.session.getLine(h)}while(/[=:]/.test(f)&&++h<g);do{f=this.session.getLine(d)}while(/[=:]/.test(f)&&--d>0);d<0&&(d=0),h>=g&&(h=g-1)}var m=this.session.removeFullLines(d,h);m=this.$reAlignText(m,p),this.session.insert({row:d,column:0},m.join("\n")+"\n"),p||(u.start.column=0,u.end.column=m[m.length-1].length),this.selection.setRange(u)}},this.$reAlignText=function(e,t){var n,i,r,o=!0,s=!0;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==n?(n=t[1].length,i=t[2].length,r=t[3].length,t):(n+i+r!=t[1].length+t[2].length+t[3].length&&(s=!1),n!=t[1].length&&(o=!1),n>t[1].length&&(n=t[1].length),i<t[2].length&&(i=t[2].length),r>t[3].length&&(r=t[3].length),t):[e]}).map(t?c:o?s?function(e){return e[2]?a(n+i-e[2].length)+e[2]+a(r)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:c:function(e){return e[2]?a(n)+e[2]+a(r)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]});function a(e){return l.stringRepeat(" ",e)}function c(e){return e[2]?a(n)+e[2]+a(i-e[2].length+r)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}}}).call(h.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=f,e("./config").defineOptions(h.prototype,"editor",{enableMultiselect:{set:function(e){f(this),e?this.on("mousedown",s):this.off("mousedown",s)},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){"use strict";var i=e("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var i=e.getLine(n);return this.foldingStartMarker.test(i)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(i)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var r=/\S/,o=e.getLine(t),s=o.search(r);if(-1!=s){for(var a=n||o.length,l=e.getLength(),c=t,u=t;++t<l;){var d=e.getLine(t).search(r);if(-1!=d){if(d<=s){var h=e.getTokenAt(t,0);if(!h||"string"!==h.type)break}u=t}}if(u>c){var p=e.getLine(u).length;return new i(c,a,u,p)}}},this.openingBracketBlock=function(e,t,n,r,o){var s={row:n,column:r+1},a=e.$findClosingBracket(t,s,o);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),i.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,n,r,o){var s={row:n,column:r},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,i.fromPoints(a,s)}}).call(r.prototype)}),ace.define("ace/ext/error_marker",["require","exports","module","ace/lib/dom","ace/range","ace/config"],function(e,t,n){"use strict";var i=e("../lib/dom"),r=e("../range").Range,o=e("../config").nls;t.showErrorMarker=function(e,t){var n=e.session,s=e.getCursorPosition(),a=s.row,l=n.widgetManager.getWidgetsAtRow(a).filter(function(e){return"errorMarker"==e.type})[0];l?l.destroy():a-=t;var c,u=function(e,t,n){var i=e.getAnnotations().sort(r.comparePoints);if(i.length){var o=function(e,t,n){for(var i=0,r=e.length-1;i<=r;){var o=i+r>>1,s=n(t,e[o]);if(s>0)i=o+1;else{if(!(s<0))return o;r=o-1}}return-(i+1)}(i,{row:t,column:-1},r.comparePoints);o<0&&(o=-o-1),o>=i.length?o=n>0?0:i.length-1:0===o&&n<0&&(o=i.length-1);var s=i[o];if(s&&n){if(s.row===t){do{s=i[o+=n]}while(s&&s.row===t);if(!s)return i.slice()}var a=[];t=s.row;do{a[n<0?"unshift":"push"](s),s=i[o+=n]}while(s&&s.row==t);return a.length&&a}}}(n,a,t);if(u){var d=u[0];s.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,s.row=d.row,c=e.renderer.$gutterLayer.$annotations[s.row]}else{if(l)return;c={displayText:[o("error-marker.good-state","Looks good!")],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},p=h.el.appendChild(i.createElement("div")),f=h.el.appendChild(i.createElement("div"));f.className="error_widget_arrow "+c.className;var g=e.renderer.$cursorLayer.getPixelPosition(s).left;f.style.left=g+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+c.className,c.displayText.forEach(function(e,t){p.appendChild(i.createTextNode(e)),t<c.displayText.length-1&&p.appendChild(i.createElement("br"))}),p.appendChild(i.createElement("div"));var m=function(e,t,n){if(0===t&&("esc"===n||"return"===n))return h.destroy(),{command:"null"}};h.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(m),n.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy))},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},i.importCssString("\n .error_widget_wrapper {\n background: inherit;\n color: inherit;\n border:none\n }\n .error_widget {\n border-top: solid 2px;\n border-bottom: solid 2px;\n margin: 5px 0;\n padding: 10px 40px;\n white-space: pre-wrap;\n }\n .error_widget.ace_error, .error_widget_arrow.ace_error{\n border-color: #ff5a5a\n }\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\n border-color: #F1D817\n }\n .error_widget.ace_info, .error_widget_arrow.ace_info{\n border-color: #5a5a5a\n }\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\n border-color: #5aaa5a\n }\n .error_widget_arrow {\n position: absolute;\n border: solid 5px;\n border-top-color: transparent!important;\n border-right-color: transparent!important;\n border-left-color: transparent!important;\n top: -5px;\n }\n","error_marker.css",!1)}),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],function(e,t,n){"use strict";e("./loader_build")(t);var i=e("./lib/dom"),r=e("./range").Range,o=e("./editor").Editor,s=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,l=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.edit=function(e,n){if("string"==typeof e){var r=e;if(!(e=document.getElementById(r)))throw new Error("ace.edit can't find div #"+r)}if(e&&e.env&&e.env.editor instanceof o)return e.env.editor;var s="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;s=a.value,e=i.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(s=e.textContent,e.innerHTML="");var c=t.createEditSession(s),u=new o(new l(e),c,n),d={document:c,editor:u,onResize:u.resize.bind(u,null)};return a&&(d.textarea=a),u.on("destroy",function(){d.editor.container.env=null}),u.container.env=u.env=d,u},t.createEditSession=function(e,t){var n=new s(e,t);return n.setUndoManager(new a),n},t.Range=r,t.Editor=o,t.EditSession=s,t.UndoManager=a,t.VirtualRenderer=l;var c=t.config.version;t.version=c}),ace.require(["ace/ace"],function(t){t&&(t.config.init(!0),t.define=ace.define);var n=function(){return this}();for(var i in n||"undefined"==typeof window||(n=window),n||"undefined"==typeof self||(n=self),n.ace||(n.ace=t),t)t.hasOwnProperty(i)&&(n.ace[i]=t[i]);n.ace.default=n.ace,e&&(e.exports=n.ace)})},95219(e){!function(){var t=function(e,n){var i=this;t.count=(t.count||0)+1,this.count=t.count,this.isOpened=!1,this.input=r(e),this.input.setAttribute("autocomplete","off"),this.input.setAttribute("aria-autocomplete","list"),this.input.setAttribute("aria-expanded","false"),this.input.setAttribute("aria-controls","awesomplete_list_"+this.count),this.input.setAttribute("aria-owns","awesomplete_list_"+this.count),this.input.setAttribute("role","combobox"),this.options=n=n||{},function(e,t,n){for(var i in t){var r=t[i],o=e.input.getAttribute("data-"+i.toLowerCase());e[i]="number"==typeof r?parseInt(o):!1===r?null!==o:r instanceof Function?null:o,e[i]||0===e[i]||(e[i]=i in n?n[i]:r)}}(this,{minChars:2,maxItems:10,autoFirst:!1,data:t.DATA,filter:t.FILTER_CONTAINS,sort:!1!==n.sort&&t.SORT_BYLENGTH,container:t.CONTAINER,item:t.ITEM,replace:t.REPLACE,tabSelect:!1,listLabel:"Results List",statusNoResults:"No results found",statusXResults:"{0} results found",statusTypeXChar:"Type {0} or more characters for results"},n),this.index=-1,this.container=this.container(e),this.ul=r.create("ul",{hidden:"hidden",role:"listbox",id:"awesomplete_list_"+this.count,inside:this.container,"aria-label":this.listLabel}),this.status=r.create("span",{className:"visually-hidden",role:"status","aria-live":"assertive","aria-atomic":!0,inside:this.container,textContent:""}),this._events={input:{input:this.evaluate.bind(this),blur:this.close.bind(this,{reason:"blur"}),keydown:function(e){var t=e.keyCode;i.opened&&(13===t&&i.selected||9===t&&i.selected&&i.tabSelect?(e.preventDefault(),i.select(void 0,void 0,e)):27===t?i.close({reason:"esc"}):38!==t&&40!==t||(e.preventDefault(),i[38===t?"previous":"next"]()))}},form:{submit:this.close.bind(this,{reason:"submit"})},ul:{mousedown:function(e){e.preventDefault()},click:function(e){var t=e.target;if(t!==this){for(;t&&!/li/i.test(t.nodeName);)t=t.parentNode;t&&0===e.button&&(e.preventDefault(),i.select(t,e.target,e))}}}},r.bind(this.input,this._events.input),r.bind(this.input.form,this._events.form),r.bind(this.ul,this._events.ul),this.input.hasAttribute("list")?(this.list="#"+this.input.getAttribute("list"),this.input.removeAttribute("list")):this.list=this.input.getAttribute("data-list")||n.list||[],t.all.push(this)};function n(e){var t=Array.isArray(e)?{label:e[0],value:e[1]}:"object"==typeof e&&"label"in e&&"value"in e?e:{label:e,value:e};this.label=t.label||t.value,this.value=t.value}t.prototype={set list(e){if(Array.isArray(e))this._list=e;else if("string"==typeof e&&e.indexOf(",")>-1)this._list=e.split(/\s*,\s*/);else if((e=r(e))&&e.children){var t=[];i.apply(e.children).forEach(function(e){if(!e.disabled){var n=e.textContent.trim(),i=e.value||n,r=e.label||n;""!==i&&t.push({label:r,value:i})}}),this._list=t}document.activeElement===this.input&&this.evaluate()},get selected(){return this.index>-1},get opened(){return this.isOpened},close:function(e){this.opened&&(this.input.setAttribute("aria-expanded","false"),this.ul.setAttribute("hidden",""),this.isOpened=!1,this.index=-1,this.status.setAttribute("hidden",""),this.input.setAttribute("aria-activedescendant",""),r.fire(this.input,"awesomplete-close",e||{}))},open:function(){this.input.setAttribute("aria-expanded","true"),this.ul.removeAttribute("hidden"),this.isOpened=!0,this.status.removeAttribute("hidden"),this.autoFirst&&-1===this.index&&this.goto(0),r.fire(this.input,"awesomplete-open")},destroy:function(){if(r.unbind(this.input,this._events.input),r.unbind(this.input.form,this._events.form),!this.options.container){var e=this.container.parentNode;e.insertBefore(this.input,this.container),e.removeChild(this.container)}this.input.removeAttribute("autocomplete"),this.input.removeAttribute("aria-autocomplete"),this.input.removeAttribute("aria-expanded"),this.input.removeAttribute("aria-controls"),this.input.removeAttribute("aria-owns"),this.input.removeAttribute("role");var n=t.all.indexOf(this);-1!==n&&t.all.splice(n,1)},next:function(){var e=this.ul.children.length;this.goto(this.index<e-1?this.index+1:e?0:-1)},previous:function(){var e=this.ul.children.length,t=this.index-1;this.goto(this.selected&&-1!==t?t:e-1)},goto:function(e){var t=this.ul.children;this.selected&&t[this.index].setAttribute("aria-selected","false"),this.index=e,e>-1&&t.length>0&&(t[e].setAttribute("aria-selected","true"),this.input.setAttribute("aria-activedescendant",this.ul.id+"_item_"+this.index),this.ul.scrollTop=t[e].offsetTop-this.ul.clientHeight+t[e].clientHeight,r.fire(this.input,"awesomplete-highlight",{text:this.suggestions[this.index]}))},select:function(e,t,n){if(e?this.index=r.siblingIndex(e):e=this.ul.children[this.index],e){var i=this.suggestions[this.index];r.fire(this.input,"awesomplete-select",{text:i,origin:t||e,originalEvent:n})&&(this.replace(i),this.close({reason:"select"}),r.fire(this.input,"awesomplete-selectcomplete",{text:i,originalEvent:n}))}},evaluate:function(){var e=this,t=this.input.value;t.length>=this.minChars&&this._list&&this._list.length>0?(this.index=-1,this.ul.innerHTML="",this.suggestions=this._list.map(function(i){return new n(e.data(i,t))}).filter(function(n){return e.filter(n,t)}),!1!==this.sort&&(this.suggestions=this.suggestions.sort(this.sort)),this.suggestions=this.suggestions.slice(0,this.maxItems),this.suggestions.forEach(function(n,i){e.ul.appendChild(e.item(n,t,i))}),0===this.ul.children.length?(this.status.textContent=this.statusNoResults,this.close({reason:"nomatches"})):(this.input.setAttribute("aria-activedescendant",""),this.open(),this.status.textContent=this.statusXResults.replaceAll("{0}",this.ul.children.length))):(this.close({reason:"nomatches"}),this.minChar<=1||t.length>=this.minChars?this.status.textContent=this.statusNoResults:this.status.textContent=this.statusTypeXChar.replaceAll("{0}",this.minChars))}},t.all=[],t.FILTER_CONTAINS=function(e,t){return RegExp(r.regExpEscape(t.trim()),"i").test(e)},t.FILTER_STARTSWITH=function(e,t){return RegExp("^"+r.regExpEscape(t.trim()),"i").test(e)},t.SORT_BYLENGTH=function(e,t){return e.length!==t.length?e.length-t.length:e<t?-1:1},t.CONTAINER=function(e){return r.create("div",{className:"awesomplete",around:e})},t.ITEM=function(e,t,n){var i=""===t.trim()?e:e.replace(RegExp(r.regExpEscape(t.trim()),"gi"),"<mark>$&</mark>");return r.create("li",{innerHTML:i,role:"option","aria-selected":"false",tabindex:"-1",id:"awesomplete_list_"+this.count+"_item_"+n})},t.REPLACE=function(e){this.input.value=e.value},t.DATA=function(e){return e},Object.defineProperty(n.prototype=Object.create(String.prototype),"length",{get:function(){return this.label.length}}),n.prototype.toString=n.prototype.valueOf=function(){return""+this.label};var i=Array.prototype.slice;function r(e,t){return"string"==typeof e?(t||document).querySelector(e):e||null}function o(e,t){return i.call((t||document).querySelectorAll(e))}function s(){o("input.awesomplete").forEach(function(e){new t(e)})}r.create=function(e,t){var n=document.createElement(e);for(var i in t){var o=t[i];if("inside"===i)r(o).appendChild(n);else if("around"===i){var s=r(o);s.parentNode.insertBefore(n,s),n.appendChild(s),null!=s.getAttribute("autofocus")&&s.focus()}else i in n?n[i]=o:n.setAttribute(i,o)}return n},r.bind=function(e,t){if(e)for(var n in t){var i=t[n];n.split(/\s+/).forEach(function(t){e.addEventListener(t,i)})}},r.unbind=function(e,t){if(e)for(var n in t){var i=t[n];n.split(/\s+/).forEach(function(t){e.removeEventListener(t,i)})}},r.fire=function(e,t,n){var i=document.createEvent("HTMLEvents");for(var r in i.initEvent(t,!0,!0),n)i[r]=n[r];return e.dispatchEvent(i)},r.regExpEscape=function(e){return e.replace(/[-\\^$*+?.()|[\]{}]/g,"\\$&")},r.siblingIndex=function(e){for(var t=0;e=e.previousElementSibling;t++);return t},"undefined"!=typeof self&&(self.Awesomplete=t),"undefined"!=typeof Document&&("loading"!==document.readyState?s():document.addEventListener("DOMContentLoaded",s)),t.$=r,t.$$=o,e.exports&&(e.exports=t)}()},34251(e,t,n){"use strict";n.d(t,{ik:()=>o,uL:()=>d,zr:()=>h});var i=n(21499),r=n(47022);class o{x;y;filename;size;path;textClick;type;items;item_pre_value;files;dir;call;ok;dockerId;name;extra_data;is_share;share_id;share_token;useSelectedList}const s=new Set(["mp4","webm","flv","mov","m4v","mkv","avi","wmv","swf","mod","mpv","mpeg","asf"]),a=new Set(["tar","zip","gz","tgz","rar"]),l=new Set(["jpg","jpeg","png","gif"]),c=new Set(["db","sqlite","sqlite3"]),u=(new Set(["txt","ts","js"]),new Set(["js","mjs","json","html","htm","css","xml"]));function d(e){const t=i.wr.getFileExtension(e);return"pdf"===t?r.Iw.pdf:c.has(t)?r.Iw.database:"md"==t?r.Iw.md:s.has(t)?r.Iw.video:a.has(t)?r.Iw.uncompress:l.has(t)?r.Iw.image:t===r.Iw.excalidraw||t===r.Iw.draw?r.Iw.excalidraw:t===r.Iw.mind?r.Iw.mind:t===r.Iw.workflow_act?r.Iw.workflow_act:"url"===t?r.Iw.url:r.Iw.unknow}function h(e){const t=i.wr.getFileExtension(e);return u.has(t)}},64694(e,t,n){"use strict";function i(e,t){const n=r(e,t);return null===n||n===e.length-1?e[0]:e[n+1]}function r(e,t){for(let n=0;n<e.length;n++)if(e[n]===t)return n;return null}function o(e,t){const n=r(e,t);return null===n?null:e[n]}function s(e){if(!e)return{};let t,n;for(let i of e)(void 0===t||t<i)&&(t=i),(void 0===n||n>i)&&(n=i);return{max:t,min:n}}function a(e,t){const n=e.indexOf(t),i=[...e];return i.splice(n,1),i}function l(...e){let t="";for(let n=0;n<e.length;n++){let i=e[n];0===n?("/"!==i[0]&&(i="/"+i),"/"!==i[i.length-1]&&(i+="/")):n===e.length-1?"/"!==i[i.list-1]&&-1===i.indexOf(".")&&(i+="/"):("/"===i[0]&&(i=i.slice(1,i.length-1)),"/"!==i[i.length-1]&&(i+="/")),t+=i}return t}function c(e){let t=e.length;for(;t>0&&"/"===e[t-1];)t--;return e.slice(0,t)}function u(...e){const t=e.filter(e=>null!=e&&""!==e).map(e=>String(e));return 0===t.length?"":1===t.length?t[0]:t.map((e,n)=>(0!==n&&(e=function(e){let t=0;for(;t<e.length&&"/"===e[t];)t++;return e.slice(t)}(e)),n!==t.length-1&&(e=c(e)),e)).join("/")}function d(e,t){const n=[];for(const i of t)n.push(e[i]);return n}function h(e,t,n=!0){if(!e||0===e.length)return e;for(let i=0;i<e.length;i++)for(let r=e.length-1;r>i;r--){let i=t?t(e[r]):e[r],o=t?t(e[r-1]):e[r-1],s=e[r];i<o?n&&(e[r]=e[r-1],e[r-1]=s):i>o&&(n||(e[r]=e[r-1],e[r-1]=s))}return e}function p(e,t){if(0===e.length)return null;const n=(i=0,r=e.length,i===r?-1:Math.floor(Math.random()*(r-i))+i);var i,r;return t&&n===t?p(e,t):e[n]}function f(e,t){if(t)for(let n=0;n<e.length;n++)if(t(e[n]))return e.splice(n,1)[0]}n.d(t,{Bd:()=>d,HS:()=>u,I:()=>f,IO:()=>l,Lr:()=>p,P1:()=>a,TI:()=>g,a7:()=>s,di:()=>h,jH:()=>i,kW:()=>o});function g(e,t,n){const i=[...e],[r]=i.splice(t,1);return i.splice(n,0,r),i}},53459(e,t,n){"use strict";n.d(t,{m:()=>i});let i=function(e){return e[e.Success=0]="Success",e[e.Fail=1]="Fail",e[e.AuthFail=2]="AuthFail",e[e.DdnsAuthFail=3]="DdnsAuthFail",e[e.File_Max=4]="File_Max",e[e.PreFile=5]="PreFile",e[e.PROTECT_FILE=6]="PROTECT_FILE",e[e.need_token_share=7]="need_token_share",e}({})},87361(e,t,n){"use strict";n.d(t,["o",0,{file:"/file",aichat:"/aichat",navindex:"/navindex",toolbox:"/toolbox",proxy:"/proxy",info:"/info",ddns:"/ddns",net:"/net",net_proxy:"/net_proxy",setting:"/setting",setting_private_env_setting:"/setting/private_env_setting",share:"/share",share_list_setting_page:"/share_list_setting_page",ai_agent_setting_page:"/ai_agent_setting_page",ai_rebot_setting_page:"/ai_rebot_setting_page",studio_page:"/studio_page",sqlite_query_page:"/sqlite_query_page",sql_preset_setting_page:"/sql_preset_setting_page",gcfg_page:"/gcfg_page",git_page:"/git_page",docker_setting_page:"/docker_setting_page",md_editor_setting_page:"/md_editor_setting_page",md_theme_editor_page:"/md_theme_editor_page","":""}])},21499(e,t,n){"use strict";n.d(t,{A6:()=>p,CB:()=>l,EJ:()=>u,Nr:()=>g,Td:()=>f,Yq:()=>h,bi:()=>s,ed:()=>c,hU:()=>a,kf:()=>m,kr:()=>o,wr:()=>r});var i=n(47022);class r{static trim(e){return e?e.replace(" ",""):""}static trimList(e,t){const n=e[t];return this.trim(n)}static getParam(...e){let t="?",n=!1;if(Array.isArray(e))for(const i of e)i.value&&(n?t+=`&${i.key}=${i.value}`:(t+=`${i.key}=${i.value}`,n=!0));return t}static getFileExtension(e){if(!e)return"";const t=e.split(".");return t.length<2?"":t[t.length-1]}static splitBashCommands(e){if(null==e||"string"!=typeof e)return[];const t=[];let n="",i=!1,r=!1,o=!1;const s=()=>{const e=n.trim();e&&t.push(e),n=""};for(let t=0;t<e.length;t++){const a=e[t];o?(n+=a,o=!1):"\\"!==a?"'"!==a||r?'"'!==a||i?i||r?n+=a:";"!==a?"&"!==a?"|"!==a?n+=a:("|"===e[t+1]&&t++,s()):("&"===e[t+1]&&t++,s()):s():(r=!r,n+=a):(i=!i,n+=a):(n+=a,o=!0)}return s(),t}}function o(e){let t=e.split(".");if(1===t.length)return"";switch(t=t[t.length-1],t){case"java":case"javascript":case"css":case"json":case"python":case"text":case"sh":case"lua":case"html":case"xml":case"yaml":case"tsx":case"sql":return t;case"txt":case"ini":case"env":case"bash":case"log":case"config":case"map":case"out":case"gitignore":case"conf":case"mod":return"text";case"js":return"javascript";case"md":return"markdown";case"py":return"python";case"ts":return"typescript";case"yml":return"yaml";case"cpp":case"h":case"c":case"cc":return"c_cpp";case"excalidraw":return"json";case"go":return"golang";case"proto":return"proto"}return""}function s(e,t){return e.endsWith("/")&&t.startsWith("/")?e.slice(0,-1)+t:e.endsWith("/")||t.startsWith("/")?e+t:e+"/"+t}function a(e=16){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";let n="";for(let i=0;i<e;i++)n+=t.charAt(Math.floor(62*Math.random()));return n}function l(e){return/\s/.test(e)}function c(e){return e?e.trim().split("\\").join("/").split("/").filter(Boolean).join("/"):""}function u(e,t){if(!e||!t)return!1;e=d(e);const n=(t=d(t.trim())).endsWith("/");n&&(t=t.slice(0,-1));const i=t.startsWith("/");i&&(t=t.slice(1));const r=function(e,t,n){let i=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\\\*\\\*/g,"§§DOUBLE_STAR§§").replace(/\\\*/g,"[^/]*").replace(/§§DOUBLE_STAR§§/g,".*");i=n?"^"+i:"(^|/)"+i;i+=t?"(/|$)":"$";return new RegExp(i)}(t,n,i);return r.test(e)}function d(e){return e.replace(/\\/g,"/").replace(/^\/+/,"")}function h(e){if(!e)return;return("number"==typeof e?new Date(e):e).toLocaleString()}function p(e){if(null==e)return;const t=["r","w","x"],n=[256,128,64,32,16,8,4,2,1];let i="";for(let r=0;r<n.length;r++)i+=e&n[r]?t[r%3]:"-";return i}function f(e){for(const t of i.vF)if(e.endsWith(t))return t}function g(e){let t=0xcbf29ce484222325n;for(let n=0;n<e.length;n++)t^=BigInt(e.charCodeAt(n)),t*=1099511628211n;return t.toString(16).padStart(16,"0")}function m(e){if(!e||e<0||!isFinite(e))return"";if(e<1e3)return`${Math.round(e)}ms`;const t=e/1e3,n=parseFloat(t.toFixed(1));if(n<60)return`${n}s`;const i=Math.floor(t/3600),r=Math.floor(t%3600/60),o=Math.floor(t%60);return[i>0?`${i}h`:"",r>0?`${r}min`:"",o>0?`${o}s`:""].filter(Boolean).join(" ")}},88815(e,t,n){"use strict";n.d(t,{a3:()=>a,gw:()=>s,v7:()=>o});const i=1048576,r=1073741824;function o(e){return e||0===e?"number"!=typeof e?e:e<1024?e+" B":e<i?(e/1024).toFixed(2)+" KB":e<r?(e/i).toFixed(2)+" MB":(e/r).toFixed(2)+" GB":""}function s(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function a(e){if(!e)return"";const t=[{label:"y",value:31536e6},{label:"mo",value:2592e6},{label:"d",value:864e5},{label:"h",value:36e5},{label:"min",value:6e4},{label:"s",value:1e3},{label:"ms",value:1}];for(const n of t)if(e>=n.value){const t=e/n.value;return`${parseFloat(t.toFixed(2))} ${n.label}`}return"0 ms"}n.d(t,["o5",0,20971520])},47022(e,t,n){"use strict";n.d(t,{DG:()=>o,Iw:()=>i,d2:()=>l,l:()=>a,nC:()=>r});n(30576);let i=function(e){return e.audio="audio",e.blob="blob",e.database="database",e.image="image",e.pdf="pdf",e.text="text",e.video="video",e.invalid_link="invalid_link",e.folder="folder",e.upload_folder="upload_folder",e.studio_file="studio_file",e.studio_folder="studio_folder",e.directory="directory",e.unknow="text",e.uncompress="uncompress",e.md="md",e.excalidraw="excalidraw",e.draw="draw",e.mind="mind",e.workflow_act="act",e.dev="dev",e.url="url",e}({});class r{source_filename;to_format;to_filename;token}let o=function(e){return e.zip=".zip",e.tar=".tar",e.gz=".gz",e.rar=".rar",e.tar_gz=".tar.gz",e}({});const s=[o.zip,o.tar_gz,o.gz,o.rar,o.tar];class a{format;token;tar_dir;source_file;filePaths;tar_filename;compress_level}class l{path;token;position=0;line=1e3;once_max_size=61440;encoding;back;find_back_enter_index;context;context_list=[];context_start_position_list=[];context_position_list=[];max_size;query_text}n.d(t,["vF",0,s])},92275(e,t,n){"use strict";n.d(t,{HK:()=>l,hF:()=>c,hf:()=>u});var i=n(53459);const r=e=>{const t=new Uint8Array(4);if(null==e)t.set([255,255,255,255]);else{new DataView(t.buffer).setUint32(0,e)}return t},o=e=>{if(null==e){const e=new Uint8Array(4);return new DataView(e.buffer).setUint32(0,4294967295),e}const t=(new TextEncoder).encode(e),n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,t.length),a([n,t])};class s{static VERSION=0;static encode(e){const t=[];return t.push(new Uint8Array([s.VERSION])),t.push(r(e.cmdType)),t.push(o(e.context)),t.push((e=>{if(!e){const e=new Uint8Array(4);return new DataView(e.buffer).setUint32(0,4294967295),e}const t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e.length),a([t,e])})(e.binContext)),t.push(o(e.message)),t.push(r(e.code)),t.push(o(e.randomId)),a(t)}static decode(e){const t=e instanceof Uint8Array?e:new Uint8Array(e);let n=0;const i=()=>{const e=new DataView(t.buffer,t.byteOffset+n,4).getUint32(0);return n+=4,e},r=()=>{const e=i();return 4294967295===e?null:e},o=()=>{const e=i();if(4294967295===e)return null;if(n+e>t.length)throw new RangeError("decodeString 越界");const r=t.slice(n,n+e);return n+=e,(new TextDecoder).decode(r)};if(t[n++]!==s.VERSION)throw new Error("版本号不匹配");return{cmdType:r(),context:o(),binContext:(()=>{const e=i();if(4294967295===e)return null;if(n+e>t.length)throw new RangeError("decodeBin 越界");const r=t.slice(n,n+e);return n+=e,r})(),message:o(),code:r(),randomId:o()}}}function a(e,t){if("number"!=typeof t){t=0;for(let n of e)t+=n.length}const n=new Uint8Array(t);let i=0;for(let t of e)n.set(t,i),i+=t.length;return n}n(47022),n(64405);let l=function(e){return e[e.heart=0]="heart",e[e.sys_get=1]="sys_get",e[e.sys_getting=2]="sys_getting",e[e.sys_cancel=3]="sys_cancel",e[e.shell_open=4]="shell_open",e[e.shell_send=5]="shell_send",e[e.shell_getting=6]="shell_getting",e[e.shell_copy=7]="shell_copy",e[e.docker_get=8]="docker_get",e[e.docker_getting=9]="docker_getting",e[e.docker_shell_logs=10]="docker_shell_logs",e[e.docker_shell_logs_getting=11]="docker_shell_logs_getting",e[e.docker_shell_logs_cancel=12]="docker_shell_logs_cancel",e[e.docker_shell_exec_open=13]="docker_shell_exec_open",e[e.docker_shell_exec=14]="docker_shell_exec",e[e.docker_shell_exec_getting=15]="docker_shell_exec_getting",e[e.docker_shell_exec_cancel=16]="docker_shell_exec_cancel",e[e.docker_switch=17]="docker_switch",e[e.docker_del_container=18]="docker_del_container",e[e.process_get=19]="process_get",e[e.process_getting=20]="process_getting",e[e.process_close=21]="process_close",e[e.systemd_inside_get=22]="systemd_inside_get",e[e.systemd_inside_getting=23]="systemd_inside_getting",e[e.systemd_logs_get=24]="systemd_logs_get",e[e.systemd_logs_getting=25]="systemd_logs_getting",e[e.remote_shell_open=26]="remote_shell_open",e[e.remote_shell_send=27]="remote_shell_send",e[e.remote_shell_getting=28]="remote_shell_getting",e[e.remote_shell_cancel=29]="remote_shell_cancel",e[e.remote_shell_cd=30]="remote_shell_cd",e[e.infos=31]="infos",e[e.connect=32]="connect",e[e.rdp_connect=33]="rdp_connect",e[e.rdp_bitmap=34]="rdp_bitmap",e[e.rdp_close=35]="rdp_close",e[e.rdp_error=36]="rdp_error",e[e.mouse=37]="mouse",e[e.wheel=38]="wheel",e[e.scancode=39]="scancode",e[e.unicode=40]="unicode",e[e.rdp_disconnect=41]="rdp_disconnect",e[e.vir_net_serverIno_get=42]="vir_net_serverIno_get",e[e.vir_net_client_get=43]="vir_net_client_get",e[e.tcp_proxy_client_status=44]="tcp_proxy_client_status",e[e.file_info=45]="file_info",e[e.file_video_trans=46]="file_video_trans",e[e.file_video_trans_progress=47]="file_video_trans_progress",e[e.file_uncompress=48]="file_uncompress",e[e.file_uncompress_progress=49]="file_uncompress_progress",e[e.file_compress=50]="file_compress",e[e.file_compress_progress=51]="file_compress_progress",e[e.file_upload_pre=52]="file_upload_pre",e[e.file_upload=53]="file_upload",e[e.log_viewer=54]="log_viewer",e[e.log_viewer_watch=55]="log_viewer_watch",e[e.log_viewer_watch_cancel=56]="log_viewer_watch_cancel",e[e.search_file=57]="search_file",e[e.search_file_progress=58]="search_file_progress",e[e.search_file_index=59]="search_file_index",e[e.search_file_cancel=60]="search_file_cancel",e[e.file_deep_search=61]="file_deep_search",e[e.file_deep_search_data=62]="file_deep_search_data",e[e.file_deep_search_end=63]="file_deep_search_end",e[e.file_deep_search_cancel=64]="file_deep_search_cancel",e[e.http_download_water=65]="http_download_water",e[e.http_download_cancel=66]="http_download_cancel",e[e.folder_size_info=67]="folder_size_info",e[e.folder_size_info_close=68]="folder_size_info_close",e[e.rtsp_get=69]="rtsp_get",e[e.rtsp_cancel=70]="rtsp_cancel",e[e.workflow_exec=71]="workflow_exec",e[e.workflow_get=72]="workflow_get",e[e.workflow_realtime=73]="workflow_realtime",e[e.workflow_realtime_one_req=74]="workflow_realtime_one_req",e[e.workflow_realtime_one_rsq=75]="workflow_realtime_one_rsq",e[e.workflow_search_by_run_name=76]="workflow_search_by_run_name",e[e.ai_load_info=77]="ai_load_info",e[e.tcp_forward_server_load=78]="tcp_forward_server_load",e[e.ai_confirm_cmd=79]="ai_confirm_cmd",e[e.ai_chat_req=80]="ai_chat_req",e[e.ai_chat_msg=81]="ai_chat_msg",e[e.ai_chat_end=82]="ai_chat_end",e[e.ai_chat_error=83]="ai_chat_error",e[e.ai_chat_abort=84]="ai_chat_abort",e[e.ai_chat_subscribe=85]="ai_chat_subscribe",e[e.ai_bg_process_list_req=86]="ai_bg_process_list_req",e[e.ai_bg_process_list_rsq=87]="ai_bg_process_list_rsq",e[e.ai_bg_process_output_req=88]="ai_bg_process_output_req",e[e.ai_bg_process_output_rsq=89]="ai_bg_process_output_rsq",e[e.ai_bg_process_kill_req=90]="ai_bg_process_kill_req",e[e.ai_bg_process_kill_rsq=91]="ai_bg_process_kill_rsq",e[e.ai_bg_process_count_notify=92]="ai_bg_process_count_notify",e[e.port_scan_req=93]="port_scan_req",e[e.port_scan_progress=94]="port_scan_progress",e[e.port_scan_result=95]="port_scan_result",e[e.port_scan_end=96]="port_scan_end",e[e.port_scan_cancel=97]="port_scan_cancel",e[e.mcp_reload=98]="mcp_reload",e[e.mcp_status=99]="mcp_status",e}({}),c=function(e){return e[e.data=0]="data",e[e.other=1]="other",e}({});class u{cmdType;context;bin_context;wss;client_wss;code;message;random_id;constructor(e,t,n,r){this.cmdType=e,this.context=t,this.bin_context=n,this.code=i.m.Success,this.random_id=r}encode(){return s.encode({cmdType:this.cmdType,context:this.context?JSON.stringify(this.context):null,code:this.code,message:this.message,binContext:this.bin_context,randomId:this.random_id})}static decode(e){const t=s.decode(e);let n=t.context;if("string"==typeof n&&n)try{n=JSON.parse(n)}catch(e){console.log(e),n=t.context}const i=new u(t.cmdType,n,t.binContext);return i.code=t.code,i.message=t.message,i.random_id=t.randomId,i}}},76559(e,t,n){"use strict";n.d(t,{I:()=>c});var i=n(92275),r=n(53459),o=n(62042);class s{_events={};on(e,t){return this._events[e]||(this._events[e]=[]),this._events[e].push(t),this}once(e,t){const n=(...i)=>{t(...i),this.off(e,n)};return this.on(e,n)}off(e,t){const n=this._events[e];return n?(this._events[e]=n.filter(e=>e!==t),this):this}off_all(e){return delete this._events[e],this}emit(e,...t){const n=this._events[e];return!(!n||0===n.length)&&([...n].forEach(n=>{try{n(...t)}catch(t){console.error(`Error in listener for event "${e}":`,t)}}),!0)}}new Map;function a(e=16){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";let n="";for(let i=0;i<e;i++)n+=t.charAt(Math.floor(62*Math.random()));return n}const l="https:"===window.location.protocol?"wss:":"ws:";class c{name;_socket;_url;_msg_event=new s;_msgResolveMap=new Map;_msgResolveTimeoutMap=new Map;_heart_interval;constructor(e,t){this._url=e,this.name=t}async connect(){return new Promise(async(e,t)=>{if(this._socket)return void e(!0);if(this._socket?.readyState===WebSocket.OPEN)return e(!0);this._socket=new WebSocket(`${l}//${this._url}?token=${localStorage.getItem("token")}&type=${i.hF.data}`),this._socket.binaryType="arraybuffer",this._socket.addEventListener("open",()=>{e(!0),this.start_heart_interval()});const n=e=>{const t=i.hf.decode(e);t.client_wss=this._socket,t.code===r.m.Fail&&(0,o.zN)(t.message),this._msgResolveMap.has(t.random_id)&&(clearTimeout(this._msgResolveTimeoutMap.get(t.random_id)),this._msgResolveTimeoutMap.delete(t.random_id),this._msgResolveMap.get(t.random_id)(t),this._msgResolveMap.delete(t.random_id)),this.emit_message("message",t),this.emit_message(`message_${t.cmdType}`,t)};this._socket.addEventListener("message",async e=>{try{let t=e.data;t instanceof Blob?(t=await t.arrayBuffer(),t=new Uint8Array(t)):t instanceof ArrayBuffer&&(t=new Uint8Array(t)),n(t)}catch(e){console.error("WS 消息错误",e?.message??e)}}),this._socket.addEventListener("close",e=>{console.log(`WS 已断开: ${this._url}`,e.code,e.reason),this._socket=null,this.emit_message("close"),this.stop_heart_interval()}),this._socket.addEventListener("error",e=>{console.error("WS 错误",e)})})}start_heart_interval(){this._heart_interval=setInterval(()=>{this.sendData(i.HK.heart,{})},601e3)}stop_heart_interval(){clearInterval(this._heart_interval)}async sendData(e,t,n){const r=new i.hf(e);return r.context=t,n&&(r.random_id=a(9)),this.send(r)}async send(e){return this._socket||await this.connect(),this._socket.readyState!==WebSocket.OPEN&&await new Promise((e,t)=>{const n=setTimeout(()=>t(new Error("WS 连接超时")),5e3),i=()=>{clearTimeout(n),this._socket.removeEventListener("open",i),e()};this._socket.addEventListener("open",i)}),new Promise((t,n)=>{try{e.random_id=a(9);const i=e.random_id,r=setTimeout(()=>{n(!1),console.info("ws超时",e.cmdType),this._msgResolveMap.delete(i)},6e3);this._msgResolveMap.set(i,t),this._msgResolveTimeoutMap.set(i,r),this._socket.send(e.encode())}catch(e){n(e)}})}subscribeUnconnect(e){this.on_message("close",e)}async close(){this._socket&&(this._socket.close(),this._socket=null,this.stop_heart_interval())}async addMsg(e,t){await this.connect(),this.on_message(`message_${e}`,t)}removeMsg(e){this._msg_event.off_all(`message_${e}`)}on_message(e,t){this._msg_event.on(e,t)}on_once_message(e,t){this._msg_event.once(e,t)}off_message(e,t){this._msg_event.off(e,t)}emit_message(e,...t){this._msg_event.emit(e,...t)}static getOtherWebSocket(e){return new WebSocket(`${l}//${window.location.host+window.location.pathname}?token=${localStorage.getItem("token")}&type=${i.hF.other}&code=${e}`)}static getOtherWebSocketUrl(e,t){let n=`${l}//${window.location.host+window.location.pathname}?token=${localStorage.getItem("token")}&type=${i.hF.other}&code=${e}`;for(const e of Object.keys(t))n+=`&${e}=${encodeURIComponent(t[e])}`;return n}}},7463(e,t,n){"use strict";function i(e,t=200){let n=null;return function(...i){clearTimeout(n),n=setTimeout(()=>{e.apply(this,i)},t)}}function r(e,t=200){let n=0;return function(...i){const r=Date.now();r-n>=t&&(n=r,e.apply(this,i))}}n.d(t,{nF:()=>r,sg:()=>i})},18840(e,t,n){"use strict";n.d(t,{I:()=>i,gE:()=>r});class i{open;key;option_keys;port}class r{client_name;client_num_id;open=!1;serverIp;serverPort;key="";note;status;is_new;index}n.d(t,["FG",0,{content_max_width:"70%",content_padding:"4%",font_size:"16px",line_height:"1.8",theme:"",auto_save_interval:5},"mo",0,"\nnode_modules\n.venv\n.gradle\n.cache\nvendor\n"])},47071(e,t,n){"use strict";n.d(t,{Nd:()=>s,PU:()=>u,Xj:()=>i,Yn:()=>r,_:()=>l,du:()=>c,rl:()=>o,v3:()=>a});let i=function(e){return e[e.start=0]="start",e[e.stop=1]="stop",e}({});class r{path;run_type;inputs}let o=function(e){return e[e.not=0]="not",e[e.running=1]="running",e[e.success=2]="success",e[e.fail=3]="fail",e}({});class s{dir_path}class a{filename_path}class l{dir_path;page_size;page_num;index;search_name}class c{is_dir;file_path;file_full_path;chunk_index;total_chunk_index;lastModified;part_count;total_part_size;size;parallel_done_num}class u{path;note;left_hour;time_stamp;token;id;is_dir;show_left_hour;download_num}n.d(t,["SB",0,".filecat_work_flows"])},23496(e,t,n){"use strict";n.d(t,{s:()=>i});let i=function(e){return e.setting_sys_option_status_save="sys_option/status/save",e.setting_customer_router="customer_router",e.setting_customer_router_save="customer_router/save",e.setting_customer_workflow_router="customer_router/workflow",e.setting_customer_workflow_router_save="customer_router/workflow/save",e.user_save_private_attr="user_save_private_attr",e.browser_proxy_port_list="list",e.browser_proxy_port_add="add",e.browser_proxy_port_remove="remove",e.browser_proxy_port_update="update",e.browser_proxy_port_set_enabled="set_enabled",e}({})},74777(e,t,n){"use strict";n.d(t,{CH:()=>s,Gd:()=>r,Mm:()=>a,Mu:()=>l,aM:()=>i,jk:()=>o});let i=function(e){return e[e.close=0]="close",e[e.length=1]="length",e[e.forver=2]="forver",e}({});class r{mode;length;persist}let o=function(e){return e.ffmpeg="ffmpeg",e.smartmontools="smartctl",e.ufw="ufw",e}({});class s{open=!1;cert_path="";key_path=""}class a{open=!1;version_check_url="https://registry.npmjs.org";exe_download_url="";check_interval_seconds=180}let l=function(e){return e[e.auth=0]="auth",e[e.cmd=1]="cmd",e[e.cyc=2]="cyc",e[e.sys_env=3]="sys_env",e[e.private_sys_env=4]="private_sys_env",e[e.https=5]="https",e[e.auto_upgrade=6]="auto_upgrade",e}({})},64405(e,t,n){"use strict";n.d(t,{n:()=>r,x:()=>o});var i=n(21499);class r{rows;cols;init_path;dockerId;http_token}class o extends r{key;username;password;private_path;domain;port;cmd;dir;file;context;files;source;target;authorization;static getKey(e){return(0,i.Nr)(`${e.domain}${e.port}${e.username}${e.authorization}`)}}},23430(e,t,n){"use strict";n.d(t,{E0:()=>h,KD:()=>d,XM:()=>r,nM:()=>o,oV:()=>s,t8:()=>c,tl:()=>i,yM:()=>u});n(79240);class i{username;password;confirm_password;hash_password;user_id}let r=function(e){return e[e.win=0]="win",e[e.linux=1]="linux",e[e.mac=2]="mac",e[e.unknown=3]="unknown",e}({});class o{language;sys;sysSoftWare;runing_time_length;user_data;dir_user_upload_max_num;latest_version;sys_ai_is_open;docs_ai_is_open;process_env_run_env;sys_env;logo_url;static get_now_dir(e){let t=e.user_data.cwd;return e.user_data.folder_item_now&&e.user_data.folder_items?.length&&(t=e.user_data.folder_items[e.user_data.folder_item_now-1].path),t}}let s=function(e){return e[e.sys_process_close=1]="sys_process_close",e[e.docker_container_update=2]="docker_container_update",e[e.docker_images_delete=3]="docker_images_delete",e[e.systemd=4]="systemd",e[e.vir_net=5]="vir_net",e[e.token_update=6]="token_update",e[e.code_auth=7]="code_auth",e[e.code_resource=8]="code_resource",e[e.code_api=9]="code_api",e[e.update_password=10]="update_password",e[e.net_site_tag_update=11]="net_site_tag_update",e[e.ssh_proxy_tag_update=12]="ssh_proxy_tag_update",e[e.http_proxy_tag_update=13]="http_proxy_tag_update",e[e.browser_proxy_tag_update=14]="browser_proxy_tag_update",e[e.rdp_proxy_tag_update=15]="rdp_proxy_tag_update",e[e.wol_proxy_tag_update=16]="wol_proxy_tag_update",e[e.rtsp_proxy_tag_update=17]="rtsp_proxy_tag_update",e[e.sys_disk_mount=18]="sys_disk_mount",e[e.ddns=19]="ddns",e[e.crypto_ssh_file=20]="crypto_ssh_file",e[e.outside_software_path=21]="outside_software_path",e[e.user_manage=22]="user_manage",e[e.filecat_file_delete_cut_rename=23]="filecat_file_delete_cut_rename",e[e.filecat_file_context_update_upload_created_copy_decompression=26]="filecat_file_context_update_upload_created_copy_decompression",e[e.filecat_file_context_update=27]="filecat_file_context_update",e[e.shell_cmd_check=28]="shell_cmd_check",e[e.role_manage=29]="role_manage",e[e.env_path_update=30]="env_path_update",e[e.pty_cmd_update=31]="pty_cmd_update",e[e.sys_protection_dir=32]="sys_protection_dir",e[e.recycle_file_save=33]="recycle_file_save",e[e.ssh_proxy=34]="ssh_proxy",e[e.http_proxy=35]="http_proxy",e[e.browser_proxy=36]="browser_proxy",e[e.rdp_proxy=37]="rdp_proxy",e[e.wol_proxy=38]="wol_proxy",e[e.rtsp_proxy=39]="rtsp_proxy",e[e.workflow_exe=40]="workflow_exe",e[e.workflow_exe_user=41]="workflow_exe_user",e[e.workflow_job=42]="workflow_job",e[e.workflow_api=43]="workflow_api",e[e.dir_upload_max_num=43]="dir_upload_max_num",e[e.http_proxy_download_cancel=44]="http_proxy_download_cancel",e[e.sys_env_setting_key=45]="sys_env_setting_key",e[e.nav_net_tag=46]="nav_net_tag",e[e.all_sys=47]="all_sys",e[e.shell_cmd_filecat_restart=48]="shell_cmd_filecat_restart",e[e.ai_agent_setting=49]="ai_agent_setting",e[e.ai_agent_page=50]="ai_agent_page",e[e.share_file=51]="share_file",e[e.sys_env_page=52]="sys_env_page",e[e.auth_router_page=53]="auth_router_page",e[e.firewall=89]="firewall",e[e.shell_cmd_filecat_upgrade=90]="shell_cmd_filecat_upgrade",e[e.shell_cmd_filecat_kill_self=55]="shell_cmd_filecat_kill_self",e[e.ai_chat_cmd=56]="ai_chat_cmd",e[e.private_sys_env=57]="private_sys_env",e[e.tcp_proxy=85]="tcp_proxy",e[e.sys_setting_page=86]="sys_setting_page",e[e.https_file=87]="https_file",e[e.port_scan=88]="port_scan",e[e.ai_model_switch=91]="ai_model_switch",e[e.md_editor_setting=92]="md_editor_setting",e[e.file_mount=93]="file_mount",e[e.md_theme=94]="md_theme",e[e.browser_proxy_edit=95]="browser_proxy_edit",e}({}),a=function(e){return e.block="",e.list="list",e.gallery="gallery",e}({});const l=Object.values(a);let c=function(e){return e.defualt="",e.time_minx_max="time_minx_max",e.time_max_min="time_max_min",e.size_min_max="size_min_max",e.size_max_min="size_max_min",e.name="name",e}({}),u=function(e){return e.all="all",e.pagination="pagination",e}({});let d=function(e){return e.current="current",e.time="time",e}({});class h extends i{cwd;access_dirs=[];not_access_dirs=[];only_read_dirs=[];note;id;language;access_cmd;not_access_cmd;theme;auth_list=[];is_root;folder_items;folder_item_now;protection_directory;bind_role_id;quick_cmd;file_quick_cmd;role_id;role_name;role_note;file_list_show_type;dir_show_type;not_pre_show_image;file_list_pagination_mode;file_time_show_type;file_list_zoom;sql_preset_list;md_editor_theme;ai_chat_zoom;upload_file_ignore;upload_file_ignore_list;sys_done_prompt}n.d(t,["Ko",0,l,"Ky",0,[{title:"light",value:"light"},{title:"dark",value:"dark"},{title:"google",value:"google"},{title:"google dark",value:"google-dark"}]])},85997(e,t,n){"use strict";n.d(t,{$n:()=>u,Ay:()=>f,C3:()=>d,In:()=>g,Vi:()=>l,Z$:()=>c,mu:()=>p,rA:()=>h});var i=n(96540),r=(n(30576),n(34843)),o=n(82893),s=n(78247),a=n(74848);function l(e){return(0,a.jsx)("button",{className:"little-button button",style:{backgroundColor:e.color},onClick:e.clickFun,children:e.text})}function c(e){const[t,n]=i.useState(e.defaultStatus);return(0,a.jsx)("button",{className:"little-button-status",style:{backgroundColor:t?"var(--icon-blue)":"var(--surfaceSecondary)"},onClick:()=>{const i=!t;n(i),e.clickFun&&e.clickFun(i)},children:e.text})}function u(e){return(0,a.jsx)("input",{className:"button button--block",type:"submit",value:e.text,onClick:e.clickFun,style:{backgroundColor:e.color??"var(--blue)"}})}function d(e){return(0,a.jsx)("input",{className:"button button--flat ",type:"button",value:e.text,onClick:e.clickFun})}function h(e){return(0,a.jsxs)("div",{className:"action",title:e.title,onClick:e.onClick,children:[e.icon?(0,a.jsx)(g,{icon:e.icon,style:{color:!0===e.selected?"#2196f3":""}}):e.title,void 0!==e.tip&&(0,a.jsx)("div",{className:"actio_tip",children:e.tip})]})}function p(e){const[t,n]=(0,r.fp)(o.AG.editorSetting);return(0,a.jsx)(h,{icon:e.icon,title:e.title,onClick:()=>{s.xK.set_value_temp(e.value??""),n({model:e.model??"ace/mode/ini",open:!0,fileName:"",save:async t=>{e.save(t),s.xK.set_value_temp("")}})}})}function f({checked:e,defaultChecked:t=!1,onChange:n,disabled:r=!1,title:o=""}){const[s,l]=(0,i.useState)(t),c=void 0!==e,u=c?e:s;return(0,a.jsx)("div",{className:"action",title:o,children:(0,a.jsx)("button",{onClick:()=>{if(r)return;const e=!u;c||l(e),n?.(e)},disabled:r,style:{width:"3.5rem",height:"1.8rem",borderRadius:999,border:"none",cursor:r?"not-allowed":"pointer",background:u?"#4ade80":"#ccc",position:"relative",transition:"background 0.2s",padding:0,overflow:"hidden"},children:(0,a.jsx)("span",{style:{position:"absolute",top:3,left:u?26:3,width:"1.5rem",height:"1.4rem",borderRadius:"50%",background:"#fff",transition:"left 0.2s",boxShadow:"0 1px 3px rgba(0,0,0,0.2)"}})})})}function g(e){return(0,a.jsx)("i",{className:"material-icons "+(e.not_use_icon_style?"":"icon"),"aria-label":e.aria_label,"data-icon":e.icon,style:{...e.style},children:e.icon})}},70447(e,t,n){"use strict";n.d(t,{WA:()=>h,ZI:()=>p,Zp:()=>c,fq:()=>g,gz:()=>f,uF:()=>u,xP:()=>d});var i=n(96540),r=(n(61443),n(40505)),o=n(62042),s=n(74848),a=function(e){return e[e.common=0]="common",e[e.full=1]="full",e}(a||{});function l(e,t){const n=t===a.common?"card-content":t===a.full?"card-content full":"";return(0,s.jsxs)("div",{className:"card",style:{},children:[(0,s.jsxs)("div",{className:"card-title",children:[e.self_title?e.self_title:(0,s.jsx)("h2",{children:e.title}),(0,s.jsx)("div",{className:"not-select-div",children:e.titleCom&&e.titleCom})]}),(0,s.jsx)("div",{className:n,children:e.children}),(0,s.jsx)("div",{className:"card-action card-action-bottom-right",children:e.rightBottomCom})]})}function c(e){return l(e,a.common)}function u(e){return l(e,a.full)}function d(e){const t=(0,i.useRef)(null);return(0,s.jsxs)("div",{className:"card-text",children:[(0,s.jsx)("div",{className:"card-text-context",children:e.context??e.children}),(0,s.jsx)("div",{className:"card-text-tip",ref:t,onClick:()=>{(0,r.lW)(e.tip_context??e.context??e.children),(0,o.SK)("复制完成")},children:e.tip_context??e.context??e.children})]})}function h(e){return(0,s.jsxs)("div",{className:"card-text",children:[(0,s.jsx)("div",{className:"card-text-context",children:e.context??e.children}),(0,s.jsx)("div",{className:"card-text-tip",children:e.context??e.children})]})}function p(e){return(0,s.jsxs)("div",{className:"card floating",onKeyPress:t=>{"Enter"===t.key&&e.confirm_enter&&e.confirm_enter()},children:[(0,s.jsx)("div",{className:"card-title",children:(0,s.jsx)("h2",{children:e.title})}),(0,s.jsx)("div",{className:"card-content",children:e.context&&Array.isArray(e.context)?e.context.map((e,t)=>(0,s.jsx)(i.Fragment,{children:e},t)):e.context}),(0,s.jsxs)("div",{className:"card-action",children:[(0,s.jsx)("button",{className:"button button--flat button--grey",onClick:e.cancel,children:e.cancel_t??"cancel"}),(0,s.jsx)("button",{className:"button button--flat",onClick:e.confirm,children:e.confirm_t??"confirm"})]})]})}function f(e){return(0,s.jsx)("div",{className:"progress-card",children:(0,s.jsx)("div",{className:"progress-per",children:(0,s.jsx)("div",{style:{width:`${e.progress}%`}})})})}const g=e=>{let t="var(--iconTertiary)";!0===e.loading?t="var(--icon-yellow)":null!=e.ok?t=e.ok?"var(--icon-green)":"var(--iconTertiary)":null!=e.success?t=e.success?"var(--icon-green)":"var(--icon-red)":null!=e.running&&(t="var(--icon-yellow)");const n=e.size??10,i={width:`${n}px`,height:`${n}px`,borderRadius:"50%",backgroundColor:e.loading?"transparent":t,border:e.loading?"2px solid currentColor":void 0,borderTopColor:e.loading?"transparent":void 0,flexShrink:0},r=(0,s.jsx)("div",{className:e.loading?"status-circle__dot status-circle__dot--spin":"status-circle__dot",style:i});return null==e.text?r:(0,s.jsxs)("span",{className:"status-circle",style:{color:t},children:[r,(0,s.jsx)("span",{className:"status-circle__text",children:e.text})]})}},75725(e,t,n){"use strict";n.d(t,{J:()=>p,NN:()=>N,Pu:()=>w,QM:()=>L,VP:()=>d,W1:()=>c,Y5:()=>f,Yh:()=>m,fI:()=>h,hJ:()=>M,jW:()=>_,n5:()=>g,qV:()=>y,rY:()=>x,xh:()=>u});var i=n(96540),r=n(61973),o=n(39165),s=(n(85997),n(34289)),a=n(64694),l=n(74848);function c(e){const t=(0,r.zy)(),n=[...e.optionList].sort((e,t)=>(e.index??0)-(t.index??0)),i=n.map(e=>e.component),c=(0,s.A3)(e.optionList.map(e=>e.rto),t.pathname);return(0,l.jsxs)("div",{className:"dashboard",children:[(0,l.jsx)("div",{className:"menu not-select-div",children:(0,l.jsx)("div",{className:"wrapper",children:(0,l.jsx)("ul",{children:n.map((t,n)=>{const i=!1===c&&0===n;return(0,l.jsx)(r.k2,{to:(0,a.HS)(e.father_route,t.rto),end:"/"===t.rto,className:({isActive:e})=>(""+(e||i?"active-link":"")).trim(),children:({isActive:e})=>(0,l.jsx)("li",{className:e||i?"active":"",children:t.name})},t.rto)})})})}),(0,l.jsx)("div",{className:"scroll-div-y",children:(0,l.jsx)("div",{style:{padding:".5rem"},children:(0,l.jsx)(o.default,{rtos:n.map(e=>(0,a.HS)(e.rto,"*")),children:i})})})]})}function u(e){return(0,l.jsx)("div",{className:"dashboard",children:e.children})}const d=e=>{const t={width:e.widthPer?`${e.widthPer}%`:"50%"};return e.minWidth&&(t.minWidth=e.minWidth),e.maxWidth&&(t.maxWidth=e.maxWidth),(0,l.jsx)("div",{className:"column",style:t,children:e.children})};function h(e){return(0,l.jsx)("div",{className:"row",children:e.children})}function p(e){return(0,l.jsx)("div",{className:"row",children:(0,l.jsx)(d,{...e,children:e.children})})}function f(e){return(0,l.jsx)("div",{className:"self_win_center ",children:e.children})}function g(e){return(0,l.jsx)("div",{className:"flex",children:e.children})}function m(e){return(0,l.jsxs)("div",{className:"grid_three",children:[(0,l.jsx)("div",{className:"grid_three_item",children:e.left}),(0,l.jsx)("div",{className:"grid_three_item",children:e.center}),(0,l.jsx)("div",{className:"grid_three_item",children:e.right})]})}function y(e){return(0,l.jsx)("div",{className:"show_data_text_div",children:e.content})}function w(e){const t=(0,i.useRef)(null),[n,r]=(0,i.useState)(!1),[o,s]=(0,i.useState)({top:e.y,left:e.x});return(0,i.useEffect)(()=>{(()=>{const e=t.current,{innerWidth:n,innerHeight:i}=window;if(e){const t=e.getBoundingClientRect();let a=o.top,l=o.left;t.right>n&&(l=n-t.width),t.left<0&&(l=0),t.bottom>i&&(a=i-t.height),t.top<0&&(a=0),s({top:a,left:l}),r(!0)}})()},[e]),(0,l.jsx)("div",{ref:t,style:{position:"fixed",top:`${o.top}px`,left:`${o.left}px`,padding:"5px",zIndex:1002,visibility:n?"visible":"hidden"},children:(0,l.jsx)(v,{items:e.items,click:e.click,pre_value:e.pre_value})})}function b(e){const[t,n]=(0,i.useState)(!1),[r,o]=(0,i.useState)(!1),[s,a]=(0,i.useState)(null),c=(0,i.useRef)(null),u=(0,i.useRef)(null),d=(0,i.useRef)(null);(0,i.useLayoutEffect)(()=>{if(!t||!u.current||!c.current)return void a(null);const e=u.current.getBoundingClientRect(),n=c.current.getBoundingClientRect().top+-8,i=n+e.height-window.innerHeight;a(i>0?-8-i-8:n<0?-8-n+8:null)},[t,e.c]);return(0,l.jsxs)("div",{ref:c,className:"dropdown_item "+(void 0!==e.value&&e.value===e.pre_value?"dropdown_selected":""),onMouseEnter:()=>{d.current&&clearTimeout(d.current),(()=>{if(c.current){const e=c.current.getBoundingClientRect(),t=window.innerWidth-e.right;o(t<160)}})(),n(!0)},onMouseLeave:()=>{d.current=setTimeout(()=>{n(!1)},10)},onClick:t=>{t.stopPropagation(),e.click&&void 0!==e.value&&e.click(e.value,e.item)},children:[(0,l.jsx)("div",{className:"action",children:(0,l.jsx)("span",{children:e.context})}),t&&e.c&&(0,l.jsx)("div",{ref:u,className:"dropdown_item_children",style:{left:r?"auto":"100%",right:r?"100%":"auto",...null!==s?{top:`${s}px`}:{}},children:e.c})]})}function v(e){return(0,l.jsx)("div",{className:"dropdown",children:e.items&&e.items.map((t,n)=>(0,l.jsx)(i.Fragment,{children:(0,l.jsx)(b,{value:t.v,item:t,click:e.click,context:t.r,pre_value:e.pre_value,c:t.items?(0,l.jsx)(v,{items:t.items,click:e.click,pre_value:e.pre_value}):null})},n))})}function M(e){return(0,l.jsx)("div",{className:`overlay ${e.className??""}`.trim(),onClick:e.click})}function x(e){return(0,l.jsx)("div",{className:"overlay_trans",onClick:e.click,children:e.children})}function L(e){return(0,l.jsxs)("div",{className:"overlay_trans_container",onClick:e.click,children:[(0,l.jsx)("div",{className:"overlay_trans_overlay "}),(0,l.jsx)("div",{className:"overlay_trans_content",children:e.children})]})}function _(e){let t=e.isFull?"full_screen ":"not_screen ";return e.more&&(t+=" full_screen_more "),(0,l.jsx)("div",{className:t,children:e.children})}function N(e){return(0,l.jsx)("div",{className:"full_screen_context",children:e.children})}},57952(e,t,n){"use strict";n.d(t,{A:()=>d});var i=n(96540),r=n(34843),o=n(82893);var s=n(85997),a=n(34289),l=n(21469),c=n(4412),u=n(74848);const d=function(e){const[t,n]=(0,r.fp)(o.AG.header_min),[d,h]=(0,r.fp)(o.AG.windows_width),[p,f]=(0,r.fp)(o.AG.nav_style),[g]=(0,r.fp)(o.AG.user_base_info),m=g?.logo_url||l.m.logo_url||"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjQ1IiBoZWlnaHQ9IjY3NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiPg0KICAgIDxnPg0KICAgICAgICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+DQogICAgICAgIDxwYXRoIGQ9Im0zNDguMzk5NDgsNS42ODg1OGMzLjIwOTgzLC0wLjAwMTA4IDYuNDE5NjQsLTAuMDA1ODEgOS42Mjk0NywtMC4wMTExM2M1LjEzODI0LC0wLjAwNjg5IDEwLjI3NjMyLC0wLjAwMTE4IDE1LjQxNDU0LDAuMDE0NGMxLjkwMDYxLDAuMDA0ODEgMy44MDEyMiwwLjAwNjc0IDUuNzAxODQsMC4wMDU0MmMxMC43NzA4NiwtMC4wMDE3MyAyMS4yOTE2NSwwLjQ2NjM0IDMxLjk4MDEyLDEuODM1MzZjNS40OTI4MSwwLjY2MjU2IDEwLjk3MzM0LDAuOTExNjcgMTYuNDk5NTcsMS4wOTIzNmMxLjAxNTc4LDAuMDM4NjcgMi4wMzE1NiwwLjA3NzM1IDMuMDc4MTMsMC4xMTcxOWMyLjQzMjE0LDAuMDkxNzggNC44NjQzMiwwLjE3Nzc5IDcuMjk2ODcsMC4yNTc4MWMwLjMzLDEuNjUgMC42NiwzLjMgMSw1YzAuNTgxMzcsMC4wOTE1MyAxLjE2MjczLDAuMTgzMDUgMS43NjE3MiwwLjI3NzM1YzIuNzkxODUsMC45MDEzOCA0LjAyNDIzLDIuMTc2MDYgNi4wNTA3OCw0LjI4NTE1YzAuNjk2MDksMC43MjE4OCAxLjM5MjE5LDEuNDQzNzUgMi4xMDkzOCwyLjE4NzVjMi41MTQ1MiwyLjcyMjQ5IDQuOTQ3NTUsNS41MDYyOCA3LjM2MzI4LDguMzE2NDFjMi4yMTUzMSwyLjQ5NzkxIDQuNTgzODIsNC44MTM4NCA2Ljk2NDg0LDcuMTUyMzRjMi40NTYzNSwyLjUwMDIxIDQuNzEzMDksNS4xNTgwNiA3LDcuODEyNWMyLjE5OTQ5LDIuNDc0NDMgNC41NDI4Miw0Ljc3NDkzIDYuOTA1MDMsNy4wOTI1M2MxLjc4NDkxLDEuODE1MTUgMy40NTQ0NiwzLjY4NTEzIDUuMTE0NSw1LjYxNDVjMy41NDQ0MSw0LjA3NjMxIDcuMjA4MTEsOC4wMjM3MyAxMC45MTc5NywxMS45NDkyMmMxLjMxOTM5LDEuNDAxOTkgMi42MzgzOSwyLjgwNDM0IDMuOTU3MDMsNC4yMDcwM2MwLjY0OTIxLDAuNjkwNDYgMS4yOTg0MSwxLjM4MDkxIDEuOTY3MjksMi4wOTIyOWM2LjExNzI1LDYuNTIyMjIgMTIuMTg0OCwxMy4wOTA5MSAxOC4xMzgxOCwxOS43NjMxOGM0Ljg1NjAzLDUuNDIzMTYgOS44NjYxLDEwLjY5ODczIDE0Ljg2NTk3LDE1Ljk4ODc3YzQuNDA4ODQsNC42NzE3NCA4LjczNDAxLDkuNDAwODMgMTMuMDA1MTIsMTQuMTk4NzNjMi4zMTYzNCwyLjU0MjY4IDQuNzQ5MjEsNC45NDY2OSA3LjIwMzEzLDcuMzU1NDdjMS43ODYzMSwxLjgxOTYzIDMuNDUwNTYsMy43MTE1NyA1LjExMzI4LDUuNjQ0NTNjMi40MTg2OCwyLjgwODI3IDQuOTIxNSw1LjQ2MjIxIDcuNTYyNSw4LjA2MjVjMy4yNTAzLDMuMjAwMyA2LjI0NzI0LDYuNTQyMjUgOS4yMTg3NSwxMGMxLjg1NTUsMi4wODMzNyAzLjc5MzQ4LDQuMDQyODEgNS43ODEyNSw2YzQuNjk0NDgsNC42MzA4IDkuMDM1MzQsOS41MTUyOSAxMy4xMjUsMTQuNjg3NWMyLjgzNDcxLDMuNDk2MTUgNi4xMDE0Niw2LjU1MDE1IDkuMzA0NjksOS43MDcwM2M0LjU0ODIyLDQuNDk3MzcgOC45NTUxNyw5LjAzODc2IDEzLjA5NzY1LDEzLjkxNDA3YzEuNDU1NTcsMS43MjcyIDEuNDU1NTcsMS43MjcyIDMuMTY0MDcsMy4yODkwNmMxLjMwODU5LDEuNDAyMzQgMS4zMDg1OSwxLjQwMjM0IDEuMzA4NTksMy40MDIzNGMwLjg5NzE5LDAuMzg0NzkgMC44OTcxOSwwLjM4NDc5IDEuODEyNSwwLjc3NzM1YzIuOTk4MjksMS42NzU4MiA0LjU2NDEzLDMuOTcwMzcgNi42MjUsNi42NjQwNmMxLjgxMjMxLDEuODA3NzcgMy4wNjc1NSwyLjE2NjA3IDUuNTYyNSwyLjU1ODU5YzAsMS45OCAwLDMuOTYgMCw2YzAuODA0MzgsMC4xMjM3NSAxLjYwODc1LDAuMjQ3NSAyLjQzNzUsMC4zNzVjMC44NDU2MywwLjIwNjI1IDEuNjkxMjUsMC40MTI1IDIuNTYyNSwwLjYyNWMxLjcyODkxLDMuNDU3ODIgMS40ODg4OCw3LjIxOTM3IDEsMTFjLTEuODc1LDMuMDYyNSAtMS44NzUsMy4wNjI1IC00LDVjLTAuNjYsMCAtMS4zMiwwIC0yLDBjMC4wNDQ0MiwwLjk0NjAxIDAuMDQ0NDIsMC45NDYwMSAwLjA4OTc0LDEuOTExMTNjMC44ODQxNSwxOS40NTE3MSAxLjA1NjI4LDM4Ljg2MDIxIDEuMDQwOTgsNTguMzI3NzljLTAuMDAyMyw0LjM1MTUxIDAuMDAxMjUsOC43MDMwMiAwLjAwMzk4LDEzLjA1NDU0YzAuMDA0NDEsOC40ODAzNiAwLjAwMzUxLDE2Ljk2MDcxIDAuMDAwNTksMjUuNDQxMDdjLTAuMDAyMjcsNi44OTMzMyAtMC4wMDI1NiwxMy43ODY2NiAtMC4wMDE0NywyMC42Nzk5OWMwLjAwMDIzLDEuNDgwMTIgMC4wMDAyMywxLjQ4MDEyIDAuMDAwNDYsMi45OTAxNGMwLjAwMDMyLDIuMDA1MyAwLjAwMDY0LDQuMDEwNiAwLjAwMDk3LDYuMDE1OWMwLjAwMjg0LDE4LjcxODUxIC0wLjAwMDQxLDM3LjQzNzAxIC0wLjAwNTgsNTYuMTU1NTFjLTAuMDA0NDgsMTYuMDQxMDYgLTAuMDAzNjgsMzIuMDgyMSAwLjAwMDkyLDQ4LjEyMzE1YzAuMDA1MzYsMTguNjgzMzcgMC4wMDc0NiwzNy4zNjY3NCAwLjAwNDM5LDU2LjA1MDExYy0wLjAwMDMyLDEuOTkyNCAtMC4wMDA2MywzLjk4NDggLTAuMDAwOTQsNS45NzcyYy0wLjAwMDE2LDAuOTgwMDQgLTAuMDAwMzEsMS45NjAwOCAtMC4wMDA0NywyLjk2OTgyYy0wLjAwMDg2LDYuODg4NTggMC4wMDA1OSwxMy43NzcxNiAwLjAwMjk1LDIwLjY2NTc0YzAuMDAyOCw4LjM4ODM1IDAuMDAyMDMsMTYuNzc2NjkgLTAuMDAzMjksMjUuMTY1MDRjLTAuMDAyNjIsNC4yNzQ4NyAtMC4wMDM2Niw4LjU0OTcyIC0wLjAwMDM1LDEyLjgyNDU5YzAuMDAzLDMuOTE3NDcgMC4wMDEzMiw3LjgzNDkxIC0wLjAwMzk3LDExLjc1MjM4Yy0wLjAwMTExLDEuNDExODkgLTAuMDAwNTcsMi44MjM3OSAwLjAwMTg3LDQuMjM1NjljMC4wMzcyOSwyMy4zOTkyMSAwLjAzNzI5LDIzLjM5OTIxIC00LjQ0MzA2LDI5LjIyMjcxYy0wLjg5MTM5LDEuMjA4NSAtMC44OTEzOSwxLjIwODUgLTEuODAwNzgsMi40NDE0MWMtMy4wOTExMywzLjI3MDMyIC02LjAyMjQ0LDQuMjIxMTUgLTEwLjQ0NTA4LDQuNTg3MjljLTAuODgyNTUsMC4wNzM1MyAtMS43NjUxMSwwLjE0NzA2IC0yLjY3NDQsMC4yMjI4MmMtNC42MDkxMSwwLjMwOTc4IC05LjIxNzg1LDAuNTM3ODkgLTEzLjgzMzQsMC43MjY3NWMtMS41OTEwNiwwLjA2ODU2IC0xLjU5MTA2LDAuMDY4NTYgLTMuMjE0MjcsMC4xMzg0OWMtMy40OTg4NiwwLjE1MDA0IC02Ljk5Nzg4LDAuMjk1OTkgLTEwLjQ5NjkxLDAuNDQxODRjLTIuNDg2NzEsMC4xMDU2NSAtNC45NzM0MSwwLjIxMTU0IC03LjQ2MDEsMC4zMTc2NGMtNS4yMzQzNCwwLjIyMjc2IC0xMC40Njg3NSwwLjQ0Mzc0IC0xNS43MDMyMywwLjY2MzA3Yy02LjU0MzQ5LDAuMjc0MTkgLTEzLjA4NjgyLDAuNTUxNjMgLTE5LjYzMDEyLDAuODMwMjJjLTQ5LjY1MzE5LDIuMTEzNTQgLTk5LjMxMjM3LDQuMDQ3MDMgLTE0OC45NzY2Myw1Ljg4MDI0Yy0zLjQ2MjMxLDAuMTI3OSAtNi45MjQ2MSwwLjI1NjEzIC0xMC4zODY5MSwwLjM4NDQ1Yy0yNC4zOTc1NiwwLjkwNDEyIC00OC43OTUzNiwxLjgwMDI2IC03My4xOTQ1OCwyLjY1ODc1Yy0xLjQwNTA1LDAuMDQ5NDggLTEuNDA1MDUsMC4wNDk0OCAtMi44Mzg0OCwwLjA5OTk1Yy03LjIyODQyLDAuMjU0NTMgLTE0LjQ1Njg1LDAuNTA4OTkgLTIxLjY4NTMsMC43NjI2OGMtMjAuMjYwMTcsMC43MTEyNiAtNDAuNTE0MjgsMS40NjQ1NiAtNjAuNzYyNzIsMi40NjM1N2MtMjAuODM1NjQsMS4wMTkyMSAtNDEuNjg5ODksMS41NDc4OCAtNjIuNTQxNjIsMi4xMjEzMWMtMTIuNTMxOCwwLjM0NTQ2IC0yNS4wNjI4OCwwLjY5Nzg3IC0zNy41ODk4NCwxLjE5MzEyYy0wLjk1MTkyLDAuMDM1NjkgLTEuOTAzODMsMC4wNzEzOSAtMi44ODQ1OSwwLjEwODE3Yy0zLjkxOTU3LDAuMTYzNjkgLTcuNzgzODksMC4zODMzMSAtMTEuNjcyMywwLjkxMjMzYy00LjI1NTQxLDAuNTI3OTYgLTguNDA2ODgsMC42Nzk0MSAtMTIuNjg5MjEsMC43MjE2OGMtMC44MjA0NiwwLjAwOTc1IC0xLjY0MDkyLDAuMDE5NSAtMi40ODYyNSwwLjAyOTU1Yy0zNC45OTg0MiwwLjMzMDcyIC0zNC45OTg0MiwwLjMzMDcyIC00OS43MjA3OCwtNC4yNjc4M2MtMS41NDEwNywtMC40NzM3MyAtMS41NDEwNywtMC40NzM3MyAtMy4xMTMyOCwtMC45NTcwM2MtNy41ODI2NiwtMy4wNzIxOSAtMTIuMjg5NDIsLTkuNTUzNTUgLTE2Ljg4NjcyLC0xNi4wNDI5N2MtMC43NDc2NiwtMS4wNDE1NiAtMS40OTUzMSwtMi4wODMxMiAtMi4yNjU2MiwtMy4xNTYyNWMtMTAuMDI2MDgsLTE1LjU5NjExIC05Ljk3MTgsLTMyLjg1OTUgLTkuODU1NDcsLTUwLjgyMDMxYzAuMDA2NTksLTEuODUyNCAwLjAxMjY5LC0zLjcwNDgxIDAuMDE4MzIsLTUuNTU3MjJjMC4wMjEyMiwtNS44MjIxOCAwLjA1OTksLTExLjY0NDE2IDAuMTAyNzcsLTE3LjQ2NjIyYzAuMDA2NjYsLTAuOTMzMSAwLjAxMzMzLC0xLjg2NjIgMC4wMjAyLC0yLjgyNzU3YzAuMDg3NjcsLTEyLjA2MDYgMC4yMTAyMiwtMjQuMTIwNjYgMC4zNTIxMSwtMzYuMTgwNzNjMC4wNDQyMywtMy43NjIzNCAwLjA4NTg0LC03LjUyNDcgMC4xMjUsLTExLjI4NzExYzAuMjAxOTcsLTE5LjM5NDA3IDAuNDc1MTgsLTM4Ljc3MzgzIDEuMTQzOTMsLTU4LjE1Nzg2YzAuMzE1NzYsLTkuMzkwNzkgMC40OTc3NiwtMTguNzc2NzcgMC42MDQ4NSwtMjguMTcxNzNjMC4wMTIwMSwtMS4wNDc1NSAwLjAxMjAxLC0xLjA0NzU1IDAuMDI0MjUsLTIuMTE2MjdjMC4wMzIzNSwtMi44NjA4MyAwLjA2MzgzLC01LjcyMTY3IDAuMDk0MzgsLTguNTgyNTJjMC4yOTg4NCwtMjcuOTczNzMgMC44ODM5LC01NS45MTkzOSAxLjgzNDI1LC04My44NzkzM2MwLjA4ODkyLC0yLjYzMDIgMC4xNzc1NCwtNS4yNjA0MSAwLjI2NTg3LC03Ljg5MDYzYzAuMDIyMTcsLTAuNjU5MSAwLjA0NDM0LC0xLjMxODIgMC4wNjcxOSwtMS45OTcyOGMwLjM5NTgxLC0xMS44NTM0OSAwLjY5NTczLC0yMy43MDg0IDAuOTcxODgsLTM1LjU2NTIyYzAuMDQyMTIsLTEuNzg5MzUgMC4wODQyNywtMy41Nzg2OSAwLjEyNjQ1LC01LjM2ODA0YzAuMTY0NTMsLTcuMDExODkgMC4zMjg5MiwtMTQuMDIzNzcgMC40NzgyNSwtMjEuMDM2MDFjMC40Mzg5MywtMjAuNTc2MTMgMS4yNDU2NSwtNDEuMDY2NTUgMi42NjUwMSwtNjEuNTk5MTJjMC4zMDc5NCwtNC41NDQwOCAwLjU3MzM4LC05LjA4OTkgMC44MjQwNCwtMTMuNjM3NDVjMC4wNjAxNiwtMS4wODMyNyAwLjA2MDE2LC0xLjA4MzI3IDAuMTIxNTUsLTIuMTg4NDJjMC4wNzY4MiwtMS4zOTA4MiAwLjE1MzE4LC0yLjc4MTY3IDAuMjI5MDMsLTQuMTcyNTRjMC4xMjEyLC0yLjIxOTI5IDAuMjQ0NiwtNC40Mzg0NCAwLjM2ODE3LC02LjY1NzZjMC4zNDc3MiwtNi4yNzkxIDAuNjg3ODEsLTEyLjU1NzkyIDAuOTYwOTMsLTE4Ljg0MDgyYzAuMzI1MDUsLTcuNDY2NDcgMC43NzE0LC0xNC44MTExNiAxLjc4NTE2LC0yMi4yMTg3NWMwLjMyMTQzLC0yLjU0MDU1IDAuNjM0MTYsLTUuMDgyMjIgMC45Mzc1LC03LjYyNWMwLjE1ODU1LC0xLjI4MzkgMC4zMTcxMSwtMi41Njc4MSAwLjQ4MDQ3LC0zLjg5MDYyYzAuMjYxODksLTMuNjI4NTUgMC4zNzY4NCwtNi41NzE3OCAtMC40ODA0NywtMTAuMTA5MzhjLTIuOTMzNSwtMi45MzkxNiAtNi4yMzc2NiwtNC4zNDE2NCAtMTAsLTZjLTYuMTg0NzUsLTQuMTA1NTEgLTEwLjY3NzU0LC05Ljk3MTUgLTEzLC0xN2MtMS40MjM0LC0xMS4wODYxMyAwLjkxNDMsLTE4LjM3ODc2IDcuNjE3MTksLTI3LjEwNTQ3YzcuOTg1MjMsLTguODkwMjIgMjAuMjcyMjQsLTE1LjcyMTM4IDMxLjM4MjgxLC0xOS44OTQ1M2MxLjE0MzQsLTAuNDQ2MDEgMi4yODY4LC0wLjg5MjAzIDMuNDY0ODQsLTEuMzUxNTZjMjYuMTY1NTcsLTEwLjEwMzk2IDUyLjc5NjYyLC0xNi43NDkxMSA4MC4zMDY4OSwtMjIuMDIyOTVjMi44MzYxNywtMC41NDk1MiA1LjY2NDk5LC0xLjEyNTk4IDguNDkzOSwtMS43MTE0MmM0Ljg2NjM4LC0wLjk3Njc2IDkuNzUwNTMsLTEuNjU1ODggMTQuNjcxODcsLTIuMjg5MDdjNy40MDc2MSwtMC45NzU4OCAxNC43OTc2MSwtMi4wMzAxMiAyMi4xODMxMSwtMy4xNjEzN2MxMS4xOTk0OCwtMS43MTE5NCAyMi4zNTkwNywtMy4xMjAxMSAzMy42NDg5MiwtNC4wNjkxYzIuNDU2NDEsLTAuMjA5NjEgNC44MDAxNywtMC40OTMwNiA3LjIzNDM4LC0wLjkxNDA2YzQuODE3OTEsLTAuNzcyNjIgOS42NjkyNiwtMC44NzM1MiAxNC41MzkwNiwtMS4wODU5NGMwLjc3MjE1LC0wLjAzNzM4IDEuNTQ0MywtMC4wNzQ3NiAyLjMzOTg0LC0wLjExMzI4YzAuNjk0OTcsLTAuMDMwMjkgMS4zODk5MywtMC4wNjA1OCAyLjEwNTk2LC0wLjA5MTc5YzIuMDAyODYsLTAuMTMzNDYgMi4wMDI4NiwtMC4xMzM0NiAzLjg1OTUzLC0wLjY3Njk5YzIuMjI2OTYsLTAuNTMwMzkgNC4zMDY5MiwtMC43NDk0MyA2LjU5MDE4LC0wLjkwMTM4YzAuODk0NzQsLTAuMDU5OTYgMS43ODk0OCwtMC4xMTk5MyAyLjcxMTMzLC0wLjE4MTdjMS40ODA0NSwtMC4wOTA3MyAxLjQ4MDQ1LC0wLjA5MDczIDIuOTkwODIsLTAuMTgzMjljMS4wNjU1MiwtMC4wNjU0IDIuMTMxMDQsLTAuMTMwOCAzLjIyODg1LC0wLjE5ODE4YzMxLjM0NTgyLC0xLjg1MDc1IDYyLjYzMzA2LC0yLjM1NTM3IDk0LjAyOTk4LC0yLjM1OTMzeiIgZmlsbD0iI0ZFRkVGRSIgaWQ9InN2Z18yIiBzdHJva2U9Im51bGwiLz4NCiAgICAgICAgPHBhdGggZD0ibTM0NS4zOTk0OCw3LjY4ODU4YzMuMjA5ODMsLTAuMDAxMDggNi40MTk2NCwtMC4wMDU4MSA5LjYyOTQ3LC0wLjAxMTEzYzUuMTM4MjQsLTAuMDA2ODkgMTAuMjc2MzIsLTAuMDAxMTggMTUuNDE0NTQsMC4wMTQ0YzEuOTAwNjEsMC4wMDQ4MSAzLjgwMTIyLDAuMDA2NzQgNS43MDE4NCwwLjAwNTQyYzEwLjc3MDg2LC0wLjAwMTczIDIxLjI5MTY1LDAuNDY2MzQgMzEuOTgwMTIsMS44MzUzNmM1LjQ5MjgxLDAuNjYyNTYgMTAuOTczMzQsMC45MTE2NyAxNi40OTk1NywxLjA5MjM2YzEuMDE1NzgsMC4wMzg2NyAyLjAzMTU2LDAuMDc3MzUgMy4wNzgxMywwLjExNzE5YzIuNDMyMTQsMC4wOTE3OCA0Ljg2NDMyLDAuMTc3NzkgNy4yOTY4NywwLjI1NzgxYzAuMzMsMS42NSAwLjY2LDMuMyAxLDVjMC41ODEzNywwLjA5MTUzIDEuMTYyNzMsMC4xODMwNSAxLjc2MTcyLDAuMjc3MzVjMi43OTE4NSwwLjkwMTM4IDQuMDI0MjMsMi4xNzYwNiA2LjA1MDc4LDQuMjg1MTVjMC42OTYwOSwwLjcyMTg4IDEuMzkyMTksMS40NDM3NSAyLjEwOTM4LDIuMTg3NWMyLjUxNDUyLDIuNzIyNDkgNC45NDc1NSw1LjUwNjI4IDcuMzYzMjgsOC4zMTY0MWMyLjIxNTMxLDIuNDk3OTEgNC41ODM4Miw0LjgxMzg0IDYuOTY0ODQsNy4xNTIzNGMyLjQ1NjM1LDIuNTAwMjEgNC43MTMwOSw1LjE1ODA2IDcsNy44MTI1YzIuMTk5NDksMi40NzQ0MyA0LjU0MjgyLDQuNzc0OTMgNi45MDUwMyw3LjA5MjUzYzEuNzg0OTEsMS44MTUxNSAzLjQ1NDQ2LDMuNjg1MTMgNS4xMTQ1LDUuNjE0NWMzLjU0NDQxLDQuMDc2MzEgNy4yMDgxMSw4LjAyMzczIDEwLjkxNzk3LDExLjk0OTIyYzEuMzE5MzksMS40MDE5OSAyLjYzODM5LDIuODA0MzQgMy45NTcwMyw0LjIwNzAzYzAuNjQ5MjEsMC42OTA0NiAxLjI5ODQxLDEuMzgwOTEgMS45NjcyOSwyLjA5MjI5YzYuMTE3MjUsNi41MjIyMiAxMi4xODQ4LDEzLjA5MDkxIDE4LjEzODE4LDE5Ljc2MzE4YzQuODU2MDMsNS40MjMxNiA5Ljg2NjEsMTAuNjk4NzMgMTQuODY1OTcsMTUuOTg4NzdjNC40MDg4NCw0LjY3MTc0IDguNzM0MDEsOS40MDA4MyAxMy4wMDUxMiwxNC4xOTg3M2MyLjMxNjM0LDIuNTQyNjggNC43NDkyMSw0Ljk0NjY5IDcuMjAzMTMsNy4zNTU0N2MxLjc4NjMxLDEuODE5NjMgMy40NTA1NiwzLjcxMTU3IDUuMTEzMjgsNS42NDQ1M2MyLjQxODY4LDIuODA4MjcgNC45MjE1LDUuNDYyMjEgNy41NjI1LDguMDYyNWMzLjI1MDMsMy4yMDAzIDYuMjQ3MjQsNi41NDIyNSA5LjIxODc1LDEwYzEuODU1NSwyLjA4MzM3IDMuNzkzNDgsNC4wNDI4MSA1Ljc4MTI1LDZjNC42OTQ0OCw0LjYzMDggOS4wMzUzNCw5LjUxNTI5IDEzLjEyNSwxNC42ODc1YzIuODM0NzEsMy40OTYxNSA2LjEwMTQ2LDYuNTUwMTUgOS4zMDQ2OSw5LjcwNzAzYzQuNTQ4MjIsNC40OTczNyA4Ljk1NTE3LDkuMDM4NzYgMTMuMDk3NjUsMTMuOTE0MDdjMS40NTU1NywxLjcyNzIgMS40NTU1NywxLjcyNzIgMy4xNjQwNywzLjI4OTA2YzEuMzA4NTksMS40MDIzNCAxLjMwODU5LDEuNDAyMzQgMS4zMDg1OSwzLjQwMjM0YzAuODk3MTksMC4zODQ3OSAwLjg5NzE5LDAuMzg0NzkgMS44MTI1LDAuNzc3MzVjMi45OTgyOSwxLjY3NTgyIDQuNTY0MTMsMy45NzAzNyA2LjYyNSw2LjY2NDA2YzEuODEyMzEsMS44MDc3NyAzLjA2NzU1LDIuMTY2MDcgNS41NjI1LDIuNTU4NTljMCwxLjk4IDAsMy45NiAwLDZjMC44MDQzOCwwLjEyMzc1IDEuNjA4NzUsMC4yNDc1IDIuNDM3NSwwLjM3NWMwLjg0NTYzLDAuMjA2MjUgMS42OTEyNSwwLjQxMjUgMi41NjI1LDAuNjI1YzEuNzI4OTEsMy40NTc4MiAxLjQ4ODg4LDcuMjE5MzcgMSwxMWMtMS44NzUsMy4wNjI1IC0xLjg3NSwzLjA2MjUgLTQsNWMtMC42NiwwIC0xLjMyLDAgLTIsMGMwLjA0NDQyLDAuOTQ2MDEgMC4wNDQ0MiwwLjk0NjAxIDAuMDg5NzQsMS45MTExM2MwLjg4NDE1LDE5LjQ1MTcxIDEuMDU2MjgsMzguODYwMjEgMS4wNDA5OCw1OC4zMjc3OWMtMC4wMDIzLDQuMzUxNTEgMC4wMDEyNSw4LjcwMzAyIDAuMDAzOTgsMTMuMDU0NTRjMC4wMDQ0MSw4LjQ4MDM2IDAuMDAzNTEsMTYuOTYwNzEgMC4wMDA1OSwyNS40NDEwN2MtMC4wMDIyNyw2Ljg5MzMzIC0wLjAwMjU2LDEzLjc4NjY2IC0wLjAwMTQ3LDIwLjY3OTk5YzAuMDAwMjMsMS40ODAxMiAwLjAwMDIzLDEuNDgwMTIgMC4wMDA0NiwyLjk5MDE0YzAuMDAwMzIsMi4wMDUzIDAuMDAwNjQsNC4wMTA2IDAuMDAwOTcsNi4wMTU5YzAuMDAyODQsMTguNzE4NTEgLTAuMDAwNDEsMzcuNDM3MDEgLTAuMDA1OCw1Ni4xNTU1MWMtMC4wMDQ0OCwxNi4wNDEwNiAtMC4wMDM2OCwzMi4wODIxIDAuMDAwOTIsNDguMTIzMTVjMC4wMDUzNiwxOC42ODMzNyAwLjAwNzQ2LDM3LjM2Njc0IDAuMDA0MzksNTYuMDUwMTFjLTAuMDAwMzIsMS45OTI0IC0wLjAwMDYzLDMuOTg0OCAtMC4wMDA5NCw1Ljk3NzJjLTAuMDAwMTYsMC45ODAwNCAtMC4wMDAzMSwxLjk2MDA4IC0wLjAwMDQ3LDIuOTY5ODJjLTAuMDAwODYsNi44ODg1OCAwLjAwMDU5LDEzLjc3NzE2IDAuMDAyOTUsMjAuNjY1NzRjMC4wMDI4LDguMzg4MzUgMC4wMDIwMywxNi43NzY2OSAtMC4wMDMyOSwyNS4xNjUwNGMtMC4wMDI2Miw0LjI3NDg3IC0wLjAwMzY2LDguNTQ5NzIgLTAuMDAwMzUsMTIuODI0NTljMC4wMDMsMy45MTc0NyAwLjAwMTMyLDcuODM0OTEgLTAuMDAzOTcsMTEuNzUyMzhjLTAuMDAxMTEsMS40MTE4OSAtMC4wMDA1NywyLjgyMzc5IDAuMDAxODcsNC4yMzU2OWMwLjAzNzI5LDIzLjM5OTIxIDAuMDM3MjksMjMuMzk5MjEgLTQuNDQzMDYsMjkuMjIyNzFjLTAuODkxMzksMS4yMDg1IC0wLjg5MTM5LDEuMjA4NSAtMS44MDA3OCwyLjQ0MTQxYy0zLjA5MTEzLDMuMjcwMzIgLTYuMDIyNDQsNC4yMjExNSAtMTAuNDQ1MDgsNC41ODcyOWMtMC44ODI1NSwwLjA3MzUzIC0xLjc2NTExLDAuMTQ3MDYgLTIuNjc0NCwwLjIyMjgyYy00LjYwOTExLDAuMzA5NzggLTkuMjE3ODUsMC41Mzc4OSAtMTMuODMzNCwwLjcyNjc1Yy0xLjU5MTA2LDAuMDY4NTYgLTEuNTkxMDYsMC4wNjg1NiAtMy4yMTQyNywwLjEzODQ5Yy0zLjQ5ODg2LDAuMTUwMDQgLTYuOTk3ODgsMC4yOTU5OSAtMTAuNDk2OTEsMC40NDE4NGMtMi40ODY3MSwwLjEwNTY1IC00Ljk3MzQxLDAuMjExNTQgLTcuNDYwMSwwLjMxNzY0Yy01LjIzNDM0LDAuMjIyNzYgLTEwLjQ2ODc1LDAuNDQzNzQgLTE1LjcwMzIzLDAuNjYzMDdjLTYuNTQzNDksMC4yNzQxOSAtMTMuMDg2ODIsMC41NTE2MyAtMTkuNjMwMTIsMC44MzAyMmMtNDkuNjUzMTksMi4xMTM1NCAtOTkuMzEyMzcsNC4wNDcwMyAtMTQ4Ljk3NjYzLDUuODgwMjRjLTMuNDYyMzEsMC4xMjc5IC02LjkyNDYxLDAuMjU2MTMgLTEwLjM4NjkxLDAuMzg0NDVjLTI0LjM5NzU2LDAuOTA0MTIgLTQ4Ljc5NTM2LDEuODAwMjYgLTczLjE5NDU4LDIuNjU4NzVjLTEuNDA1MDUsMC4wNDk0OCAtMS40MDUwNSwwLjA0OTQ4IC0yLjgzODQ4LDAuMDk5OTVjLTcuMjI4NDIsMC4yNTQ1MyAtMTQuNDU2ODUsMC41MDg5OSAtMjEuNjg1MywwLjc2MjY4Yy0yMC4yNjAxNywwLjcxMTI2IC00MC41MTQyOCwxLjQ2NDU2IC02MC43NjI3MiwyLjQ2MzU3Yy0yMC44MzU2NCwxLjAxOTIxIC00MS42ODk4OSwxLjU0Nzg4IC02Mi41NDE2MiwyLjEyMTMxYy0xMi41MzE4LDAuMzQ1NDYgLTI1LjA2Mjg4LDAuNjk3ODcgLTM3LjU4OTg0LDEuMTkzMTJjLTAuOTUxOTIsMC4wMzU2OSAtMS45MDM4MywwLjA3MTM5IC0yLjg4NDU5LDAuMTA4MTdjLTMuOTE5NTcsMC4xNjM2OSAtNy43ODM4OSwwLjM4MzMxIC0xMS42NzIzLDAuOTEyMzNjLTQuMjU1NDEsMC41Mjc5NiAtOC40MDY4OCwwLjY3OTQxIC0xMi42ODkyMSwwLjcyMTY4Yy0wLjgyMDQ2LDAuMDA5NzUgLTEuNjQwOTIsMC4wMTk1IC0yLjQ4NjI1LDAuMDI5NTVjLTM0Ljk5ODQyLDAuMzMwNzIgLTM0Ljk5ODQyLDAuMzMwNzIgLTQ5LjcyMDc4LC00LjI2NzgzYy0xLjU0MTA3LC0wLjQ3MzczIC0xLjU0MTA3LC0wLjQ3MzczIC0zLjExMzI4LC0wLjk1NzAzYy03LjU4MjY2LC0zLjA3MjE5IC0xMi4yODk0MiwtOS41NTM1NSAtMTYuODg2NzIsLTE2LjA0Mjk3Yy0wLjc0NzY2LC0xLjA0MTU2IC0xLjQ5NTMxLC0yLjA4MzEyIC0yLjI2NTYyLC0zLjE1NjI1Yy0xMC4wMjYwOCwtMTUuNTk2MTEgLTkuOTcxOCwtMzIuODU5NSAtOS44NTU0NywtNTAuODIwMzFjMC4wMDY1OSwtMS44NTI0IDAuMDEyNjksLTMuNzA0ODEgMC4wMTgzMiwtNS41NTcyMmMwLjAyMTIyLC01LjgyMjE4IDAuMDU5OSwtMTEuNjQ0MTYgMC4xMDI3NywtMTcuNDY2MjJjMC4wMDY2NiwtMC45MzMxIDAuMDEzMzMsLTEuODY2MiAwLjAyMDIsLTIuODI3NTdjMC4wODc2NywtMTIuMDYwNiAwLjIxMDIyLC0yNC4xMjA2NiAwLjM1MjExLC0zNi4xODA3M2MwLjA0NDIzLC0zLjc2MjM0IDAuMDg1ODQsLTcuNTI0NyAwLjEyNSwtMTEuMjg3MTFjMC4yMDE5NywtMTkuMzk0MDcgMC40NzUxOCwtMzguNzczODMgMS4xNDM5MywtNTguMTU3ODZjMC4zMTU3NiwtOS4zOTA3OSAwLjQ5Nzc2LC0xOC43NzY3NyAwLjYwNDg1LC0yOC4xNzE3M2MwLjAxMjAxLC0xLjA0NzU1IDAuMDEyMDEsLTEuMDQ3NTUgMC4wMjQyNSwtMi4xMTYyN2MwLjAzMjM1LC0yLjg2MDgzIDAuMDYzODMsLTUuNzIxNjcgMC4wOTQzOCwtOC41ODI1MmMwLjI5ODg0LC0yNy45NzM3MyAwLjg4MzksLTU1LjkxOTM5IDEuODM0MjUsLTgzLjg3OTMzYzAuMDg4OTIsLTIuNjMwMiAwLjE3NzU0LC01LjI2MDQxIDAuMjY1ODcsLTcuODkwNjNjMC4wMjIxNywtMC42NTkxIDAuMDQ0MzQsLTEuMzE4MiAwLjA2NzE5LC0xLjk5NzI4YzAuMzk1ODEsLTExLjg1MzQ5IDAuNjk1NzMsLTIzLjcwODQgMC45NzE4OCwtMzUuNTY1MjJjMC4wNDIxMiwtMS43ODkzNSAwLjA4NDI3LC0zLjU3ODY5IDAuMTI2NDUsLTUuMzY4MDRjMC4xNjQ1MywtNy4wMTE4OSAwLjMyODkyLC0xNC4wMjM3NyAwLjQ3ODI1LC0yMS4wMzYwMWMwLjQzODkzLC0yMC41NzYxMyAxLjI0NTY1LC00MS4wNjY1NSAyLjY2NTAxLC02MS41OTkxMmMwLjMwNzk0LC00LjU0NDA4IDAuNTczMzgsLTkuMDg5OSAwLjgyNDA0LC0xMy42Mzc0NWMwLjA2MDE2LC0xLjA4MzI3IDAuMDYwMTYsLTEuMDgzMjcgMC4xMjE1NSwtMi4xODg0MmMwLjA3NjgyLC0xLjM5MDgyIDAuMTUzMTgsLTIuNzgxNjcgMC4yMjkwMywtNC4xNzI1NGMwLjEyMTIsLTIuMjE5MjkgMC4yNDQ2LC00LjQzODQ0IDAuMzY4MTcsLTYuNjU3NmMwLjM0NzcyLC02LjI3OTEgMC42ODc4MSwtMTIuNTU3OTIgMC45NjA5MywtMTguODQwODJjMC4zMjUwNSwtNy40NjY0NyAwLjc3MTQsLTE0LjgxMTE2IDEuNzg1MTYsLTIyLjIxODc1YzAuMzIxNDMsLTIuNTQwNTUgMC42MzQxNiwtNS4wODIyMiAwLjkzNzUsLTcuNjI1YzAuMTU4NTUsLTEuMjgzOSAwLjMxNzExLC0yLjU2NzgxIDAuNDgwNDcsLTMuODkwNjJjMC4yNjE4OSwtMy42Mjg1NSAwLjM3Njg0LC02LjU3MTc4IC0wLjQ4MDQ3LC0xMC4xMDkzOGMtMi45MzM1LC0yLjkzOTE2IC02LjIzNzY2LC00LjM0MTY0IC0xMCwtNmMtNi4xODQ3NSwtNC4xMDU1MSAtMTAuNjc3NTQsLTkuOTcxNSAtMTMsLTE3Yy0xLjQyMzQsLTExLjA4NjEzIDAuOTE0MywtMTguMzc4NzYgNy42MTcxOSwtMjcuMTA1NDdjNy45ODUyMywtOC44OTAyMiAyMC4yNzIyNCwtMTUuNzIxMzggMzEuMzgyODEsLTE5Ljg5NDUzYzEuMTQzNCwtMC40NDYwMSAyLjI4NjgsLTAuODkyMDMgMy40NjQ4NCwtMS4zNTE1NmMyNi4xNjU1NywtMTAuMTAzOTYgNTIuNzk2NjIsLTE2Ljc0OTExIDgwLjMwNjg5LC0yMi4wMjI5NWMyLjgzNjE3LC0wLjU0OTUyIDUuNjY0OTksLTEuMTI1OTggOC40OTM5LC0xLjcxMTQyYzQuODY2MzgsLTAuOTc2NzYgOS43NTA1MywtMS42NTU4OCAxNC42NzE4NywtMi4yODkwN2M3LjQwNzYxLC0wLjk3NTg4IDE0Ljc5NzYxLC0yLjAzMDEyIDIyLjE4MzExLC0zLjE2MTM3YzExLjE5OTQ4LC0xLjcxMTk0IDIyLjM1OTA3LC0zLjEyMDExIDMzLjY0ODkyLC00LjA2OTFjMi40NTY0MSwtMC4yMDk2MSA0LjgwMDE3LC0wLjQ5MzA2IDcuMjM0MzgsLTAuOTE0MDZjNC44MTc5MSwtMC43NzI2MiA5LjY2OTI2LC0wLjg3MzUyIDE0LjUzOTA2LC0xLjA4NTk0YzAuNzcyMTUsLTAuMDM3MzggMS41NDQzLC0wLjA3NDc2IDIuMzM5ODQsLTAuMTEzMjhjMC42OTQ5NywtMC4wMzAyOSAxLjM4OTkzLC0wLjA2MDU4IDIuMTA1OTYsLTAuMDkxNzljMi4wMDI4NiwtMC4xMzM0NiAyLjAwMjg2LC0wLjEzMzQ2IDMuODU5NTMsLTAuNjc2OTljMi4yMjY5NiwtMC41MzAzOSA0LjMwNjkyLC0wLjc0OTQzIDYuNTkwMTgsLTAuOTAxMzhjMC44OTQ3NCwtMC4wNTk5NiAxLjc4OTQ4LC0wLjExOTkzIDIuNzExMzMsLTAuMTgxN2MxLjQ4MDQ1LC0wLjA5MDczIDEuNDgwNDUsLTAuMDkwNzMgMi45OTA4MiwtMC4xODMyOWMxLjA2NTUyLC0wLjA2NTQgMi4xMzEwNCwtMC4xMzA4IDMuMjI4ODUsLTAuMTk4MThjMzEuMzQ1ODIsLTEuODUwNzUgNjIuNjMzMDYsLTIuMzU1MzcgOTQuMDI5OTgsLTIuMzU5MzN6bS0xMDMuMzMzMTEsMjAuMTgxODRjLTMuMjMzMDIsMC4yMDI3MyAtNi40NjgwMywwLjM2NTA5IC05LjcwMzA3LDAuNTMxOTJjLTE1Ljc0OTE2LDAuODY1NTMgLTMxLjQyNTU1LDIuNDI5MDQgLTQ3LjExMzI4LDQuMDM1MTVjLTEuMDIyMTIsMC4xMDM0MiAtMi4wNDQyMywwLjIwNjg0IC0zLjA5NzMyLDAuMzEzMzljLTEyLjE1MjY2LDEuMjM4NyAtMjQuMTc2NDYsMi43NzUwOSAtMzYuMjA0MTksNC45MTAwM2MtMi45MTE3NCwwLjUwNjcxIC01LjgzMTY5LDAuOTU1IC04Ljc1MzE4LDEuNDAxNThjLTEuNTIzNjcsMC4yMzU5IC0xLjUyMzY3LDAuMjM1OSAtMy4wNzgxMiwwLjQ3NjU3Yy0yLjAxNzY5LDAuMzEwODEgLTQuMDM1OTQsMC42MTgwMyAtNi4wNTQ2OSwwLjkyMTg3Yy02LjIzMjMxLDAuOTcyMzEgLTEyLjI5MTUsMi4yNjgyNyAtMTguMzk2OTcsMy44NTIwNWMtMy4xMjA5MywwLjgwNDM5IC02LjI1ODEyLDEuNDc5NDEgLTkuNDE1NTMsMi4xMjQ1MWMtNS4yOTUwMywxLjExOTA5IC0xMC41NTg5OCwyLjMyNzMxIC0xNS44MTI1LDMuNjI1Yy0wLjY2Njc3LDAuMTYyMzQgLTEuMzMzNTQsMC4zMjQ2OSAtMi4wMjA1MSwwLjQ5MTk1Yy0zLjYxMTM1LDAuOTAzNzUgLTYuOTczNzYsMi4wNDc0MiAtMTAuNDE2OTksMy40NDU1NWMtMi4yMjMxNiwwLjY0NjA1IC00LjQ1Mjk3LDEuMjY5NDUgLTYuNjg3NSwxLjg3NWMtNS45NzYwOSwxLjY5NTA4IC0xMS42Mzc3NiwzLjYwNzI4IC0xNy4zMTI1LDYuMTI1Yy0wLjYxMjE0LDAuMjY3OTcgLTEuMjI0MjksMC41MzU5MyAtMS44NTQ5OCwwLjgxMjAxYy0yMC4yMDkzMyw4LjI3MDIgLTIwLjIwOTMzLDguMjcwMiAtMzUuMTQ1MDIsMjMuMTg3OTljLTEuMzA2ODksMy41NjY4NyAtMS41MDQxNyw2LjQ0MzUzIC0wLjMyODEyLDEwLjA3NDIyYzMuMTYzOTgsNi44MDc3NSA4LjMxMDQsMTMuNzcwMTcgMTUuMzI4MTIsMTYuOTI1NzhjMi4wMDQ4NywtMC4yNTc1NCAyLjAwNDg3LC0wLjI1NzU0IDQsLTFjMS4zMzE2NCwtMC4zNDAwNSAyLjY2NDc3LC0wLjY3NDMzIDQsLTFjMC4xMzUzNSwxLjIxNjg4IDAuMjcwNywyLjQzMzc1IDAuNDEwMTYsMy42ODc1YzAuNzAwNTUsMi43OTQ4NCAxLjIwNzYzLDQuMDA5NjQgMy40ODc3OSw1LjgxNjQxYzIuNDY5OTksMS4zMTA3NSA0Ljk1NTY5LDIuNDI3NTYgNy41Mzk1NSwzLjQ5NjA5YzAuODcyMDUsMC4zOTMxNyAxLjc0NDEsMC43ODYzMyAyLjY0MjU4LDEuMTkxNDFjNC43ODAyNywyLjE3MzY4IDQuNzgwMjcsMi4xNzM2OCA5LjkxOTkyLDIuODA4NTljMCwwLjY2IDAsMS4zMiAwLDJjLTIuMDYzMzEsLTAuNjIyMzEgLTQuMTI1NjIsLTEuMjQ3OTcgLTYuMTg3NSwtMS44NzVjLTEuMTQ4NTUsLTAuMzQ4MDQgLTIuMjk3MTEsLTAuNjk2MDkgLTMuNDgwNDcsLTEuMDU0NjhjLTMuMzMyMDMsLTEuMDcwMzIgLTMuMzMyMDMsLTEuMDcwMzIgLTYuMDcwMzEsLTIuMjAzMTNjLTIuMzI0ODcsLTEuMDQ2MTkgLTIuMzI0ODcsLTEuMDQ2MTkgLTUuMjYxNzIsLTAuODY3MTljLTAuMTUwMywxMC4zMDgxOCAwLjI4MzkzLDIwLjUyMTQgMC44NDE4OSwzMC44MDk2NGMxLjIyMTI0LDIyLjk3ODk0IDEuNDQyMDYsNDUuOTA3ODcgMS4zOTM4Myw2OC45MTQyOGMtMC4wMDkwNSw1LjI3MTQzIC0wLjAwNzAyLDEwLjU0Mjg1IC0wLjAwNjY0LDE1LjgxNDI5Yy0wLjAwMDkyLDguODM3MDUgLTAuMDA5NDUsMTcuNjc0MDcgLTAuMDIzMjcsMjYuNTExMTFjLTAuMDE1NzEsMTAuMDgzMjggLTAuMDIxLDIwLjE2NjUyIC0wLjAyMDI2LDMwLjI0OTgxYzAuMDAwNjgsMTAuOTMwNjIgLTAuMDA2MzEsMjEuODYxMjMgLTAuMDE1NDUsMzIuNzkxODVjLTAuMDAyMDksMy4wNjQ0NSAtMC4wMDI4NCw2LjEyODg5IC0wLjAwMzI0LDkuMTkzMzRjLTAuMDA2MzksMjQuOTg0MzcgLTAuMzIzMDEsNDkuOTQwNDggLTAuOTcxODIsNzQuOTE2MjljLTAuMjM2ODUsOS4yMTIzIC0wLjQxNTI4LDE4LjQyNTQ3IC0wLjU4Mzk2LDI3LjYzOTI0Yy0wLjAyMjQ4LDEuMjE4NDEgLTAuMDIyNDgsMS4yMTg0MSAtMC4wNDU0MywyLjQ2MTQ1Yy0wLjA5MjM3LDUuMDEwNjYgLTAuMTgzMDEsMTAuMDIxMzUgLTAuMjcyODMsMTUuMDMyMDVjLTAuMDQ3ODYsMi42Njc0NCAtMC4wOTYwMSw1LjMzNDg2IC0wLjE0NDI0LDguMDAyMjljLTAuMTY5ODQsOS4zOTY3MiAtMC4zMzgzNywxOC43OTM0NyAtMC41MDU3NiwyOC4xOTAyNGMtMC4xNTM1OSw4LjYyMDIyIC0wLjMxMDQzLDE3LjI0MDM3IC0wLjQ2ODY5LDI1Ljg2MDVjLTAuMTM4MTYsNy41MzQyMiAtMC4yNzM4MiwxNS4wNjg0OCAtMC40MDc3LDIyLjYwMjc4Yy0wLjA3ODk5LDQuNDQyMTkgLTAuMTU4ODcsOC44ODQzNiAtMC4yNDE0MSwxMy4zMjY0OWMtMC4xOTMyOCwxMC40Mzk3MSAtMC4zNjEwOSwyMC44NzkzOSAtMC40OTM2NiwzMS4zMjAwNWMtMC4wMzIxMiwyLjQyMTc0IC0wLjA2ODU2LDQuODQzMzkgLTAuMTA1NTMsNy4yNjUwNmMtMC4wNTk2Miw0LjAxOTI0IC0wLjEwMTcsOC4wMzgzNSAtMC4xMzE2NSwxMi4wNTc5MmMtMC4wMTM0MSwxLjQ5MzkgLTAuMDMxOTQsMi45ODc3NyAtMC4wNTYyLDQuNDgxNTRjLTAuMTg1MDcsMTEuNzk2NzggMC42NTQ1MSwyMy45MjcyNSA4LjI2MjAyLDMzLjU1OTc4YzE0LjA3Mzg1LDEyLjYyMzIgMjkuOTMxNCwxNC41ODM0MSA0Ny45NDI2OSwxMy44MzY1YzMuMzg2NzIsLTAuMTg0NjcgNi43NzE3NiwtMC4zODI0NSAxMC4xNTY3LC0wLjU5NjQxYzMuODI2OTQsLTAuMjQxMTkgNy42NTQ4OCwtMC40NjU3NyAxMS40ODI3MywtMC42OTE5OWMxLjE3ODIyLC0wLjA3MDA3IDEuMTc4MjIsLTAuMDcwMDcgMi4zODAyMywtMC4xNDE1NWM4LjAzNzU2LC0wLjQ3Mzk0IDE2LjA3ODIyLC0wLjg2OSAyNC4xMjA5LC0xLjI0NDQ0YzAuNzA4MDUsLTAuMDMzMTYgMS40MTYxMSwtMC4wNjYzMiAyLjE0NTYxLC0wLjEwMDQ5YzMuNjU0NTIsLTAuMTcwODQgNy4zMDkxLC0wLjM0MDE0IDEwLjk2MzczLC0wLjUwODMyYzQuNzExNjQsLTAuMjE2ODUgOS40MjMxMywtMC40MzY5NCAxNC4xMzQ2LC0wLjY1NzQyYzEyLjUyNDcxLC0wLjU4NTY3IDI1LjA0OTYsLTEuMTY3NDggMzcuNTc0NTgsLTEuNzQ3MjRjOC4yOTQxNiwtMC4zODM5NSAxNi41ODgyMywtMC43Njk2OCAyNC44ODIxNiwtMS4xNTg1N2MzLjkwMTU4LC0wLjE4MjgzIDcuODAzMTksLTAuMzY0NTcgMTEuNzA0OTYsLTAuNTQzMzdjMTYuNDk0NDcsLTAuNzU2MjMgMzIuOTY2NjgsLTEuNjM5MjEgNDkuNDM5MzksLTIuNzc5MjZjOC42MjM4NiwtMC41OTA2OCAxNy4yMjEzOSwtMS4wMTQ5OCAyNS44NjQ2OSwtMS4xOTQ3OGMyLjAwMzMxLC0wLjA1MTIxIDQuMDA2NjIsLTAuMTAyNDMgNi4wMDk5MiwtMC4xNTQzNWMyLjA2MDU3LC0wLjA1MjcxIDQuMTIxMTgsLTAuMTAyOTUgNi4xODE4MiwtMC4xNTI1N2MyNC4zNTMzNCwtMC41OTE3MiA0OC42NDI4OCwtMS41NzgzMyA3Mi45NTY3LC0zLjEyNTk0YzE0LjI2MzUyLC0wLjkwNTE4IDI4LjUwMjQ2LC0xLjQ5MjMxIDQyLjc4OTA2LC0xLjg2MDExYzQuNzY5NzIsLTAuMTI0MzYgOS41MTA0NiwtMC4zNDIzMSAxNC4yNjk1MywtMC42Nzk2OWM3LjA1OTkxLC0wLjQ5NTE3IDE0LjExMzMsLTAuNjg1MTcgMjEuMTg3NSwtMC44NzVjMTcuMTQ3NTMsLTAuNDczNzYgMzQuMjczNDIsLTEuMzU5OTEgNTEuNDA0NjcsLTIuMjI3ODNjMTYuNzE5MDMsLTAuODQ2NjQgMzMuNDMxNiwtMS42OTA5MSA1MC4xNjc4NCwtMi4xMDYxNWMzLjA4MDkzLC0wLjA3ODYxIDYuMTYwMDQsLTAuMTgwNzggOS4yMzk5OSwtMC4yOTEwMmMxLjI4NTUyLC0wLjAzNDQ4IDIuNTcxMDQsLTAuMDY4OTYgMy44OTU1MSwtMC4xMDQ0OWMxLjMzOTU4LC0wLjA1NDg0IDIuNjc5MSwtMC4xMTExNCA0LjAxODU1LC0wLjE2ODk0YzEuMjA4NjYsLTAuMDQzMDMgMi40MTczMiwtMC4wODYwNSAzLjY2MjYsLTAuMTMwMzhjNS40NzQwNCwtMC45NTMzMyA4Ljg2NDIzLC0zLjQ0ODk3IDEyLjA2Mjc0LC03LjkwNTk5YzMuNDYzMjEsLTUuNzUwMyAzLjA1NTE2LC0xMS42NDc2MiAyLjk5OTg0LC0xOC4xODc5NGMwLjAwNjMxLC0xLjM2OTc0IDAuMDE0ODIsLTIuNzM5NDcgMC4wMjUzMiwtNC4xMDkxOGMwLjAyMjQ0LC0zLjc1MDkxIDAuMDEzOTYsLTcuNTAxMjEgMC4wMDAzMSwtMTEuMjUyMTNjLTAuMDA5MjgsLTQuMDUyNiAwLjAxMDMsLTguMTA1MDggMC4wMjYzMiwtMTIuMTU3NjRjMC4wMjM4NSwtNy4wMjY4OCAwLjAyOTQ1LC0xNC4wNTM1OCAwLjAyMjY2LC0yMS4wODA1Yy0wLjAwOTg0LC0xMC4yMDc1MiAwLjAwOCwtMjAuNDE0ODYgMC4wMzIzNiwtMzAuNjIyMzVjMC4wMzg5MywtMTYuNjI1MzkgMC4wNTU1NiwtMzMuMjUwNzMgMC4wNTgyMywtNDkuODc2MTZjMC4wMDI2MywtMTYuMDM4NDQgMC4wMTU2LC0zMi4wNzY4MiAwLjA0Mjk3LC00OC4xMTUyM2MwLjAwMTY4LC0wLjk4MjYzIDAuMDAzMzUsLTEuOTY1MjUgMC4wMDUwNywtMi45Nzc2NmMwLjAwODQ3LC00LjkzNjA0IDAuMDE3MTQsLTkuODcyMDggMC4wMjU5LC0xNC44MDgxMmMwLjEwMjA2LC01Ny44MzQzOCAwLjEzNTY5LC0xMTUuNjY4ODIgMC4xMjE2MiwtMTczLjUwMzI5Yy0wLjc3NDU2LC0wLjA0NTAzIC0xLjU0OTExLC0wLjA5MDA1IC0yLjM0NzE0LC0wLjEzNjQ1Yy0yOS45Njc5MywtMS43NDQ1NyAtNTkuOTAzNDUsLTMuNTYxMTYgLTg5Ljc3Nzg2LC02LjU1MTA1Yy0xLjA4NjgxLC0wLjEwODIzIC0yLjE3MzYyLC0wLjIxNjQ2IC0zLjI5MzM3LC0wLjMyNzk3Yy0zLjA1MTE4LC0wLjMwNjI2IC02LjEwMTcyLC0wLjYxOCAtOS4xNTE5NCwtMC45MzM3NWMtMS4zMzQ3NiwtMC4xMzcyOCAtMS4zMzQ3NiwtMC4xMzcyOCAtMi42OTY0OSwtMC4yNzczNGMtMy45Njc0MSwtMC40MjIzNiAtNy44MjQwNiwtMC45NjE5NyAtMTEuNzMzMiwtMS43NzM0NGMtMS42NTY0NCwtMC4xNjg4NSAtMy4zMTU3NSwtMC4zMTEzNSAtNC45NzY1NiwtMC40Mjk2OGMtMC45MTc4MSwtMC4wNzM0OCAtMS44MzU2MywtMC4xNDY5NiAtMi43ODEyNSwtMC4yMjI2NmMtMS45MTg2NCwtMC4xNDkgLTMuODM3OTUsLTAuMjg5NTYgLTUuNzU3ODEsLTAuNDIxODhjLTEuMzcyODYsLTAuMTE0MDggLTEuMzcyODYsLTAuMTE0MDggLTIuNzczNDQsLTAuMjMwNDZjLTAuODMyMjUsLTAuMDYxNzIgLTEuNjY0NSwtMC4xMjM0MyAtMi41MjE5OCwtMC4xODcwMmMtMi42NDUyOSwtMC42MTQyNiAtMy41NTczOSwtMS4zNjA5NSAtNS4xODg5NiwtMy41MDgzYy0wLjkxNjI1LC0yLjc4MTI1IC0xLjY4Mzg5LC01LjQ3NTU0IC0yLjM3NSwtOC4zMTI1Yy0wLjMyMTM0LC0xLjI3MjQyIC0wLjMyMTM0LC0xLjI3MjQyIC0wLjY0OTE3LC0yLjU3MDU1Yy0zLjAxNjM0LC0xMi4wNzc1MSAtNS42Nzc2MiwtMjQuMjM3MjkgLTguMzYxOTEsLTM2LjM5MTc0Yy0wLjY3NiwtMy4wNjAxOCAtMS4zNTI3NiwtNi4xMjAyIC0yLjAyOTg3LC05LjE4MDEzYy0wLjM0ODE3LC0xLjU3Mzg1IC0wLjY5NjAzLC0zLjE0Nzc2IC0xLjA0MzU4LC00LjcyMTc0Yy0yLjEzODMsLTkuNjc2ODkgLTQuMzU4NDksLTE5LjMyNDkxIC02LjcyNzk3LC0yOC45NDgzNGMtMi41Nzc1NywtMTAuNTA2MDQgLTQuNjU3ODIsLTIxLjA3NjA3IC02LjY0ODQ0LC0zMS43MDcwM2MtMS4wNzgwMywtNS43NTY0IC0yLjIxOTQsLTExLjQ5NzE5IC0zLjQxNDA2LC0xNy4yMzA0N2MtMC4xNjMyMywtMC43OTc3NyAtMC4zMjY0NSwtMS41OTU1MyAtMC40OTQ2MywtMi40MTc0OGMtMC40OTkyMSwtMy41NTY4MSAtMC40OTkyMSwtMy41NTY4MSAtMi4yNTUzNywtNi41MjAwMmMtMC40Nzc1LC0yLjEzMTUyIC0wLjkwMjEsLTQuMjc0OTQgLTEuMzA0NjksLTYuNDIxODdjLTAuMTI0NjQsLTAuNjU1ODMgLTAuMjQ5MjksLTEuMzExNjYgLTAuMzc3NzEsLTEuOTg3MzdjLTAuNDAxMjIsLTIuMTEyOTEgLTAuNzk3MzMsLTQuMjI2NzMgLTEuMTkyNiwtNi4zNDA3NmMtMi44NDk5MSwtMTcuNDcyNTEgLTIuODQ5OTEsLTE3LjQ3MjUxIC04LjEyNSwtMzQuMjVjLTYxLjk5NzI4LC00LjU2MDA1IC0xMjQuODg2MTEsLTUuMTY5MiAtMTg2LjkzMzY1LC0xLjEyOTU3eiIgZmlsbD0iIzFGMUYxRiIgaWQ9InN2Z18zIi8+DQogICAgICAgIDxwYXRoIHN0cm9rZT0ibnVsbCIgc3Ryb2tlLWRhc2hhcnJheT0iMiwyIiBkPSJtMzQ1LjM5OTQ4LDcuNjg4NThjMy4yMDk4MywtMC4wMDEwOCA2LjQxOTY0LC0wLjAwNTgxIDkuNjI5NDcsLTAuMDExMTNjNS4xMzgyNCwtMC4wMDY4OSAxMC4yNzYzMiwtMC4wMDExOCAxNS40MTQ1NCwwLjAxNDRjMS45MDA2MSwwLjAwNDgxIDMuODAxMjIsMC4wMDY3NCA1LjcwMTg0LDAuMDA1NDJjMTAuNzcwODYsLTAuMDAxNzMgMjEuMjkxNjUsMC40NjYzNCAzMS45ODAxMiwxLjgzNTM2YzUuNDkyODEsMC42NjI1NiAxMC45NzMzNCwwLjkxMTY3IDE2LjQ5OTU3LDEuMDkyMzZjMS4wMTU3OCwwLjAzODY3IDIuMDMxNTYsMC4wNzczNSAzLjA3ODEzLDAuMTE3MTljMi40MzIxNCwwLjA5MTc4IDQuODY0MzIsMC4xNzc3OSA3LjI5Njg3LDAuMjU3ODFjMC4zMywxLjY1IDAuNjYsMy4zIDEsNWMwLjU4MTM3LDAuMDkxNTMgMS4xNjI3MywwLjE4MzA1IDEuNzYxNzIsMC4yNzczNWMyLjc5MTg1LDAuOTAxMzggNC4wMjQyMywyLjE3NjA2IDYuMDUwNzgsNC4yODUxNWMwLjY5NjA5LDAuNzIxODggMS4zOTIxOSwxLjQ0Mzc1IDIuMTA5MzgsMi4xODc1YzIuNTE0NTIsMi43MjI0OSA0Ljk0NzU1LDUuNTA2MjggNy4zNjMyOCw4LjMxNjQxYzIuMjE1MzEsMi40OTc5MSA0LjU4MzgyLDQuODEzODQgNi45NjQ4NCw3LjE1MjM0YzIuNDU2MzUsMi41MDAyMSA0LjcxMzA5LDUuMTU4MDYgNyw3LjgxMjVjMi4xOTk0OSwyLjQ3NDQzIDQuNTQyODIsNC43NzQ5MyA2LjkwNTAzLDcuMDkyNTNjMS43ODQ5MSwxLjgxNTE1IDMuNDU0NDYsMy42ODUxMyA1LjExNDUsNS42MTQ1YzMuNTQ0NDEsNC4wNzYzMSA3LjIwODExLDguMDIzNzMgMTAuOTE3OTcsMTEuOTQ5MjJjMS4zMTkzOSwxLjQwMTk5IDIuNjM4MzksMi44MDQzNCAzLjk1NzAzLDQuMjA3MDNjMC42NDkyMSwwLjY5MDQ2IDEuMjk4NDEsMS4zODA5MSAxLjk2NzI5LDIuMDkyMjljNi4xMTcyNSw2LjUyMjIyIDEyLjE4NDgsMTMuMDkwOTEgMTguMTM4MTgsMTkuNzYzMThjNC44NTYwMyw1LjQyMzE2IDkuODY2MSwxMC42OTg3MyAxNC44NjU5NywxNS45ODg3N2M0LjQwODg0LDQuNjcxNzQgOC43MzQwMSw5LjQwMDgzIDEzLjAwNTEyLDE0LjE5ODczYzIuMzE2MzQsMi41NDI2OCA0Ljc0OTIxLDQuOTQ2NjkgNy4yMDMxMyw3LjM1NTQ3YzEuNzg2MzEsMS44MTk2MyAzLjQ1MDU2LDMuNzExNTcgNS4xMTMyOCw1LjY0NDUzYzIuNDE4NjgsMi44MDgyNyA0LjkyMTUsNS40NjIyMSA3LjU2MjUsOC4wNjI1YzMuMjUwMywzLjIwMDMgNi4yNDcyNCw2LjU0MjI1IDkuMjE4NzUsMTBjMS44NTU1LDIuMDgzMzcgMy43OTM0OCw0LjA0MjgxIDUuNzgxMjUsNmM0LjY5NDQ4LDQuNjMwOCA5LjAzNTM0LDkuNTE1MjkgMTMuMTI1LDE0LjY4NzVjMi44MzQ3MSwzLjQ5NjE1IDYuMTAxNDYsNi41NTAxNSA5LjMwNDY5LDkuNzA3MDNjNC41NDgyMiw0LjQ5NzM3IDguOTU1MTcsOS4wMzg3NiAxMy4wOTc2NSwxMy45MTQwN2MxLjQ1NTU3LDEuNzI3MiAxLjQ1NTU3LDEuNzI3MiAzLjE2NDA3LDMuMjg5MDZjMS4zMDg1OSwxLjQwMjM0IDEuMzA4NTksMS40MDIzNCAxLjMwODU5LDMuNDAyMzRjMC41NTY4OCwwLjIwNjI1IDEuMTEzNzUsMC40MTI1IDEuNjg3NSwwLjYyNWMzLjMwODUzLDEuOTY3MjQgNS4wMjgwNiw0LjI2NTYzIDcuMzEyNSw3LjM3NWMwLDAuOTkgMCwxLjk4IDAsM2MwLjk5LDAgMS45OCwwIDMsMGMwLDEuMzIgMCwyLjY0IDAsNGMtMy4wNDk4NCwxLjUyNDkyIC01LjY0MjM0LDEuMjM1NjMgLTksMWMtMS41MTU2MiwtMS4yODEyNSAtMS41MTU2MiwtMS4yODEyNSAtMywtM2MtMC41MzIzOCwtMC41OTI5NyAtMS4wNjQ3NywtMS4xODU5MyAtMS42MTMyOCwtMS43OTY4N2MtMC41NjA3NCwtMC42NDQ1MyAtMS4xMjE0OSwtMS4yODkwNiAtMS42OTkyMiwtMS45NTMxM2MtMC42MTIzLC0wLjcwMjU0IC0xLjIyNDYxLC0xLjQwNTA4IC0xLjg1NTQ3LC0yLjEyODljLTEuNjY0MDUsLTEuOTI2NjIgLTMuMzExODcsLTMuODY1ODYgLTQuOTU3MDMsLTUuODA4NmMtMi40OTYyOSwtMi45MTY3MiAtNS4xMjYxNSwtNS42MjkwOSAtNy44NzUsLTguMzEyNWMtNC42MTEyMywtNC41MTM1MyAtOS4wMTMyMywtOS4xMDYzIC0xMy4yMTg3NSwtMTRjLTEuODU1NSwtMi4wODMzNyAtMy43OTM0OCwtNC4wNDI4MSAtNS43ODEyNSwtNmMtMy4yNTAzLC0zLjIwMDI5IC02LjI0NzI0LC02LjU0MjI0IC05LjIxODc1LC0xMGMtMi40ODM4MiwtMi43ODg4NSAtNS4xNDgzNiwtNS4zNzY4NyAtNy44MDg1OSwtNy45OTYwOWMtMi41NDYwNCwtMi41ODYzNyAtNC44OTI4OCwtNS4zMTkyNiAtNy4yNTc4MiwtOC4wNzAzMWMtMS42NzQ4OCwtMS44ODg1NCAtMy40MTQzMiwtMy42NjUxNSAtNS4yMTQ4NCwtNS40MzM2Yy0zLjAzMTc1LC0yLjk4NDU5IC01LjgzNjAzLC02LjExMDQ2IC04LjYxNzE5LC05LjMyODEyYy01LjIyMjE2LC02LjAyMzkgLTEwLjU0ODI4LC0xMS45MDAyIC0xNi4yMzA0NywtMTcuNDkyMTljLTEuNjQ2MTQsLTEuNjczMzggLTMuMTgzOTIsLTMuNDAwNjIgLTQuNzE0ODQsLTUuMTc5NjljLTMuNTg2MjIsLTQuMTU4MDYgLTcuMzE2MzgsLTguMTc0MDQgLTExLjA2MjUsLTEyLjE4NzVjLTAuODk3MzEsLTAuOTYyOTMgLTAuODk3MzEsLTAuOTYyOTMgLTEuODEyNzQsLTEuOTQ1MzFjLTIuNTE0MTcsLTIuNjg3NzQgLTUuMDQxNiwtNS4zNDY1MiAtNy42NDQyOSwtNy45NDkyMmMtMi43MzcyNCwtMi43MzcyNCAtNS4zNjQ4OCwtNS41NjU1MSAtNy45ODA0NywtOC40MTc5N2MtMS4wNjI0NiwtMS4xNTQ5OCAtMi4xMjQ5NiwtMi4zMDk5MyAtMy4xODc1LC0zLjQ2NDg0Yy0wLjUzODgzLC0wLjU4NjM2IC0xLjA3NzY2LC0xLjE3MjczIC0xLjYzMjgxLC0xLjc3Njg2Yy0yLjU1NTA5LC0yLjc3ODA0IC01LjExNzkzLC01LjU0ODkgLTcuNjc5NjksLTguMzIwOGMtMy43NjIxMSwtNC4wNzIzOCAtNy41MTA2OCwtOC4xNTY2NSAtMTEuMjUsLTEyLjI1Yy01LjA0ODA5LC01LjUxNyAtMTAuMTYwNzUsLTEwLjk3MTU2IC0xNS4yOTgxLC0xNi40MDU1MWMtMy43NTAwNywtMy45ODA1NyAtNy4zNzgzMywtOC4wMzcxOCAtMTAuOTE3NzIsLTEyLjIwNjc5Yy0xLjQwNDc1LC0xLjY4Njg0IC0xLjQwNDc1LC0xLjY4Njg0IC0zLjQ3MTY4LC0yLjU3NTJjMCwxLjY1IDAsMy4zIDAsNWMtMS4zMiwwIC0yLjY0LDAgLTQsMGMtMC42NiwwLjY2IC0xLjMyLDEuMzIgLTIsMmMtMi4xODI4NCwtMi42NTczNyAtMy4yNzYzNCwtNC42NTU2OSAtNCwtOGMtNjEuOTk3MjgsLTQuNTYwMDUgLTEyNC44ODYxMSwtNS4xNjkyIC0xODYuOTMzNjUsLTEuMTI5NTdjLTMuMjMzMDIsMC4yMDI3MyAtNi40NjgwMywwLjM2NTA5IC05LjcwMzA3LDAuNTMxOTJjLTE1Ljc0OTE2LDAuODY1NTMgLTMxLjQyNTU1LDIuNDI5MDQgLTQ3LjExMzI4LDQuMDM1MTVjLTEuMDIyMTIsMC4xMDM0MiAtMi4wNDQyMywwLjIwNjg0IC0zLjA5NzMyLDAuMzEzMzljLTEyLjE1MjY2LDEuMjM4NyAtMjQuMTc2NDYsMi43NzUwOSAtMzYuMjA0MTksNC45MTAwM2MtMi45MTE3NCwwLjUwNjcxIC01LjgzMTY5LDAuOTU1IC04Ljc1MzE4LDEuNDAxNThjLTEuNTIzNjcsMC4yMzU5IC0xLjUyMzY3LDAuMjM1OSAtMy4wNzgxMiwwLjQ3NjU3Yy0yLjAxNzY5LDAuMzEwODEgLTQuMDM1OTQsMC42MTgwMyAtNi4wNTQ2OSwwLjkyMTg3Yy02LjIzMjMxLDAuOTcyMzEgLTEyLjI5MTUsMi4yNjgyNyAtMTguMzk2OTcsMy44NTIwNWMtMy4xMjA5MywwLjgwNDM5IC02LjI1ODEyLDEuNDc5NDEgLTkuNDE1NTMsMi4xMjQ1MWMtNS4yOTUwMywxLjExOTA5IC0xMC41NTg5OCwyLjMyNzMxIC0xNS44MTI1LDMuNjI1Yy0wLjY2Njc3LDAuMTYyMzQgLTEuMzMzNTQsMC4zMjQ2OSAtMi4wMjA1MSwwLjQ5MTk1Yy0zLjYxMTM1LDAuOTAzNzUgLTYuOTczNzYsMi4wNDc0MiAtMTAuNDE2OTksMy40NDU1NWMtMi4yMjMxNiwwLjY0NjA1IC00LjQ1Mjk3LDEuMjY5NDUgLTYuNjg3NSwxLjg3NWMtNS45NzYwOSwxLjY5NTA4IC0xMS42Mzc3NiwzLjYwNzI4IC0xNy4zMTI1LDYuMTI1Yy0wLjYxMjE0LDAuMjY3OTcgLTEuMjI0MjksMC41MzU5MyAtMS44NTQ5OCwwLjgxMjAxYy0yMC43MjgxMSw4LjM2OTggLTIwLjcyODExLDguMzY5OCAtMzQuOTkyNjgsMjQuMjQyNjhjLTAuODA1NDcsNi44MjQ1NSAxLjkzNzc2LDExLjExMzM5IDUuNjYwMTYsMTYuNjMyODFjMi43MDU3OSwyLjg2MDQxIDUuNTc4OTYsNS42NTA2NyA5LjE4NzUsNy4zMTI1YzIuMDgxNjgsLTAuMjcwMzggMi4wODE2OCwtMC4yNzAzOCA0LC0xYzEuMzMzMzMsLTAuMzMzMzMgMi42NjY2NywtMC42NjY2NiA0LC0xYzIuMjkwMTQsMy40MzUyMSAyLjE3ODQzLDQuOTg1MzMgMiw5YzAuODE3MjcsMC4yNTUyNCAxLjYzNDUzLDAuNTEwNDcgMi40NzY1NiwwLjc3MzQ0YzQuMDY4NzEsMS40MTYzOCA3Ljk2NDYzLDMuMTAxNjIgMTEuODk4NDQsNC44NTE1NmMwLjczNjA1LDAuMzI0ODUgMS40NzIxMSwwLjY0OTY5IDIuMjMwNDcsMC45ODQzOGMxLjc5OTI0LDAuNzk0NDcgMy41OTcwNCwxLjU5MjIxIDUuMzk0NTMsMi4zOTA2MmMwLDAuNjYgMCwxLjMyIDAsMmMtNS40MTE2NywtMC4zMTgzMyAtOS43NDQ0MywtMS41NTMwOSAtMTQuODAwNzgsLTMuNTUwNzhjLTEuMTYzMTQsLTAuNDU2NzMgLTIuMzI2MjgsLTAuOTEzNDYgLTMuNTI0NjYsLTEuMzg0MDNjLTAuODgyNiwtMC4zNTE1MSAtMS43NjUyMSwtMC43MDMwMiAtMi42NzQ1NiwtMS4wNjUxOWMwLjA1NTM1LDAuNzMxODcgMC4xMTA3LDEuNDYzNzMgMC4xNjc3MiwyLjIxNzc4YzAuMjYyMTYsMy41MTAzNSAwLjUxNTkxLDcuMDIxMjYgMC43Njk3OCwxMC41MzIyMmMwLjEzMDUyLDEuNzIyODMgMC4xMzA1MiwxLjcyMjgzIDAuMjYzNjcsMy40ODA0N2MxLjk1MDA0LDI3LjMwMDUxIDEuOTUwNjksNTQuNjE5MjkgMS45MzMxNiw4MS45NzI1NGMtMC4wMDI1OSw1LjMxMTU2IC0wLjAwMDE3LDEwLjYyMzExIDAuMDAxMzgsMTUuOTM0NjdjMC4wMDE4MSw4LjkyNjY5IC0wLjAwMDU0LDE3Ljg1MzM2IC0wLjAwNTM0LDI2Ljc4MDA1Yy0wLjAwNTQxLDEwLjE5MzczIC0wLjAwMzY5LDIwLjM4NzQ0IDAuMDAxODMsMzAuNTgxMTdjMC4wMDQ2LDguODY0ODYgMC4wMDUxNCwxNy43Mjk3MSAwLjAwMjU2LDI2LjU5NDU3Yy0wLjAwMTUzLDUuMjQ0MTMgLTAuMDAxODYsMTAuNDg4MjUgMC4wMDE1NCwxNS43MzIzN2MwLjAxNDAxLDI1LjE0MjQ1IC0wLjI4MzAyLDUwLjI1NDUzIC0wLjk0MDM2LDc1LjM4ODNjLTAuMjM4MzcsOS4yMDc3NyAtMC40MTY0NCwxOC40MTY0MyAtMC41ODQ4NiwyNy42MjU3MWMtMC4wMTQ5OSwwLjgxMjMyIC0wLjAyOTk3LDEuNjI0NjUgLTAuMDQ1NDIsMi40NjE1OWMtMC4wOTIzNyw1LjAxMDYxIC0wLjE4MzAzLDEwLjAyMTI2IC0wLjI3Mjg0LDE1LjAzMTkxYy0wLjA0Nzg2LDIuNjY3NDQgLTAuMDk2MDEsNS4zMzQ4NiAtMC4xNDQyNCw4LjAwMjI5Yy0wLjE2OTg0LDkuMzk2NzIgLTAuMzM4MzcsMTguNzkzNDcgLTAuNTA1NzYsMjguMTkwMjRjLTAuMTUzNTksOC42MjAyMiAtMC4zMTA0MywxNy4yNDAzNyAtMC40Njg2OSwyNS44NjA1Yy0wLjEzODE2LDcuNTM0MjIgLTAuMjczODIsMTUuMDY4NDggLTAuNDA3NywyMi42MDI3OGMtMC4wNzg5OSw0LjQ0MjE5IC0wLjE1ODg3LDguODg0MzYgLTAuMjQxNDEsMTMuMzI2NDljLTAuMTkzMjgsMTAuNDM5NzEgLTAuMzYxMDksMjAuODc5MzkgLTAuNDkzNjYsMzEuMzIwMDVjLTAuMDMyMTIsMi40MjE3NCAtMC4wNjg1Niw0Ljg0MzM5IC0wLjEwNTUzLDcuMjY1MDZjLTAuMDU5NjIsNC4wMTkyNCAtMC4xMDE3LDguMDM4MzUgLTAuMTMxNjUsMTIuMDU3OTJjLTAuMDEzNDEsMS40OTM5IC0wLjAzMTk0LDIuOTg3NzcgLTAuMDU2Miw0LjQ4MTU0Yy0wLjE3MTY5LDEwLjk0NDEzIDAuMzA4ODIsMjMuNDYyNjcgNy4yNjIwMiwzMi41NTk3OGMxMi4xNDczNiwxMC44NTU1OCAyNi4yNzE5NywxNC4wODg5MyA0MiwxNWMtMC41NzM0NSwyLjg2NzI1IC0wLjg2MTQ1LDMuODYxNDUgLTMsNmMtMS45NTMxMiwwLjI3MzQ0IC0xLjk1MzEyLDAuMjczNDQgLTQuMjUsMC4zNzVjLTQuNTc4LDAuMzg3NiAtNi45NDIxOCwyLjA1ODg2IC0xMC43NSw0LjYyNWMtMTAuMTAxMzMsMC43MTk3MiAtMjMuODU4OTMsLTEuNjU5NzcgLTMxLjk4ODI4LC03Ljk4NDM3Yy00LjU4NjM4LC00LjU5NTI5IC04LjM1MTA3LC05LjY3OTQgLTEyLjAxMTcyLC0xNS4wMTU2M2MtMC42MDE5OSwtMC44NDE3NiAtMS4yMDM5OCwtMS42ODM1MSAtMS44MjQyMiwtMi41NTA3OGMtOS4wODk3MywtMTQuMzU1ODMgLTguNDIwNiwtMzIuMDkyNzggLTguMzA0NjksLTQ4LjQzNzVjMC4wMDcyNCwtMS44NTE1NSAwLjAxMzkxLC0zLjcwMzEgMC4wMjAwNCwtNS41NTQ2NmMwLjAyMjg3LC01LjgxOTEzIDAuMDY0MjEsLTExLjYzODA1IDAuMTA4ODcsLTE3LjQ1NzA2YzAuMDA2OCwtMC45MzI5IDAuMDEzNiwtMS44NjU4IDAuMDIwNiwtMi44MjY5N2MwLjA4ODMxLC0xMi4wNjA3OSAwLjIwOTgyLC0yNC4xMjEwNSAwLjM1MTcxLC0zNi4xODEzM2MwLjA0NDIzLC0zLjc2MjM0IDAuMDg1ODQsLTcuNTI0NyAwLjEyNSwtMTEuMjg3MTFjMC4yMDE5NywtMTkuMzk0MDcgMC40NzUxOCwtMzguNzczODMgMS4xNDM5MywtNTguMTU3ODZjMC4zMTU3NiwtOS4zOTA3OSAwLjQ5Nzc2LC0xOC43NzY3NyAwLjYwNDg1LC0yOC4xNzE3M2MwLjAxMjAxLC0xLjA0NzU1IDAuMDEyMDEsLTEuMDQ3NTUgMC4wMjQyNSwtMi4xMTYyN2MwLjAzMjM1LC0yLjg2MDgzIDAuMDYzODMsLTUuNzIxNjcgMC4wOTQzOCwtOC41ODI1MmMwLjI5ODg0LC0yNy45NzM3MyAwLjg4MzksLTU1LjkxOTM5IDEuODM0MjUsLTgzLjg3OTMzYzAuMDg4OTIsLTIuNjMwMiAwLjE3NzU0LC01LjI2MDQxIDAuMjY1ODcsLTcuODkwNjNjMC4wMjIxNywtMC42NTkxIDAuMDQ0MzQsLTEuMzE4MiAwLjA2NzE5LC0xLjk5NzI4YzAuMzk1ODEsLTExLjg1MzQ5IDAuNjk1NzMsLTIzLjcwODQgMC45NzE4OCwtMzUuNTY1MjJjMC4wNDIxMiwtMS43ODkzNSAwLjA4NDI3LC0zLjU3ODY5IDAuMTI2NDUsLTUuMzY4MDRjMC4xNjQ1MywtNy4wMTE4OSAwLjMyODkyLC0xNC4wMjM3NyAwLjQ3ODI1LC0yMS4wMzYwMWMwLjQzODkzLC0yMC41NzYxMyAxLjI0NTY1LC00MS4wNjY1NSAyLjY2NTAxLC02MS41OTkxMmMwLjMwNzk0LC00LjU0NDA4IDAuNTczMzgsLTkuMDg5OSAwLjgyNDA0LC0xMy42Mzc0NWMwLjA2MDE2LC0xLjA4MzI3IDAuMDYwMTYsLTEuMDgzMjcgMC4xMjE1NSwtMi4xODg0MmMwLjA3NjgyLC0xLjM5MDgyIDAuMTUzMTgsLTIuNzgxNjcgMC4yMjkwMywtNC4xNzI1NGMwLjEyMTIsLTIuMjE5MjkgMC4yNDQ2LC00LjQzODQ0IDAuMzY4MTcsLTYuNjU3NmMwLjM0NzcyLC02LjI3OTEgMC42ODc4MSwtMTIuNTU3OTIgMC45NjA5MywtMTguODQwODJjMC4zMjUwNSwtNy40NjY0NyAwLjc3MTQsLTE0LjgxMTE2IDEuNzg1MTYsLTIyLjIxODc1YzAuMzIxNDMsLTIuNTQwNTUgMC42MzQxNiwtNS4wODIyMiAwLjkzNzUsLTcuNjI1YzAuMTU4NTUsLTEuMjgzOSAwLjMxNzExLC0yLjU2NzgxIDAuNDgwNDcsLTMuODkwNjJjMC4yNjE4OSwtMy42Mjg1NSAwLjM3Njg0LC02LjU3MTc4IC0wLjQ4MDQ3LC0xMC4xMDkzOGMtMi45MzM1LC0yLjkzOTE2IC02LjIzNzY2LC00LjM0MTY0IC0xMCwtNmMtNi4xODQ3NSwtNC4xMDU1MSAtMTAuNjc3NTQsLTkuOTcxNSAtMTMsLTE3Yy0xLjQyMzQsLTExLjA4NjEzIDAuOTE0MywtMTguMzc4NzYgNy42MTcxOSwtMjcuMTA1NDdjNy45ODUyMywtOC44OTAyMiAyMC4yNzIyNCwtMTUuNzIxMzggMzEuMzgyODEsLTE5Ljg5NDUzYzEuMTQzNCwtMC40NDYwMSAyLjI4NjgsLTAuODkyMDMgMy40NjQ4NCwtMS4zNTE1NmMyNi4xNjU1NywtMTAuMTAzOTYgNTIuNzk2NjIsLTE2Ljc0OTExIDgwLjMwNjg5LC0yMi4wMjI5NWMyLjgzNjE3LC0wLjU0OTUyIDUuNjY0OTksLTEuMTI1OTggOC40OTM5LC0xLjcxMTQyYzQuODY2MzgsLTAuOTc2NzYgOS43NTA1MywtMS42NTU4OCAxNC42NzE4NywtMi4yODkwN2M3LjQwNzYxLC0wLjk3NTg4IDE0Ljc5NzYxLC0yLjAzMDEyIDIyLjE4MzExLC0zLjE2MTM3YzExLjE5OTQ4LC0xLjcxMTk0IDIyLjM1OTA3LC0zLjEyMDExIDMzLjY0ODkyLC00LjA2OTFjMi40NTY0MSwtMC4yMDk2MSA0LjgwMDE3LC0wLjQ5MzA2IDcuMjM0MzgsLTAuOTE0MDZjNC44MTc5MSwtMC43NzI2MiA5LjY2OTI2LC0wLjg3MzUyIDE0LjUzOTA2LC0xLjA4NTk0YzAuNzcyMTUsLTAuMDM3MzggMS41NDQzLC0wLjA3NDc2IDIuMzM5ODQsLTAuMTEzMjhjMC42OTQ5NywtMC4wMzAyOSAxLjM4OTkzLC0wLjA2MDU4IDIuMTA1OTYsLTAuMDkxNzljMi4wMDI4NiwtMC4xMzM0NiAyLjAwMjg2LC0wLjEzMzQ2IDMuODU5NTMsLTAuNjc2OTljMi4yMjY5NiwtMC41MzAzOSA0LjMwNjkyLC0wLjc0OTQzIDYuNTkwMTgsLTAuOTAxMzhjMC44OTQ3NCwtMC4wNTk5NiAxLjc4OTQ4LC0wLjExOTkzIDIuNzExMzMsLTAuMTgxN2MxLjQ4MDQ1LC0wLjA5MDczIDEuNDgwNDUsLTAuMDkwNzMgMi45OTA4MiwtMC4xODMyOWMxLjA2NTUyLC0wLjA2NTQgMi4xMzEwNCwtMC4xMzA4IDMuMjI4ODUsLTAuMTk4MThjMzEuMzQ1ODIsLTEuODUwNzUgNjIuNjMzMDYsLTIuMzU1MzcgOTQuMDI5OTgsLTIuMzU5MzN6IiBmaWxsPSIjMUIxQjFCIiBpZD0ic3ZnXzQiLz4NCiAgICAgICAgPHBhdGggZD0ibTQzOSwzMWMzLjIyMjEyLDEuMzg2OTEgNS4wMzM1NCwyLjkyNDM3IDcuMjUsNS42MjVjMi40NzM5MSwyLjkyODUyIDUuMDEyNjcsNS42OTA3MiA3Ljc1LDguMzc1YzMuMjcyMDIsMy4yMjE1OSA2LjI5MzE2LDYuNTg1OTIgOS4yODUxNiwxMC4wNjY0MWMxLjY3NDg4LDEuODg4NTQgMy40MTQzMiwzLjY2NTE1IDUuMjE0ODQsNS40MzM1OWMyLjI5MzI2LDIuMjU3OTggNC40NjQyOCw0LjU1OTk3IDYuNTYyNSw3YzQuMTQ2MjYsNC44MTY4NCA4LjUxMjg1LDkuNDI0NiAxMi44NzUyNCwxNC4wNDQ5MmMyLjY0MDc5LDIuODA4NDMgNS4yMzcxNyw1LjYxOTc4IDcuNjc5NDUsOC42MDM1MmMyLjMzMTMsMi43ODk5MSA0Ljc3ODcyLDUuMzE2ODYgNy4zODI4MSw3Ljg1MTU2YzUuMTQ3OTIsNS4wNzM0NCAxMC4yMDkzNywxMC4xNDAxIDE0LjkxNDA2LDE1LjYyODkxYzIuODM4NzEsMy4yMjY3NiA1Ljc3MzY5LDYuMzU5MTEgOC43MTA5NCw5LjQ5NjA5YzAuOTAyNjMsMC45NjQzOCAwLjkwMjYzLDAuOTY0MzggMS44MjM0OSwxLjk0ODI0YzEuMjM0ODgsMS4zMTg3NCAyLjQ2OTk5LDIuNjM3MjYgMy43MDUzMiwzLjk1NTU3YzE0LjE3NTkxLDE1LjEzNTcyIDE0LjE3NTkxLDE1LjEzNTcyIDIwLjMwNzEzLDIyLjI0ODUzYzIuMTYyNiwyLjQyMDU4IDQuNDc4MDEsNC42NzE2IDYuNzkyOTcsNi45NDUzMmMxLjgxMDg3LDEuODQzMjggMy40OTkzLDMuNzU1NTcgNS4xODM1OSw1LjcxNDg0YzIuNDE4NjgsMi44MDgyNiA0LjkyMTUsNS40NjIyMSA3LjU2MjUsOC4wNjI1YzMuMjUwMywzLjIwMDMgNi4yNDcyNCw2LjU0MjI1IDkuMjE4NzUsMTBjMS44NTU1LDIuMDgzMzcgMy43OTM0OCw0LjA0MjgxIDUuNzgxMjUsNmM0LjY5NDQ4LDQuNjMwNzkgOS4wMzUzNCw5LjUxNTI5IDEzLjEyNSwxNC42ODc1YzIuODk1NjQsMy41NzEyOSA2LjIxNjA2LDYuNjg4MTkgOS41NTA3OCw5Ljg0NzY2YzAuODcwMTIsMC44MzQwMiAxLjc0MDI0LDEuNjY4MDQgMi42MzY3MiwyLjUyNzM0YzAuODgzMDEsMC44MzY2IDEuNzY2MDIsMS42NzMyIDIuNjc1NzgsMi41MzUxNmMyLjAxMTcyLDIuNDAyMzQgMi4wMTE3MiwyLjQwMjM0IDIuMDExNzIsNi40MDIzNGMtMC44NTczMSwtMC4wNTk4NiAtMS43MTQ2MSwtMC4xMTk3MiAtMi41OTc5LC0wLjE4MTRjLTEwLjYwODM2LC0wLjcyNTU4IC0yMS4yMjE1NCwtMS4zMTc1NiAtMzEuODM5NiwtMS44ODExYy0xLjcxNDIsLTAuMDkxNzEgLTMuNDI4MzksLTAuMTgzNSAtNS4xNDI1OCwtMC4yNzUzOWMtNC4xMzk5MiwtMC4yMjE3MyAtOC4yNzk5LC0wLjQ0MjI2IC0xMi40MTk5MiwtMC42NjIxMWMwLjYzOTM4LC0wLjMwOTM3IDEuMjc4NzUsLTAuNjE4NzUgMS45Mzc1LC0wLjkzNzVjMS45OTg2MSwtMC44OTcwMiAxLjk5ODYxLC0wLjg5NzAyIDMuMDYyNSwtMi4wNjI1YzIuNTMyMTUsLTAuMTAxNDEgNS4wMzA1LC0wLjE0MDc5IDcuNTYyNSwtMC4xMjVjMC43MzQzNiwwLjAwMTkzIDEuNDY4NzMsMC4wMDM4NyAyLjIyNTM0LDAuMDA1ODZjMy41NDM0NCwwLjAyODM2IDcuMDEyNjcsMC4xMDI2NyAxMC41MjQ2NiwwLjYxOTE0YzQuOTA3NzgsMC42NjU0NiA5Ljc0MzE5LDAuNTgxOCAxNC42ODc1LDAuNWMwLjMzLC0wLjk5IDAuNjYsLTEuOTggMSwtM2MtMC45ODgwNywtMC4wNTUzNSAtMS45NzYxMywtMC4xMTA3IC0yLjk5NDE0LC0wLjE2NzcyYy0zLjY5Nzc1LC0wLjIwNzg3IC03LjM5NTI5LC0wLjQxOTM0IC0xMS4wOTI3NywtMC42MzE4NGMtMS41OTQzNSwtMC4wOTExNCAtMy4xODg3NSwtMC4xODEzMyAtNC43ODMyMSwtMC4yNzA1MWMtMi4zMDM4NiwtMC4xMjkwMyAtNC42MDc1LC0wLjI2MTU5IC02LjkxMTEzLC0wLjM5NDc3Yy0wLjcwMjQyLC0wLjAzODU5IC0xLjQwNDg0LC0wLjA3NzE4IC0yLjEyODU0LC0wLjExNjkzYy00LjAwMjg0LC0wLjIzNTIzIC03Ljk0MDI0LC0wLjY0NzE4IC0xMS45MTgyMSwtMS4xNjk3MWMtNC4zNzYzMiwtMC41MDA3NCAtOC43NzU4NiwtMC43MTEwNiAtMTMuMTcyLC0wLjk2NzI3Yy0xLjAzNTEyLC0wLjA2MjggLTIuMDcwMjMsLTAuMTI1NiAtMy4xMzY3MiwtMC4xOTAzMWMtMy4yODc2MiwtMC4xOTk0IC02LjU3NTQyLC0wLjM5NTU4IC05Ljg2MzI4LC0wLjU5MDk0Yy00LjMzMzUyLC0wLjI1NzQ5IC04LjY2NjgxLC0wLjUxODM1IC0xMywtMC43ODEyNWMtMC45ODM1NSwtMC4wNTczMiAtMS45NjcxMSwtMC4xMTQ2NSAtMi45ODA0NywtMC4xNzM3MWMtNC4xNTcxNiwtMC4yNTI0NyAtOC4yODE2OCwtMC41NDI0OSAtMTIuNDEyMTEsLTEuMDgzODZjLTIuODMzNTcsLTAuMzYyMjUgLTUuNDc5NjksLTAuNTc5NzcgLTguMzI2MTcsLTAuNTU4ODRjLTEuMTc5NDksMC4wMDQ4NCAtMS4xNzk0OSwwLjAwNDg0IC0yLjM4MjgxLDAuMDA5NzdjLTAuNzkxNDksMC4wMDgzOCAtMS41ODI5NywwLjAxNjc2IC0yLjM5ODQ0LDAuMDI1MzljLTAuODIyNDIsMC4wMDQ1MSAtMS42NDQ4NCwwLjAwOTAyIC0yLjQ5MjE5LDAuMDEzNjdjLTIuMDAyNjMsMC4wMTE2NSAtNC4wMDUyMywwLjAyOTU3IC02LjAwNzgxLDAuMDQ4ODNjLTMuNzQ2MjYsLTEzLjg1NDg3IC02LjM4NDM3LC0yNy44OTQ5NiAtOSwtNDJjLTAuOTksMCAtMS45OCwwIC0zLDBjMC43NjY1LDYuOTcxMTQgMi4xMjc5MywxMy43MzEzNyAzLjYyNjk1LDIwLjU3ODEzYzEuMTAwNTksNS4yNTcwMyAxLjc0NDMyLDEwLjA0NzI5IDEuMzczMDUsMTUuNDIxODdjLTAuNjYsMC45OSAtMS4zMiwxLjk4IC0yLDNjLTIuNjA4NDUsLTcuMjIyOCAtNC4zNTA2MSwtMTQuNTE2MTkgLTUuOTg5NjIsLTIyLjAxMzkyYy0wLjc1ODExLC0zLjQ2NzU2IC0xLjUzMDg1LC02LjkzMTg2IC0yLjMwMzM1LC0xMC4zOTYyNGMtMC4xNDk0NiwtMC42NzE2NSAtMC4yOTg5MiwtMS4zNDMzIC0wLjQ1MjkxLC0yLjAzNTMxYy0xLjA4OTA0LC00Ljg3MzEgLTIuMjUzNTcsLTkuNzIwNjUgLTMuNTA0MTIsLTE0LjU1NDUzYy0xLjI0MTI2LC00LjgzMzU1IC0yLjMwNTEzLC05LjY2MjI2IC0zLjI1LC0xNC41NjI1Yy0xLjE5NTg1LC02LjE3MjEyIC0yLjczODYyLC0xMi4xODE5MiAtNC40MDIzNCwtMTguMjQyMTljLTEuMzIwMTEsLTQuOTI4NTUgLTIuNDIyNDQsLTkuOTA0MTEgLTMuNTM1MTYsLTE0Ljg4MjgxYy0xLjY1ODA1LC03LjM5MzMyIC0zLjM2NTMxLC0xNC43NzAyNSAtNS4xODc1LC0yMi4xMjVjLTAuMTkzOTIsLTAuNzkzMDIgLTAuMzg3ODUsLTEuNTg2MDMgLTAuNTg3NjUsLTIuNDAzMDhjLTAuOTQyMjIsLTMuNzY2MDggLTEuOTg3NzgsLTcuNDMxNCAtMy4yNzk1NCwtMTEuMDkzMDFjLTEuODg5NTcsLTUuNTM0NjIgLTIuOTIyOTMsLTExLjIwNDQ2IC00LjAwNzgxLC0xNi45NDE0MWMtMC40Mjk1NCwtMi4yMTI1MiAtMC44NjA1MiwtNC40MjQ3NiAtMS4yOTI5NywtNi42MzY3MmMtMC4zMDgxNywtMS41Nzg1NCAtMC4zMDgxNywtMS41Nzg1NCAtMC42MjI1NiwtMy4xODg5NmMtMS4wNjY5MywtNS4zMzgyMiAtMi4yOTEzOSwtMTAuNjM2MzggLTMuNTg0NDcsLTE1LjkyNDMyeiIgZmlsbD0iI0ZDRkNGQyIgaWQ9InN2Z181Ii8+DQogICAgICAgIDxwYXRoIGQ9Im0zMTYsMzU1YzAuNjI1LDIuMzc1IDAuNjI1LDIuMzc1IDAsNWMtMy42NTI2NiwzLjk2MzIzIC03LjcyMTEzLDcuNDQxMjQgLTExLjgxMjUsMTAuOTM3NWMtMC42MTQ0LDAuNTM1NzcgLTEuMjI4OCwxLjA3MTUzIC0xLjg2MTgyLDEuNjIzNTRjLTMuMjY4NDQsMi44MjA1OSAtNi40NDY4NSw1LjE1ODM2IC0xMC4yMDA2OCw3LjMxMzk2Yy0yLjQ4NTkyLDEuODY1NzggLTMuMDQ1NjcsMi43OTI5NiAtMy43NzczNCw1Ljg1NTQ3Yy0xLjI1NDUyLDI2LjEwMDEgMTIuNDk0NTQsNTIuOTY3ODMgMjkuMjI2NTYsNzIuMDY2NDFjMTMuNDY2ODUsMTQuMjE2ODEgMzEuNTMwODYsMjMuOTkwMDUgNTEuMjgzMiwyNC42MjU0OGMxMy41ODU4MywwLjA4ODI2IDIzLjk3NzY3LC0zLjQ3ODcyIDM1Ljg2OTE0LC05Ljc3NzgzYzMuMjczNDQsLTEuNjQ0NTMgMy4yNzM0NCwtMS42NDQ1MyA1LjI3MzQ0LC0xLjY0NDUzYzAsLTAuNjYgMCwtMS4zMiAwLC0yYzUuNDc2MTksLTUgNS40NzYxOSwtNSA4LC01YzAsLTAuNjYgMCwtMS4zMiAwLC0yYzEuNjIxMDMsLTEuNzExMDkgMy4yOTUwMywtMy4zNzI1MyA1LC01YzAuNjgwNjMsLTAuNzgzNzUgMS4zNjEyNSwtMS41Njc1IDIuMDYyNSwtMi4zNzVjMS45Mzc1LC0xLjYyNSAxLjkzNzUsLTEuNjI1IDQuMTI1LC0xLjQzNzVjMS44MTI1LDAuODEyNSAxLjgxMjUsMC44MTI1IDIuODEyNSwxLjgxMjVjMC4zNzg5MSwyLjE3NTc4IDAuMzc4OTEsMi4xNzU3OCAwLDVjLTEuNjE2OTgsMi4yOTc1IC0zLjE0MTc4LDQuMTc1IC01LjA2MjUsNi4xODc1Yy0wLjUzMjk1LDAuNTY1OSAtMS4wNjU4OSwxLjEzMTggLTEuNjE0OTksMS43MTQ4NGMtMTUuMDA5NjgsMTUuMzM1NjUgLTM0LjA2NTQ2LDIyLjkwOTM0IC01NS4zMjI1MSwyMy41MzUxNmMtMTEuNDM1MiwtMC4yMzYxMiAtMjIuODkzNDMsLTIuOTk4MjYgLTMzLC04LjQzNzVjLTAuOTQyMywtMC41MDQwMiAtMS44ODQ2MSwtMS4wMDgwNSAtMi44NTU0NywtMS41MjczNGMtOS43NTY5NSwtNS40NTM1MSAtMTguMjE2ODgsLTExLjY2NzI1IC0yNS4xNDQ1MywtMjAuNDcyNjZjLTAuNjEzNTksLTAuNzE1NDMgLTEuMjI3MTksLTEuNDMwODYgLTEuODU5MzgsLTIuMTY3OTdjLTEyLjM2MDU2LC0xNC42ODQxNiAtMjEuOTIwNDUsLTMzLjg0NjQzIC0yNS4xNDA2MiwtNTIuODMyMDNjLTEuODExMTEsMS44MTExMSAtMS4yNjg1Niw0LjcwMjM5IC0xLjM4NjcyLDcuMTQ4NDRjLTAuNDk5MjgsNy42NTMxIC0xLjgxNzc4LDE0Ljk3NTIyIC0zLjQyNTc4LDIyLjQ3NjU2Yy0wLjI0ODE0LDEuMjE5NDUgLTAuNDk2MjksMi40Mzg5MSAtMC43NTE5NSwzLjY5NTMxYy0yLjI0NjIzLDEwLjY5OTYgLTUuMTg5NjYsMjAuOTg1MTcgLTEwLjE4NTU1LDMwLjc0MjE5Yy0wLjUxNTQyLDEuMDEzMzIgLTAuNTE1NDIsMS4wMTMzMiAtMS4wNDEyNiwyLjA0NzEyYy03LjEyNTgxLDEzLjY1NjA0IC0xNi43NDU0NiwyNS43NTQ0NCAtMzEuMjA4NzQsMzEuODkwMzhjLTExLjEwODM4LDIuODYwNDUgLTIwLjEwMzg1LDAuNTkxNzUgLTMwLC00LjU2MjVjLTIsLTEuNDM3NSAtMiwtMS40Mzc1IC00LC00LjQzNzVjMC4zNzUsLTIuNjg3NSAwLjM3NSwtMi42ODc1IDEsLTVjNS4yNzk5NywtMC42NiA3Ljk4MDMxLDAuOTA5NDQgMTIuMTY3OTcsMy44MDg1OWM0LjU3NjQzLDIuOTc2MTQgOS41ODM2NCwyLjY5OTA4IDE0LjgzMjAzLDIuMTkxNDFjMTAuOTk1ODksLTIuNTE1MjkgMTguNjQ3MDQsLTEwLjMyODg5IDI0LjY4NzUsLTE5LjVjMTYuOTE0ODcsLTI3LjE0NzEgMTkuNjA5NzYsLTYwLjMwMzgzIDIwLjMxMjUsLTkxLjVjLTAuNzQ1NjQsLTAuMjc5MjQgLTEuNDkxMjgsLTAuNTU4NDkgLTIuMjU5NTIsLTAuODQ2MTljLTIuNDQ0ODQsLTEuMDI5MzQgLTQuNDExODIsLTIuMTIwMDQgLTYuNTg4MTQsLTMuNjE0NzVjLTAuNjg3NzEsLTAuNDcxNzkgLTEuMzc1NDMsLTAuOTQzNTkgLTIuMDgzOTgsLTEuNDI5NjhjLTEuMDU0NzgsLTAuNzM0NzcgLTEuMDU0NzgsLTAuNzM0NzcgLTIuMTMwODYsLTEuNDg0MzhjLTAuNzA3MDUsLTAuNDgyMTEgLTEuNDE0MSwtMC45NjQyMiAtMi4xNDI1OCwtMS40NjA5NGMtNy4wNDI3MiwtNC44NjcwOCAtNy4wNDI3MiwtNC44NjcwOCAtOS43OTQ5MiwtOC4xNjQwNmMtMC4yNSwtMi43NSAtMC4yNSwtMi43NSAwLC01YzYuNzEwMzgsLTIuNDY0MTYgMTMuMzk4MjMsLTQuMDEzMzEgMjAuNDIxODcsLTUuMjk2ODdjMS4wNjMwMiwtMC4xOTc5IDIuMTI2MDMsLTAuMzk1NzkgMy4yMjEyNiwtMC41OTk2OGMyLjIzMTQ3LC0wLjQxMzI2IDQuNDYzNTYsLTAuODIzMTggNi42OTYyMywtMS4yMjk5MWMzLjQxNjQ5LC0wLjYyNDYxIDYuODI5NTMsLTEuMjY2MDcgMTAuMjQyNjcsLTEuOTA4N2MyLjE3NTU5LC0wLjQwMDc2IDQuMzUxMzcsLTAuODAwNTMgNi41MjczNCwtMS4xOTkyMmMxLjAxNzc4LC0wLjE5MjYxIDIuMDM1NTYsLTAuMzg1MjIgMy4wODQxNywtMC41ODM2N2MwLjk1MTU5LC0wLjE3MDU4IDEuOTAzMTgsLTAuMzQxMTYgMi44ODM2MSwtMC41MTY5MWMxLjI0ODM0LC0wLjIyOTU4IDEuMjQ4MzQsLTAuMjI5NTggMi41MjE5MSwtMC40NjM4MWM0Ljc2Nzg3LC0wLjM5OTYxIDguNjY0OTksMC44MTAwMSAxMi40MDA5NCwzLjc5ODc3eiIgZmlsbD0iIzBCMEIwQiIgaWQ9InN2Z182Ii8+DQogICAgICAgIDxwYXRoIGQ9Im05OS45MzA5MSwzNjIuODY5MzhjMS45MDQxMywtMC4wMDI1NSAxLjkwNDEzLC0wLjAwMjU1IDMuODQ2NzMsLTAuMDA1MTRjMS40MDM1NSwwLjAwNDM4IDIuODA3MSwwLjAwOTI4IDQuMjEwNjQsMC4wMTQ2NmMwLjcxMjI1LDAuMDAxMzQgMS40MjQ0OSwwLjAwMjY4IDIuMTU4MzIsMC4wMDQwNmMxNS42NjIwMSwwLjAzMyAzMS4zMDU5OSwwLjQ2Mjg3IDQ2Ljk1ODE0LDAuOTg1ODdjMi44MDE4MywwLjA5MjM3IDUuNjAzODEsMC4xNzk2MiA4LjQwNTgsMC4yNjY4OGM3LjMxMDUyLDAuMjI3NzggMTQuNjIwMDQsMC40NzY1OSAyMS45MjkzNCwwLjc0MDkzYzMuMzQ3NDMsMC4xMTU5OSA2LjY5NDkyLDAuMjEzNTcgMTAuMDQzMDMsMC4zMDc0NGMxLjg5NzY1LDAuMDY0MjEgMy43OTUyOCwwLjEyOTEgNS42OTI4NywwLjE5NDgyYzAuODM3NjcsMC4wMTg0NSAxLjY3NTMzLDAuMDM2ODkgMi41MzgzOCwwLjA1NTg5YzQuNTEzMTIsMC4xNzY1NCA3Ljc3MjY1LDAuNjAxMTYgMTEuMjg1ODQsMy41NjUyMWMwLjMxMjUsMy4xODc1IDAuMzEyNSwzLjE4NzUgMCw2Yy03LjY5ODQ1LDQuNDMwOTQgLTE1LjQyMjQ1LDguODExODEgLTIzLjE4NzUsMTMuMTI1Yy0xLjA2NjEzLDAuNTkyNCAtMS4wNjYxMywwLjU5MjQgLTIuMTUzODEsMS4xOTY3N2MtOS40MjcwOSw1LjIyNjc2IC0xOC44OTY2OSwxMC4zNTEyNSAtMjguNDcxMTksMTUuMzAzMjNjLTguNTc0MTMsNC40NTQxNSAtMTcuMDg0Nyw5LjAwOTg3IC0yNS41NTQ5MywxMy42NTgyYy01LjE4Nzk2LDIuODQ0NDMgLTEwLjM4NzM5LDUuNjY1OCAtMTUuNjA1MjIsOC40NTUwOGMtMC41OTcyOCwwLjMxOTM2IC0xLjE5NDU1LDAuNjM4NzMgLTEuODA5OTMsMC45Njc3N2MtMy4wMjE4MSwxLjYxNDgxIC02LjA0NTMsMy4yMjYzOCAtOS4wNzA2OSw0LjgzNDQ3Yy01LjI2MTI4LDIuODA0OCAtMTAuNDk3MDIsNS42Mjk2NyAtMTUuNjQ2NzMsOC42MzUyNmMtMC44MTQzNiwwLjQ3MTYzIC0xLjYyODczLDAuOTQzMjcgLTIuNDY3NzcsMS40MjkyYy0xLjQ2MDA2LDAuODUyNDcgLTIuOTEyMTgsMS43MTg3NyAtNC4zNTM1MiwyLjYwMjUzYy00Ljc4NzY0LDIuNzg4MTkgLTguMTQ1MjQsMy4xOTIxMiAtMTMuNjc4NzEsMi43OTI0OWMtMC41NjI1LC0yLjYyNSAtMC41NjI1LC0yLjYyNSAwLC02YzIuNjQ2MiwtMi41NDM2NCA1LjgyMDExLC00LjIwMDIzIDksLTZjMS4wNDAyOCwtMC42MTg3NSAyLjA4MDU1LC0xLjIzNzUgMy4xNTIzNSwtMS44NzVjNi41NTkwNywtMy44NDY3OSAxMy4yMzQ3LC03LjM2MDYgMjAuMDU4ODMsLTEwLjcxMzYzYzExLjA5MDkzLC01LjQ5MDI4IDIxLjkxMjk3LC0xMS41MTA2OCAzMi43ODg4MiwtMTcuNDExMzdjMi4wMzExNiwtMS4xMDA0MyA0LjA2MjQxLC0yLjIwMDcgNi4wOTM3NSwtMy4zMDA3OWMyLjk0MzUsLTEuNTk0MzEgNS44ODY5MywtMy4xODg3NCA4LjgzMDA4LC00Ljc4MzY5YzcuNjg4NDQsLTQuMTY2MDUgMTUuMzgwMTUsLTguMzI2IDIzLjA3NjE3LC0xMi40NzgwMmMxLjYyMDM1LC0wLjg3NTkyIDEuNjIwMzUsLTAuODc1OTIgMy4yNzM0NCwtMS43Njk1NGMxLjUzNTI3LC0wLjgyNzU3IDEuNTM1MjcsLTAuODI3NTcgMy4xMDE1NiwtMS42NzE4N2MwLjg5NDYxLC0wLjQ4Mjg0IDEuNzg5MjIsLTAuOTY1NjcgMi43MTA5NCwtMS40NjMxNGMzLjYxMTAxLC0xLjg5OTU5IDcuMjU4NzIsLTMuNzIwNDkgMTAuOTE0MDYsLTUuNTMyOTVjLTcuNzcwNTcsLTAuMzE5MTcgLTE1LjU0MTQ0LC0wLjYzMDUyIC0yMy4zMTI1LC0wLjkzNzVjLTEuMTY0ODgsLTAuMDQ2MDggLTIuMzI5NzYsLTAuMDkyMTUgLTMuNTI5OTQsLTAuMTM5NjJjLTE4LjIzNDQ4LC0wLjcxNTE0IC0zNi40NjU4NCwtMS4yNTkwNCAtNTQuNzExNTEsLTEuNTgwODRjLTAuODQ0OTEsLTAuMDE2MzEgLTEuNjg5ODIsLTAuMDMyNjEgLTIuNTYwMzQsLTAuMDQ5NDFjLTEuNTQ1OTcsLTAuMDI5NjMgLTMuMDkyMDIsLTAuMDU1OTcgLTQuNjM4MTIsLTAuMDc3OTRjLTUuMTI2NzgsLTAuMTAwMTggLTEwLjE2MDg0LC0wLjU3NTI5IC0xNS4yNDc1OSwtMS4yMTQ2OWMtMC4zODA2MywtMi4zMjYwOSAtMC43MTI3LC00LjY2MDU2IC0xLC03YzEuNzk3OSwtMS43OTc5IDQuNTA2NDcsLTEuMTI5MDUgNi45MzA5MSwtMS4xMzA2MnoiIGZpbGw9IiMwQTBBMEEiIGlkPSJzdmdfOCIvPg0KICAgICAgICA8cGF0aCBkPSJtNTQ5LDM0MGMwLjk5LDAuOTkgMC45OSwwLjk5IDIsMmMtMC4wNjI1LDIuNDM3NSAtMC4wNjI1LDIuNDM3NSAtMSw1Yy00LjQxOTg3LDMuMzcwNDggLTkuNTk4OTIsNC40NjA0OCAtMTQuODc1LDUuODc1Yy02LjA3MzEsMS42Nzk4OCAtMTIuMTAyNDEsMy4zODQ1IC0xOC4wNjI1LDUuNDM3NWMtNy40OTk5MywyLjU2NTk4IC0xNS4wODg5OSw0LjgwODI3IC0yMi42ODc1LDcuMDYyNWMtOS43ODYxMiwyLjkwMzM1IC0xOS41MDM5Miw1Ljk0NjU4IC0yOS4xNjY1LDkuMjQxN2MtNi4wODI2MSwyLjA1NjM0IC0xMi4yMDg1MiwzLjgxMjY1IC0xOC40MDk0Myw1LjQ3MjQxYy02LjY3NTc1LDEuODEzNTggLTEzLjE5NzYxLDQuMDEzNiAtMTkuNzQzMTYsNi4yNDU4NWMtNy4yNTMyNiwyLjQ1MTM5IC0xNC41NzA0LDQuNTk5NjUgLTIxLjk1MzYyLDYuNjIzNzhjLTMuODk5MDQsMS4wNzgzMyAtNy42ODkyMywyLjIyNTA2IC0xMS40NTc3NiwzLjcwMTQyYy0zLjk5NTUzLDEuNDY4ODggLTYuNDY0NjMsMS42MDEwOCAtMTAuNjQ0NTMsMS4zMzk4NGMtMS4zNTQ0LC0yLjcwODc5IC0xLjA2NTAxLC01LjAwOTMzIC0xLC04YzUuMzg0MjgsLTEuNzYzMDggMTAuNzY5NjcsLTMuNTIyNzQgMTYuMTU2MDEsLTUuMjc5NTRjMS44MjQxOCwtMC41OTU0NyAzLjY0ODA4LC0xLjE5MTc5IDUuNDcxNjgsLTEuNzg5MDZjMTAuNTAyNDksLTMuNDM5MTMgMjEuMDE5ODcsLTYuNzczNDcgMzEuNjM1MjUsLTkuODQ3NjZjNC45NjgxNSwtMS40NDA3NSA5LjkxNTgxLC0yLjk0NDg1IDE0Ljg2MjA2LC00LjQ1ODc0YzEuOTczOTMsLTAuNjAyOTUgMy45NDc4OSwtMS4yMDU4MSA1LjkyMTg3LC0xLjgwODU5YzAuOTg2NzgsLTAuMzAxNDggMS45NzM1NiwtMC42MDI5NiAyLjk5MDI0LC0wLjkxMzU4YzIuODg3MjksLTAuODc5NzkgNS43NzYzLC0xLjc1MzY5IDguNjY2MDEsLTIuNjI1NDljOS45NDE2NiwtMy4wMDM0OCAxOS44NTIxMiwtNi4wODM1MiAyOS43MzQzOCwtOS4yNzczNGM5LjQ1NjIyLC0zLjA1NTQgMTguOTU0MTMsLTUuOTI0ODYgMjguNTA5NTIsLTguNjU0M2M1LjA5NzgxLC0xLjQ1OTk0IDEwLjEzNDgsLTMuMDAzNjcgMTUuMTM1MjYsLTQuNzcwOTljMi43MjYxNywtMC44MTY5OSA1LjEwNDEyLC0wLjkxNzgzIDcuOTE3NzIsLTAuNTc0NzF6IiBmaWxsPSIjMEMwQzBDIiBpZD0ic3ZnXzEwIi8+DQogICAgICAgIDxwYXRoIGQ9Im0yMjMsNDEzLjg3NWMzLDAuMTI1IDMsMC4xMjUgNCwxLjEyNWMwLjMzMjAzLDIuODEyNSAwLjMzMjAzLDIuODEyNSAwLDZjLTEuNzM4MjgsMi4wNjI1IC0xLjczODI4LDIuMDYyNSAtNC4zMTI1LDRjLTEuNTA2MjcsMS4xNTI0MiAtMS41MDYyNywxLjE1MjQyIC0zLjA0Mjk3LDIuMzI4MTNjLTEuMjEzNTYsMC44OTIzNyAtMi40Mjg1MSwxLjc4Mjg1IC0zLjY0NDUzLDIuNjcxODdjLTEuNDU0NzUsMS4wNzc2OSAtMi45MDkxNiwyLjE1NTg0IC00LjM2MzI4LDMuMjM0MzhjLTMuMjM4OTEsMi4zOTUzNCAtNi40ODY3NCw0Ljc3ODA4IC05LjczODI4LDcuMTU2MjVjLTQuNTEyNywzLjMxMDYxIC04Ljk2NDc3LDYuNjkzOTUgLTEzLjM5ODQ0LDEwLjEwOTM3Yy02Ljg2ODMzLDUuMjg3OTUgLTEzLjgxODYzLDEwLjQ1NTY3IC0yMC44MTgzNiwxNS41NjgzNmMtNS4zMDQxLDMuODgyMjkgLTEwLjUwNjg2LDcuODc5MDEgLTE1LjY4MTY0LDExLjkzMTY0Yy03LjA5NDY2LDUuNTAzNDEgLTE0LjIzNTAzLDEwLjk0MDQ5IC0yMS40Mjk2OSwxNi4zMTI1Yy0yLjg5Mzc3LDIuMTY5OSAtNS43NjgzMyw0LjM2NDI1IC04LjY0MDYyLDYuNTYyNWMtMC45MTMzLDAuNjk4NTEgLTEuODI2NiwxLjM5NzAyIC0yLjc2NzU4LDIuMTE2N2MtMS44MDk5MSwxLjM4NTMzIC0zLjYxODU3LDIuNzcyMjggLTUuNDI1NzgsNC4xNjExM2MtMi41Njc1OCwxLjk2NDQ0IC01LjE0ODUyLDMuOTA5NDkgLTcuNzM2MzMsNS44NDcxN2MtMC44OTA0MiwwLjY3NjQ0IC0xLjc4MDg0LDEuMzUyODcgLTIuNjk4MjQsMi4wNDk4Yy0wLjg3MDQ0LDAuNjQwOTkgLTEuNzQwODgsMS4yODE5OCAtMi42Mzc3LDEuOTQyMzljLTEuMTY0NzUsMC44Njc5NCAtMS4xNjQ3NSwwLjg2Nzk0IC0yLjM1MzAyLDEuNzUzNDJjLTIuNjk5MjIsMS40NjUwOSAtNC4yODMzNywxLjY2MDQ5IC03LjMxMTA0LDEuMjU0MzljLTAuNjYsLTAuNjYgLTEuMzIsLTEuMzIgLTIsLTJjMC4xMDE1MywtMy40MDExOSAwLjczMDUyLC00LjcyMzA2IDMuMTE3MTksLTcuMTc1NzhjMC45MTAwOCwtMC43MDUxMiAxLjgyMDE1LC0xLjQxMDI0IDIuNzU3ODEsLTIuMTM2NzJjMS41MDA0NywtMS4xNzE3NiAxLjUwMDQ3LC0xLjE3MTc2IDMuMDMxMjUsLTIuMzY3MTljMy43MTE2NSwtMi43ODM3MyA3LjQ0ODg0LC01LjUyNjIgMTEuMjE4NzUsLTguMjMwNDdjNS4zODEwMSwtMy45MTE0NiAxMC42MTYxOSwtOC4wMTY0OSAxNS44NzUsLTEyLjA4OTg0YzcuNDU3NjcsLTUuNzY2NTMgMTQuOTUwNjMsLTExLjQ3Nzg2IDIyLjUwMTk1LC0xNy4xMjEwOWM1LjYzMTgxLC00LjIxNDU3IDExLjIyMjc1LC04LjQ4MTI1IDE2LjgxMDU1LC0xMi43NTM5MWM3LjYzMDc2LC01LjgzMTUzIDE1LjMyNDIxLC0xMS41Njg1IDIzLjA2OTgyLC0xNy4yNDYzNGM1LjU5NDUzLC00LjEwNjg3IDExLjExMzcxLC04LjI5ODE2IDE2LjU5ODE1LC0xMi41NTA1M2M0LjIxNjcyLC0zLjI1MTE5IDguNDgzNjMsLTYuNDMyOTMgMTIuNzUzOSwtOS42MTMyOWMzLjYwNTUzLC0yLjcyOSAzLjYwNTUzLC0yLjcyOSA2LjI2NTYzLC0yLjgzOTg0eiIgZmlsbD0iIzBEMEQwRCIgaWQ9InN2Z18xMSIvPg0KICAgICAgICA8cGF0aCBkPSJtMzg3Ljk0MzM2LDM5OC45NjQxMWMwLjc5MjEzLDAuMTAwNzkgMS41ODQyNiwwLjIwMTU4IDIuNDAwMzksMC4zMDU0MmMwLjkwMTA2LDAuMTEwMzggMS44MDIxMSwwLjIyMDc1IDIuNzMwNDcsMC4zMzQ0N2MxLjQ0ODI2LDAuMTk2MDIgMS40NDgyNiwwLjE5NjAyIDIuOTI1NzgsMC4zOTZjMS40MzI3OSwwLjE4MjQ4IDEuNDMyNzksMC4xODI0OCAyLjg5NDUzLDAuMzY4NjVjMy4yMDUxMiwwLjQxODMxIDYuNDA1MzMsMC44NjQwNSA5LjYwNTQ3LDEuMzE4ODVjMS4xOTc2MiwwLjE3MDA3IDIuMzk1MjQsMC4zNDAxNSAzLjYyOTE1LDAuNTE1MzhjMTAuNTQ5ODMsMS41MzU2OSAyMS4wMzUwNCwzLjM3MTM1IDMxLjUyNjQ5LDUuMjU4NjRjOC45NTk5MiwxLjYxMDUgMTcuOTEzMTUsMy4xMzQ5NyAyNi45MzU5MSw0LjM1NTEzYzEwLjgzMTYzLDEuNDc5MzEgMjEuNjE4NzYsMy4yNTU0MiAzMi40MTI2LDQuOTg1MzVjNi45OTQ1LDEuMTE3NDUgMTMuOTg0LDIuMjI1MTIgMjEuMDA3NTcsMy4xNDcyMmMwLjk4MjkxLDAuMTI5NTUgMS45NjU4MiwwLjI1OTEgMi45Nzg1MiwwLjM5MjU4YzEuNzM1NTQsMC4yMjI0NCAzLjQ3MjUsMC40MzQyNSA1LjIxMDkzLDAuNjMyODFjNS4zMTA1MiwwLjY3ODIzIDUuMzEwNTIsMC42NzgyMyA3Ljc5ODgzLDIuNDQ3MjZjMS40NDg4MSwyLjI4NjQgMS4zMzkwNywzLjkzMzQxIDEsNi41NzgxM2MtMiwyIC0yLDIgLTQuNDc2NTYsMi4wNjg4NWMtOC4xNzU4OCwtMC43MjY1NSAtMTYuMjMwNTcsLTEuODkzNjYgLTI0LjMxMjI5LC0zLjMwNzU5Yy0zLjk0MTY1LC0wLjY4ODU2IC03Ljg4NzAxLC0xLjM1NTI3IC0xMS44MzIyNCwtMi4wMjI5OGMtMC44MzY3MiwtMC4xNDE5IC0xLjY3MzQ0LC0wLjI4MzgxIC0yLjUzNTUxLC0wLjQzMDAxYy05Ljk1MzQ3LC0xLjY3ODk2IC0xOS45Mjk1NCwtMy4yMDk5NyAtMjkuOTA1OSwtNC43NDU3N2MtMTUuNDA1ODksLTIuMzc2OTUgLTMwLjgwMTgxLC00LjgwODAyIC00Ni4xODc1LC03LjMxMjVjLTAuODc5MzksLTAuMTQyNzUgLTEuNzU4NzgsLTAuMjg1NTEgLTIuNjY0ODIsLTAuNDMyNTljLTUuNjk3MzQsLTAuOTI1NjQgLTExLjM5MjUxLC0xLjg2MzQ0IC0xNy4wODUxOCwtMi44MTc0MWMtMC44MjAyNSwtMC4xMzcyMSAtMS42NDA0OSwtMC4yNzQ0MSAtMi40ODU2LC0wLjQxNTc3Yy0yLjM5NjMxLC0wLjQwMzI3IC00Ljc5MTQ1LC0wLjgxMjg0IC03LjE4NjI3LC0xLjIyNDg2Yy0wLjcyNjU3LC0wLjEyMjIgLTEuNDUzMTQsLTAuMjQ0MzkgLTIuMjAxNzMsLTAuMzcwM2MtNS4wMTA5LC0wLjg3MzU4IC01LjAxMDksLTAuODczNTggLTYuMTI2NCwtMS45ODkwN2MtMC4xODc1LC0yLjkzNzUgLTAuMTg3NSwtMi45Mzc1IDAsLTZjMiwtMiAyLC0yIDMuOTQzMzYsLTIuMDM1ODl6IiBmaWxsPSIjMEMwQzBDIiBpZD0ic3ZnXzEyIi8+DQogICAgICAgIDxwYXRoIGQ9Im00OTQsMzA5YzEsMSAxLDEgMS4zNTA1OSwzLjMyOTU5Yy0wLjM1MDU5LDIuNjcwNDEgLTAuMzUwNTksMi42NzA0MSAtMi4yNTU4Niw0LjU3OTFjLTAuODkyMzYsMC41OTk5IC0xLjc4NDcxLDEuMTk5OCAtMi43MDQxMSwxLjgxNzg3Yy0xLjAwNzQsMC42ODc0IC0yLjAxNDgsMS4zNzQ3OSAtMy4wNTI3MywyLjA4MzAxYy0xLjY1MjI2LDEuMDg0MjYgLTEuNjUyMjYsMS4wODQyNiAtMy4zMzc4OSwyLjE5MDQzYy0xLjEyODY5LDAuNzUyOTMgLTIuMjU2OTQsMS41MDY1MiAtMy4zODQ3NywyLjI2MDc0Yy0zLjYwNDY0LDIuMzk3OSAtNy4yMzM1OCw0Ljc1NzU2IC0xMC44NjUyMyw3LjExNDI2Yy0yLjQ0MzUsMS41ODk5MyAtNC44ODU5NywzLjE4MTQ0IC03LjMyODEzLDQuNzczNDRjLTAuNjEwNDYsMC4zOTc3NiAtMS4yMjA5MywwLjc5NTUyIC0xLjg0OTg5LDEuMjA1MzRjLTYuODkyMDEsNC40OTY4IC0xMy43MzIxNiw5LjA3MDYgLTIwLjU3MTk4LDEzLjY0NjIyYy01LjM5NDg2LDMuNjA1NjMgLTEwLjc5MDcsNy4yMDk3OCAtMTYuMTg3NSwxMC44MTI1Yy0wLjcxMTk3LDAuNDc1MjkgLTEuNDIzOTMsMC45NTA1OCAtMi4xNTc0NywxLjQ0MDI4Yy05LjY2ODIzLDYuNDUxNTggLTE5LjM1OTMsMTIuODYyNDcgLTI5LjEzMjMyLDE5LjE1NDY5Yy0zLjQzNTEzLDIuMDcyMDMgLTMuNDM1MTMsMi4wNzIwMyAtNi41MjI3MSw0LjU5MjUzYy0yLjkzNzUsMC4xODc1IC0yLjkzNzUsMC4xODc1IC02LDBjLTIsLTIgLTIsLTIgLTIuMDU4NTksLTQuODM1OTRjMS40NTY5OSwtNC4zNTQ4NCA0LjE3MzM0LC01LjY2NjQ1IDcuOTk2MDksLTcuNzg5MDZjMS40ODMzOSwtMC44NzQ4NyAyLjk2NTEsLTEuNzUyNTggNC40NDUzMSwtMi42MzI4MWMwLjc2ODYxLC0wLjQ1MTUgMS41MzcyMSwtMC45MDI5OSAyLjMyOTEsLTEuMzY4MTdjMy42MTUwOCwtMi4xNzA4OSA3LjEwNTY0LC00LjUxNjE4IDEwLjYwMDU5LC02Ljg3NDAyYzEuNTAyNTMsLTEuMDA3OTMgMy4wMDUxMywtMi4wMTU3NCA0LjUwNzgxLC0zLjAyMzQ0YzEuMjE2NzIsLTAuODE3NDIgMS4yMTY3MiwtMC44MTc0MiAyLjQ1ODAxLC0xLjY1MTM2YzQuODY4MDUsLTMuMjY0NTggOS43NDc1NCwtNi41MTIwMiAxNC42MjU0NiwtOS43NjE4MWM5LjY4MDU0LC02LjQ0NzMzIDkuNjgwNTQsLTYuNDQ3MzMgMTkuMzUwMTMsLTEyLjkxMTA1YzguNDM1MzYsLTUuNjQ3NTUgMTYuOTMxNTQsLTExLjE5ODM5IDI1LjQ1NDEsLTE2LjcxMzYyYzAuOTI3OCwtMC42MDIzOSAxLjg1NTYsLTEuMjA0NzkgMi44MTE1MiwtMS44MjU0NGMxLjM2ODI2LC0wLjg4NDM4IDEuMzY4MjYsLTAuODg0MzggMi43NjQxNiwtMS43ODY2MmMxLjg0NTA3LC0xLjI0MDc3IDMuNjU0NjcsLTIuNTM1NjIgNS40Mjg3MSwtMy44NzU5OGMwLjg2MTksLTAuNjUwMTcgMS43MjM4LC0xLjMwMDM0IDIuNjExODIsLTEuOTcwMjFjMC43NTc1NiwtMC41OTUzMSAxLjUxNTEzLC0xLjE5MDYxIDIuMjk1NjUsLTEuODAzOTZjMy4xNjQ3NSwtMS41NjQzNSA1LjAzMjY0LC0xLjA4MTMxIDguMzgwMTMsLTAuMTc2NTF6IiBmaWxsPSIjMEQwRDBEIiBpZD0ic3ZnXzEzIi8+DQogICAgICAgIDxwYXRoIGQ9Im00NzgsMTY2YzEuOTgsMC40OTUgMS45OCwwLjQ5NSA0LDFjMC4yMDM2MywxLjA4NzE2IDAuMjAzNjMsMS4wODcxNiAwLjQxMTM4LDIuMTk2MjljMC42MzAwMiwzLjM1MTk0IDEuMjY1NTQsNi43MDI4MiAxLjkwMTEyLDEwLjA1MzcxYzAuMjEzMzQsMS4xMzk1MyAwLjQyNjY4LDIuMjc5MDYgMC42NDY0OCwzLjQ1MzEzYzEuOTQxMDQsMTMuMjM0OSAxLjk0MTA0LDEzLjIzNDkgNy4wNDEwMiwyNS4yOTY4N2MzLjIxMzk1LDAuMzEzMDMgMy4yMTM5NSwwLjMxMzAzIDcuMDE1NjMsMC4wOTc2NmM1Ljk1MjE5LC0wLjEzNTA1IDExLjc4NzE1LDAuMDAxNjYgMTcuNzE4NzUsMC41MjM0M2MwLjczMjA0LDAuMDY0MDcgMS40NjQwOSwwLjEyODE0IDIuMjE4MzIsMC4xOTQxNmMxLjUwMDMsMC4xMzQ0MyAzLjAwMDQsMC4yNzEwOSA0LjUwMDMsMC40MDk5MWMzLjkzMSwwLjM2MzM5IDcuODYzOTMsMC43MDQyNyAxMS43OTcsMS4wNDQzN2MwLjc2NDA3LDAuMDY2MzcgMS41MjgxNCwwLjEzMjczIDIuMzE1MzcsMC4yMDExMWM2LjgwOTMzLDAuNTgxNjcgMTMuNjE5NjMsMC45ODU1NiAyMC40NDkyOCwxLjIzODFjMy44ODgsMC4xNDkwOSA3LjY4NDU1LDAuNTAyMjYgMTEuNTM5MDYsMS4wMTkyOWM2LjU2MjA1LDAuNzI5NTUgMTMuMTc2OTcsMC45OTkxMSAxOS43NjY2LDEuMzk2OTdjMi4wMDI4LDAuMTIxODQgNC4wMDUzMSwwLjI0ODM2IDYuMDA3ODIsMC4zNzVjMS4xODQ5NywwLjA3MjE5IDIuMzY5OTQsMC4xNDQzNyAzLjU5MDgyLDAuMjE4NzVjMi40OTMwNSwwLjIyNzU4IDQuNjkwNDgsMC41NzMzNyA3LjA4MTA1LDEuMjgxMjVjLTAuMzMsMS4zMiAtMC42NiwyLjY0IC0xLDRjLTUuNjA4NjIsMC4wOTI3OSAtMTAuOTg2ODgsMC4wNDQyMSAtMTYuNTQ2ODcsLTAuNzczNDRjLTMuNjI5MDksLTAuMzM1MTcgLTcuMjQ3ODcsLTAuMzQxOTcgLTEwLjg5MDYzLC0wLjM1MTU2Yy0wLjcyMzQxLC0wLjAwNDUxIC0xLjQ0NjgxLC0wLjAwOTAyIC0yLjE5MjE0LC0wLjAxMzY3Yy0zLjQ3NTM1LC0wLjMwNDE5IC0zLjQ3NTM1LC0wLjMwNDE5IC02LjM3MDM2LDEuMTM4NjdjLTIuMTgxODcsMC4wODQ5MSAtNC4zNjY1OCwwLjA5ODQ3IC02LjU1MDA1LDAuMDgzMjVjLTEuMDA3NTIsLTAuMDA2IC0xLjAwNzUyLC0wLjAwNiAtMi4wMzU0LC0wLjAxMjEzYy0xMi4xMjkwMiwtMC4wOTA5MyAtMjQuMjU0NjYsLTAuNDM1NDggLTM2LjM3OTE1LC0wLjc2MDgyYy0zLjE2ODE2LC0wLjA4NDE4IC02LjMzNjM2LC0wLjE2MDIgLTkuNTA0ODgsLTAuMjI5NDljLTMuODYyNjQsLTAuMDg0NTUgLTcuNzI0NjgsLTAuMTgzMTMgLTExLjU4NjcxLC0wLjI5MTgxYy0xLjQ2MTg5LC0wLjAzODggLTIuOTIzOTIsLTAuMDcyNjYgLTQuMzg2MDUsLTAuMTAxNDJjLTIuMDMzNDgsLTAuMDQwOTggLTQuMDY2NTQsLTAuMTAxNzUgLTYuMDk5NTEsLTAuMTYzNDFjLTEuMTUzODksLTAuMDI4ODcgLTIuMzA3NzcsLTAuMDU3NzQgLTMuNDk2NjMsLTAuMDg3NDhjLTMuMjI5MjgsLTAuNDc2MTYgLTQuNjQ3OTgsLTEuMTcyMDIgLTYuOTYxNjIsLTMuNDM2NjljLTAuNjQ0NTMsLTIuMTU2MjUgLTAuNjQ0NTMsLTIuMTU2MjUgLTAuODEyNSwtNC41Yy0wLjA2ODMyLC0wLjc3MzQ0IC0wLjEzNjY0LC0xLjU0Njg3IC0wLjIwNzAzLC0yLjM0Mzc1YzAuMDE5NTMsLTIuMTU2MjUgMC4wMTk1MywtMi4xNTYyNSAxLjAxOTUzLC01LjE1NjI1YzAuNTI2OTEsLTguMTA3MDcgLTEuNDkyNzMsLTE1LjU2NDg3IC0zLjMxMDU1LC0yMy40MTk5MmMtMC4zNDMyMSwtMS41NDU5MSAtMC4zNDMyMSwtMS41NDU5MSAtMC42OTMzNiwtMy4xMjMwNWMtMC4yMTQ3MSwtMC45MjgzNyAtMC40Mjk0MiwtMS44NTY3MyAtMC42NTA2MywtMi44MTMyM2MtMC4zNjg4OCwtMi44MjMwNCAtMC4wNTg5NywtNC45MDQwOSAwLjY1NDU0LC03LjY0Mzh6IiBmaWxsPSIjRURFREVEIiBpZD0ic3ZnXzE0Ii8+DQogICAgICAgIDxwYXRoIGQ9Im00OTUsMjA4YzkuNDkwODksLTAuMjE1NDQgMTguNzg4MzksMC4zNjU4MyAyOC4yMjY2OCwxLjIyNTE2YzMuOTcxNSwwLjM2MTAzIDcuOTQ0NTQsMC43MDM5IDExLjkxNzg1LDEuMDQ0MzdjMC43NzMzNSwwLjA2NjM3IDEuNTQ2NjksMC4xMzI3MyAyLjM0MzQ4LDAuMjAxMTFjNi44MzUwOSwwLjU3NjQzIDEzLjY3MTAxLDAuOTg0NTQgMjAuNTI1OTEsMS4yMzgxYzMuODg4MjUsMC4xNDkwNCA3LjY4NTAzLDAuNTAyMjMgMTEuNTM5NzksMS4wMTkyOWM2LjU2MjA1LDAuNzI5NTUgMTMuMTc2OTcsMC45OTkxMSAxOS43NjY2LDEuMzk2OTdjMi4wMDI4LDAuMTIxODQgNC4wMDUzMSwwLjI0ODM2IDYuMDA3ODIsMC4zNzVjMS4xODQ5NywwLjA3MjE5IDIuMzY5OTQsMC4xNDQzOCAzLjU5MDgyLDAuMjE4NzVjMi40OTMwNSwwLjIyNzU4IDQuNjkwNDgsMC41NzMzNyA3LjA4MTA1LDEuMjgxMjVjLTAuMzMsMS4zMiAtMC42NiwyLjY0IC0xLDRjLTcuNzgzNzgsMC4xNzkzMyAtMTUuMzkxNzIsLTAuMzA2OTUgLTIzLjEzNjgxLC0xLjA1NDA1Yy0xOC45ODU4NywtMS44MTQxOSAtMzguMDE2ODYsLTIuOTY0NTYgLTU3LjA1MDY5LC00LjEzMzQ1Yy0wLjczNjA3LC0wLjA0NTI2IC0xLjQ3MjE1LC0wLjA5MDUzIC0yLjIzMDUzLC0wLjEzNzE2Yy05LjE5MzU5LC0wLjU2NTA2IC0xOC4zODc1NywtMS4xMjM2IC0yNy41ODE5NywtMS42NzUzNGMwLC0xLjY1IDAsLTMuMyAwLC01eiIgZmlsbD0iIzExMTExMSIgaWQ9InN2Z18xNiIvPg0KICAgICAgICA8cGF0aCBkPSJtNDc4LDE2NmMxLjk4LDAuNDk1IDEuOTgsMC40OTUgNCwxYzAuMjAzNjMsMS4wODcxNiAwLjIwMzYzLDEuMDg3MTYgMC40MTEzOCwyLjE5NjI5YzAuNjMwMDIsMy4zNTE5NCAxLjI2NTU0LDYuNzAyODIgMS45MDExMiwxMC4wNTM3MWMwLjIxMzM0LDEuMTM5NTMgMC40MjY2OCwyLjI3OTA2IDAuNjQ2NDgsMy40NTMxM2MxLjI1NjU2LDYuNjAxNTggMi42ODkzNiwxMy4wOTA1NiA0LjQ3OTI1LDE5LjU2OTMzYzAuNjEyMzksMi45NzMzMiAwLjY1NjY5LDUuNjk5OTkgMC41NjE3Nyw4LjcyNzU0Yy0xLjY1LC0wLjMzIC0zLjMsLTAuNjYgLTUsLTFjLTAuMTM1NzUsLTAuNjg0MDEgLTAuMjcxNTEsLTEuMzY4MDIgLTAuNDExMzgsLTIuMDcyNzVjLTAuNjMyNjMsLTMuMTg0MyAtMS4yNjY5NCwtNi4zNjgyNiAtMS45MDExMiwtOS41NTIyNWMtMC4yMjYzOSwtMS4xNDE3OSAtMC40NTI3OCwtMi4yODM1NyAtMC42ODYwNCwtMy40NTk5NmMtMS40MTcyNywtNy4xMTM2MyAtMi45MTgzMywtMTQuMTkxMzIgLTQuNjE4NjUsLTIxLjI0MzE2Yy0wLjQwODE3LC0yLjg0ODg1IC0wLjExOTQ0LC00LjkwNjk4IDAuNjE3MTksLTcuNjcxODh6IiBmaWxsPSIjMTgxODE4IiBpZD0ic3ZnXzIwIi8+DQogICAgPC9nPg0KDQo8L3N2Zz4NCg==",y=!0!==e.ignore_tags&&!0===e.permanent_logo;return(0,u.jsxs)("header",{className:"header not-select-div "+(t?"header-min":""),children:[!(0,a.Hv)()&&!0!==e.ignore_tags&&(0,u.jsxs)(i.Fragment,{children:[(0,u.jsx)("div",{className:"header-menu",children:(0,u.jsx)(s.rA,{icon:"menu",title:"菜单",onClick:()=>{f(e=>({...e,mobile_open:!0}))}})}),(0,u.jsx)("div",{className:"header-nav-toggle",children:(0,u.jsx)(s.rA,{icon:"menu",title:p.pc_collapsed?"展开":"收起",onClick:()=>{f(e=>({...e,pc_collapsed:!e.pc_collapsed}))}})})]}),!0!==e.ignore_tags&&(0,u.jsx)("h3",{children:y&&(0,u.jsx)("a",{href:"https://github.com/xiaobaidadada/filecat",target:"_blank",children:(0,u.jsx)("img",{src:m,alt:"FileCat"})})}),!0!==e.ignore_tags&&!0===e.permanent_logo&&(0,u.jsx)("div",{id:c.XK,className:"header-slot"}),e.left_children,(0,u.jsx)("div",{className:"title"}),!0!==e.ignore_tags&&!0===e.permanent_logo&&(0,u.jsx)("div",{id:c.Wp,className:"header-slot"}),e.children]})}},4412(e,t,n){"use strict";n.d(t,{aZ:()=>a});var i=n(96540),r=n(40961);const o="page-header-slot-left",s="page-header-slot-right";function a(e){const[t,n]=(0,i.useState)(null),a="right"===e.position?s:o;return(0,i.useEffect)(()=>{n(document.getElementById(a))},[a]),t?(0,r.createPortal)(e.children,t):null}n.d(t,["Wp",0,s,"XK",0,o])},61443(e,t,n){"use strict";n.d(t,{GL:()=>A,cA:()=>S,U6:()=>k,BC:()=>T,Sm:()=>N,$Z:()=>L,l6:()=>C});var i=n(96540),r=(n(30576),n(23430),n(95219)),o=n.n(r),s=n(85072),a=n.n(s),l=n(97825),c=n.n(l),u=n(77659),d=n.n(u),h=n(55056),p=n.n(h),f=n(10540),g=n.n(f),m=n(41113),y=n.n(m),w=n(81028),b={};b.styleTagTransform=y(),b.setAttributes=p(),b.insert=d().bind(null,"head"),b.domAPI=c(),b.insertStyleElement=g();a()(w.A,b);w.A&&w.A.locals&&w.A.locals;var v=n(40961),M=n(85997),x=n(74848);function L(e){const t=(0,i.useRef)(null),[n,r]=i.useState("");return(0,i.useEffect)(()=>{let n=e.value;null==n&&(n=""),t.current.value=n,r(e.value||"")},[e.value]),(0,x.jsx)("div",{className:"filecat-search-box"+(e.mobile_hidden?" filecat-search-box--mobile-hidden":""),style:{maxWidth:e.max_width},children:(0,x.jsxs)("div",{className:"filecat-search-box__inner",children:[e.handleIconClick?(0,x.jsx)("span",{className:"filecat-search-box__icon-btn",onClick:()=>e.handleIconClick(),children:(0,x.jsx)(M.In,{icon:e.icon})}):(0,x.jsx)(M.In,{icon:e.icon}),(0,x.jsx)("input",{type:e.type,ref:t,placeholder:n||e.placeholder,onChange:t=>{e.handleInputChange&&e.handleInputChange(t.target.value,t.target),r(t.target.value)},onKeyPress:t=>{"Process"===t.key||t.nativeEvent.isComposing||"Enter"===t.key&&e.handleEnterPress&&e.handleEnterPress()}})]})})}function _(e){const t=(0,i.useRef)(null),[n,r]=i.useState(""),[s,a]=i.useState("input input--block awesomplete"),[l,c]=(0,i.useState)(!1),u="password"===e.type;(0,i.useEffect)(()=>{r(null==e.value?"":e.value),e.focus&&t.current&&t.current.focus(),e.no_border&&a("input input--block awesomplete input--no_border")},[e.value,e.focus,e.no_border]);const d=(0,i.useRef)(e.handleInputChange);return(0,i.useEffect)(()=>{d.current=e.handleInputChange},[e.handleInputChange]),(0,i.useEffect)(()=>{if(null!=e.options&&t.current&&Array.isArray(e.options)){const n=e.options.map(e=>"object"==typeof e&&null!==e?{label:e.label,value:e.value}:String(e)),i=new(o())(t.current,{list:n,minChars:0,maxItems:n.length,autoFirst:!0,filter:(e,t)=>""===t.trim()||o().FILTER_CONTAINS(e,t),sort:(e,n)=>""===t.current?.value.trim()?0:e.label<n.label?-1:1}),s=()=>{i.evaluate()},a=e=>{const n=e?.text,i=n?.label??n?.value??n,o=n?.value??n;r(i),requestAnimationFrame(()=>{t.current&&(t.current.value=i)}),d.current&&d.current(o,t.current)};return t.current.addEventListener("focus",s),t.current.addEventListener("awesomplete-selectcomplete",a),()=>{t.current&&(t.current.removeEventListener("focus",s),t.current.removeEventListener("awesomplete-selectcomplete",a)),i.destroy()}}},[e.options]),(0,x.jsxs)(i.Fragment,{children:[e.placeholderOut&&(0,x.jsx)("p",{children:e.placeholderOut}),(0,x.jsxs)("div",{style:{display:"flex",alignItems:"center",width:e.width,maxWidth:e.maxWidth},children:[e.left_placeholder&&(0,x.jsx)("div",{style:{flex:"0 0 auto",marginRight:"4px"},children:e.left_placeholder}),(0,x.jsxs)("div",{style:{position:"relative",flex:1,display:"flex",alignItems:"center"},children:[(0,x.jsx)("input",{style:{flex:1,minWidth:0,paddingRight:u?"2.4em":void 0},onClick:e=>e.stopPropagation(),disabled:!!e.disabled,className:s,type:u&&l?"text":e.type,placeholder:e.placeholder,onChange:t=>{const n=t.target.value;r(n),e.handleInputChange&&e.handleInputChange(n,t.target)},onKeyPress:t=>{"Process"===t.key||t.nativeEvent.isComposing||"Enter"===t.key&&e.handlerEnter&&e.handlerEnter(t.currentTarget.value)},value:n,ref:t}),u&&(0,x.jsx)("i",{className:"material-icons input-password-toggle",style:{position:"absolute",right:"8px",cursor:"pointer",fontSize:"1.2em",userSelect:"none",lineHeight:1},onMouseDown:e=>{e.preventDefault(),c(!l)},onMouseUp:e=>{e.preventDefault()},"aria-label":l?"隐藏密码":"显示密码",children:l?"visibility_off":"visibility"})]}),e.right_placeholder&&(0,x.jsx)("div",{style:{flex:"0 0 auto",marginLeft:"4px"},children:e.right_placeholder})]})]})}function N(e){return _({...e})}function S(e){return _({placeholder:e.placeholder,type:"password",handleInputChange:e.handleInputChange,handlerEnter:e.handleEnterPress,maxWidth:e.maxWidth,width:e.width,value:e.value})}function C(e){const[t,n]=(0,i.useState)(!1),[r,o]=(0,i.useState)({}),s=(0,i.useRef)(null),a=(0,i.useRef)(null),l=e.options.find(t=>t.value===(e.value??e.defaultValue));(0,i.useEffect)(()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&a.current&&!a.current.contains(e.target)&&n(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,i.useEffect)(()=>{if(t&&s.current&&a.current){const e=s.current.getBoundingClientRect();a.current.style.maxHeight="";const t=a.current.offsetHeight,n=a.current.offsetWidth,i=window.innerHeight,r=window.innerWidth,l=8,c=4,u=i-e.bottom-l-c,d=e.top-l-c,h=Math.max(u,d,0),p=u<t&&d>u,f=Math.min(t,h);let g;g=p?e.top-f-c:e.bottom+c,g=Math.max(l,Math.min(g,i-l-f));let m=e.left;m+n>r-l&&(m=Math.max(l,r-l-n)),o({position:"fixed",top:g,left:m,minWidth:e.width,maxWidth:`calc(100vw - ${2*l}px)`,maxHeight:h>0?`${h}px`:void 0,zIndex:9999})}},[t]);return(0,x.jsxs)("div",{className:"select_wrapper"+(e.bare?" select_wrapper--bare":""),style:{width:e.width||"100%",margin:e.margin},children:[e.tip&&(0,x.jsx)("span",{className:"select_tip",children:e.tip}),(0,x.jsxs)("div",{className:"select_container",children:[(0,x.jsxs)("div",{ref:s,className:["input input--block",e.no_border||e.bare?"input--no_border":"","select_trigger",e.bare?"select_trigger--bare":"",e.disabled?"select_trigger--disabled":""].join(" "),onClick:()=>{e.disabled||n(!t)},children:[(0,x.jsx)("span",{className:"select_trigger__label",style:{color:l?.color||"inherit"},children:e.trigger_label??l?.title??l?.label??l?.value??""}),(0,x.jsx)("i",{className:["material-icons","select_trigger__icon",t?"select_trigger__icon--open":""].join(" "),children:"expand_more"})]}),t&&(0,v.createPortal)((0,x.jsx)("div",{ref:a,className:"select_dropdown",style:r,children:e.options.map((t,r)=>{const o=r>0?e.options[r-1]:void 0,s=!!t.group&&t.group!==o?.group;return(0,x.jsxs)(i.Fragment,{children:[s&&(0,x.jsx)("div",{className:"select_group",children:(0,x.jsx)("span",{className:"select_group__title",children:t.group})}),(0,x.jsx)("div",{className:["select_option",t.value===(e.value??e.defaultValue)?"select_option--selected":""].join(" "),style:{color:t.color},onClick:()=>{e.onChange(t.value),n(!1)},children:t.title??t.label??t.value})]},r)})}),document.body)]})]})}function T(e){const t={flex:1,minWidth:0};e.input_max_width&&(t.maxWidth=e.input_max_width),e.row&&(t.display="flex",t.alignItems="center",t.gap="0.4rem",t.flexWrap="wrap");const n=e.required&&(0,x.jsx)("span",{style:{color:"red",marginRight:"0.15rem"},children:"*"});if(e.vertical)return(0,x.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"0.3rem"},children:[(0,x.jsxs)("label",{style:{whiteSpace:"nowrap"},children:[n,e.label]}),(0,x.jsx)("div",{style:t,children:e.children})]});const i={whiteSpace:"nowrap",flex:"0 0 auto",textAlign:"right"};return e.label_width&&(i.width=e.label_width),(0,x.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.4rem"},children:[(0,x.jsxs)("label",{style:i,children:[n,e.label]}),(0,x.jsx)("div",{style:t,children:e.children})]})}function k(e){return(0,x.jsxs)("label",{className:"input_radio_row",children:[(0,x.jsx)("input",{type:"radio",checked:e.selected??!1,name:e.name??"common_name",value:e.value,className:"input_radio",onChange:()=>{e.onchange&&e.onchange(e.value)}}),e.context]})}function A(e){return(0,x.jsxs)("label",{className:"input_radio_row",children:[(0,x.jsx)("input",{type:"checkbox",disabled:!!e.is_disable,checked:!!e.selected,onChange:()=>{e.onchange&&e.onchange()}}),e.context&&e.context]})}},39165(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>s});var i=n(96540),r=n(61973),o=(n(79923),n(74848));const s=e=>{const t=e.rtos.join("|"),n=(0,i.useRef)(null);if(!n.current||n.current.key!==t){const s=e.rtos.map((t,n)=>{const s=e.children[n];return(0,o.jsx)(i.Fragment,{children:(0,o.jsx)(r.qh,{path:t,element:(0,o.jsx)(i.Suspense,{fallback:(0,o.jsx)("div",{}),children:s})})},n)});e.rtos.some(e=>"/"===e||""===e)||s.push((0,o.jsx)(i.Fragment,{children:(0,o.jsx)(r.qh,{path:"/",element:(0,o.jsx)(i.Suspense,{fallback:(0,o.jsx)("div",{}),children:e.children[0]})})},"root")),n.current={key:t,routes:s}}return(0,o.jsx)(r.BV,{children:n.current.routes})}},80389(e,t,n){"use strict";n.d(t,{p:()=>l});var i=n(96540),r=n(22022),o=n(61443),s=n(85997),a=n(74848);function l(e){const{t}=(0,r.Bd)(),{onChange:n,min:l=30,max:c=200,step:u=10}=e,[d,h]=(0,i.useState)(e.value??e.defaultValue??100),p=e.value??d,f=t=>{void 0===e.value&&h(t),n(t)},[g,m]=(0,i.useState)(p.toString());return(0,i.useEffect)(()=>{m(p.toString())},[p]),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",padding:"0.5rem 0"},children:[(0,a.jsx)(s.C3,{text:"-",clickFun:()=>f(Math.max(l,p-u))}),(0,a.jsx)(o.Sm,{value:g,handleInputChange:e=>{m(e);const t=parseInt(e,10);!isNaN(t)&&t>=l&&t<=c&&f(t)},placeholder:t("缩放百分比"),width:"6rem"}),(0,a.jsx)("span",{style:{fontSize:"0.9rem",color:"var(--textSecondary)"},children:"%"}),(0,a.jsx)(s.C3,{text:"+",clickFun:()=>f(Math.min(c,p+u))})]}),(0,a.jsxs)("div",{style:{fontSize:"0.8rem",color:"var(--textTertiary)",marginTop:"0.5rem"},children:[t("范围"),": ",l,"% - ",c,"%"]})]})}},7523(e,t,n){"use strict";n.d(t,{D:()=>w,F:()=>y});var i=n(96540),r=(n(23430),n(34843)),o=n(82893),s=n(14284),a=n(53459),l=n(22022),c=n(78247),u=n(40505),d=n(34289),h=n(85997),p=n(62042),f=n(23496),g=n(18840),m=n(74848);const y=(0,i.createContext)(void 0),w=({children:e})=>{const[t,n]=(0,i.useState)({}),[w,b]=(0,r.fp)(o.AG.file_root_list),[v,M]=(0,r.fp)(o.AG.file_root_index),[x,L]=(0,r.fp)(o.AG.user_base_info),[_,N]=(0,r.fp)(o.AG.zoom_style_by_percent),[,S]=(0,r.fp)(o.AG.ai_chat_zoom),[,C]=(0,r.fp)(o.AG.mount_enabled),[,T]=(0,r.fp)(o.AG.md_editor_setting),[,k]=(0,r.fp)(o.AG.md_theme_css),{t:A,i18n:D}=(0,l.Bd)(),j=async()=>{(0,d.Hv)()||await(async()=>{const e=await s.$M.post("base_switch/get");e.code===a.m.Success&&M(e.data);const t=await s.XO.get("filesSetting"),n=[];if(t.code===a.m.Success){for(let i=0;i<t.data.dirs.length;i++)n.push({r:(0,m.jsx)("div",{style:{...(0,u.ok)(i===e.data)},children:t.data.dirs[i].note}),v:i});n.push({r:(0,m.jsxs)("div",{className:"common-tag-center",children:[(0,m.jsx)(h.In,{icon:"add",not_use_icon_style:!0}),(0,m.jsx)("span",{children:"添加"})]}),v:-1}),b(n)}})()};return(0,m.jsx)(y.Provider,{value:{initUserInfo:async()=>{if((0,d.Hv)())return;await j();try{const e=await s.I2.post("enabled/get",{});C(!0===e?.data)}catch(e){C(!1)}const e=await s.wm.get("userInfo/get");if(e.code===a.m.Success){const t=e.data;if((0,u.Yl)(t.user_data.theme),t.user_data.upload_file_ignore)try{t.user_data.upload_file_ignore_list=t.user_data.upload_file_ignore.split(/[; ]/)}catch(e){}else t.user_data.upload_file_ignore_list=[];L(t);let n=t?.user_data?.language;"sys"!==n&&n||(n=navigator.language),D.changeLanguage(n),c.Q0.clear(),null!=t.user_data?.file_list_zoom?N(t.user_data?.file_list_zoom):N(100),null!=t.user_data?.ai_chat_zoom?S(t.user_data?.ai_chat_zoom):S(100),!0===t.user_data?.sys_done_prompt?.tag_delete&&(0,p.vs)(A("nvdltp")+A("tmplctp"),()=>{s.wm.post(f.s.user_save_private_attr,{is_sys_done_prompt:!0,sys_done_prompt:{...t.user_data?.sys_done_prompt,tag_delete:!1}})},"warning")}const t=await s.XO.get("md_editor_setting/get");T({...g.FG,...t?.data??{}});const n=await s.XO.get("md_theme/active");k(n?.code===a.m.Success?n.data??"":"")},reloadUserInfo:j},children:e})}},79923(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>J});var i=n(96540),r=n(57952),o=n(39165),s=(n(30576),n(61973)),a=n(74848);function l(e){return(0,a.jsx)(s.N_,{className:e.className,to:e.rto,onClick:()=>{e.clickFun&&e.clickFun()},children:e.children})}n(34289);var c=n(34843),u=n(82893),d=n(75725),h=n(85997);function p(e){const[t,n]=(0,c.fp)(u.AG.nav_style),r=(0,s.zy)(),o=(0,i.useMemo)(()=>{for(let t=0;t<e.navList.length;t++)for(let n=0;n<e.navList[t].length;n++){const i=e.navList[t][n];if(i?.rto&&r.pathname.startsWith(i.rto.replace(/\*$/,"")))return`${t}_${n}`}return"0_0"},[e.navList,r.pathname]),p=e=>{n(t=>({...t,mobile_open:e}))};return(0,a.jsxs)(i.Fragment,{children:[(0,a.jsx)("nav",{className:`\n ${t.mobile_open?"active":""} \n ${t.pc_collapsed?"collapsed":""} \n not-select-div\n `,children:e.navList.map((e,t)=>(0,a.jsx)("div",{className:"nav_1",children:e.map((e,n)=>{const i=`${t}_${n}`;return(0,a.jsxs)(l,{rto:e.rto,clickFun:()=>(e=>{e.clickFun&&e.clickFun(),window.innerWidth<=736&&p(!1)})(e),className:"nav_2 "+(o===i?"nav_2_active":""),children:[(0,a.jsx)(h.In,{icon:e.icon}),(0,a.jsx)("span",{className:"nav_3",children:e.name})]},i)})},t))}),t.mobile_open&&(0,a.jsx)(d.hJ,{className:"layout-nav-overlay",click:()=>p(!1)})]})}function f(e){const[t,n]=(0,c.fp)(u.AG.nav_style);return(0,a.jsx)("main",{className:t.pc_collapsed?"nav-collapsed":"",children:e.children})}var g=n(12730),m=n(64694);const y=e=>{const t=e.hidden_navList&&(0,g.B)(e.hidden_navList),n=(0,g.B)(e.navList).filter(e=>!!e.component);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(p,{navList:e.navList}),(0,a.jsxs)(f,{children:[(0,a.jsx)(o.default,{rtos:n.map(e=>(0,m.HS)(e.rto,"*")),children:n.map(e=>(0,a.jsx)(i.Fragment,{children:e.component},e.rto))}),t&&(0,a.jsx)(o.default,{rtos:t.map(e=>(0,m.HS)(e.rto,"*")),children:t.map(e=>(0,a.jsx)(i.Fragment,{children:e.component},e.rto))})]})]})};var w=n(87361),b=n(22022),v=n(78247),M=n(23430),x=n(1728),L=n(14284);const _=i.lazy(()=>Promise.all([n.e(4924),n.e(8765),n.e(9299)]).then(n.bind(n,19299))),N=i.lazy(()=>Promise.resolve().then(n.bind(n,89824))),S=i.lazy(()=>n.e(5308).then(n.bind(n,65308))),C=i.lazy(()=>n.e(5877).then(n.bind(n,65877))),T=i.lazy(()=>Promise.all([n.e(7856),n.e(8765),n.e(259)]).then(n.bind(n,259))),k=i.lazy(()=>Promise.all([n.e(7856),n.e(6349),n.e(9546)]).then(n.bind(n,59546))),A=i.lazy(()=>Promise.all([n.e(2543),n.e(7181)]).then(n.bind(n,57181))),D=i.lazy(()=>n.e(7133).then(n.bind(n,77133))),j=i.lazy(()=>n.e(4903).then(n.bind(n,64903))),z=i.lazy(()=>Promise.all([n.e(4946),n.e(4924),n.e(1384),n.e(9334),n.e(1075),n.e(1142)]).then(n.bind(n,71142))),E=i.lazy(()=>Promise.all([n.e(8090),n.e(5516)]).then(n.bind(n,52811))),I=i.lazy(()=>Promise.all([n.e(1417),n.e(8781),n.e(7943)]).then(n.bind(n,87943))),O=i.lazy(()=>n.e(8435).then(n.bind(n,78435))),$=i.lazy(()=>n.e(8649).then(n.bind(n,88649))),R=i.lazy(()=>n.e(6805).then(n.bind(n,36805))),P=i.lazy(()=>n.e(3299).then(n.bind(n,53299))),U=i.lazy(()=>n.e(2502).then(n.bind(n,2502))),F=i.lazy(()=>Promise.all([n.e(4946),n.e(4924),n.e(2626),n.e(9334),n.e(4004),n.e(2572)]).then(n.bind(n,2572))),Y=i.lazy(()=>Promise.all([n.e(8765),n.e(8603)]).then(n.bind(n,58603))),Q=i.lazy(()=>n.e(6247).then(n.bind(n,66247))),W=i.lazy(()=>Promise.all([n.e(4946),n.e(2626),n.e(9334),n.e(8302)]).then(n.bind(n,29591))),B=i.lazy(()=>n.e(1448).then(n.bind(n,11448))),H=i.lazy(()=>Promise.all([n.e(7856),n.e(3402)]).then(n.bind(n,63402))),V=i.lazy(()=>Promise.all([n.e(2543),n.e(676)]).then(n.bind(n,60676))),G=i.lazy(()=>n.e(8319).then(n.bind(n,28319))),K=i.lazy(()=>Promise.all([n.e(4924),n.e(2543),n.e(3528)]).then(n.bind(n,53528))),q=i.lazy(()=>n.e(6919).then(n.bind(n,86919))),Z=i.lazy(()=>Promise.all([n.e(4946),n.e(1384),n.e(9334),n.e(1075),n.e(7873)]).then(n.bind(n,57873))),X=i.lazy(()=>Promise.all([n.e(4946),n.e(2543),n.e(1384),n.e(9334),n.e(1075),n.e(5272)]).then(n.bind(n,35272)));const J=function(){const{t:e}=(0,b.Bd)(),[t,n]=(0,c.fp)(u.AG.header_min),[o,s]=(0,c.fp)(u.AG.image_editor),[l,d]=(0,c.fp)(u.AG.excalidraw_editor),[h,p]=(0,c.fp)(u.AG.mind_editor),[f,g]=(0,c.fp)(u.AG.md_editor),[m,J]=(0,c.fp)(u.AG.custom_fun_opt),[ee,te]=(0,c.fp)(u.AG.user_base_info),{check_user_auth:ne}=(0,v.MH)(),ie=(0,v.WO)(),re=[];ne(M.oV.all_sys)&&re.push({icon:"computer",name:e("系统"),rto:`${w.o.info}`,component:(0,a.jsx)(k,{})}),ie&&re.push({icon:"cell_tower",name:e("远程代理"),rto:`${w.o.proxy}`,component:(0,a.jsx)(T,{})}),re.push({icon:"home_repair_service",name:e("工具箱"),rto:`${w.o.toolbox}`,component:(0,a.jsx)(C,{})});let oe=[{icon:"settings",name:e("设置"),rto:`${w.o.setting}`,component:(0,a.jsx)(P,{})},{icon:"logout",name:e("退出登录"),clickFun:async function(){try{await L.wm.post("logout")}catch{}localStorage.setItem("token","")},rto:"/"}];(ne(M.oV.vir_net)||ne(M.oV.ddns))&&(oe=[{icon:"dns",name:e("系统网络"),rto:`${w.o.net}`,component:(0,a.jsx)($,{})},...oe]),ne(M.oV.tcp_proxy)&&(oe=[{icon:"vpn_lock",name:e("内网穿透"),rto:`${w.o.net_proxy}`,component:(0,a.jsx)(R,{})},...oe]);const se=[{icon:"folder",name:e("文件"),rto:`${w.o.file}`,component:(0,a.jsx)(_,{})}];ne(M.oV.ai_agent_page)&&se.push({icon:"question_answer",name:e("AI"),rto:`${w.o.aichat}`,component:(0,a.jsx)(F,{})});const ae=[se,re,oe],le=i.useMemo(()=>[[{rto:`${w.o.share}`,component:(0,a.jsx)(Y,{})},{rto:`${w.o.share_list_setting_page}`,component:(0,a.jsx)(Q,{})},{rto:`${w.o.ai_agent_setting_page}`,component:(0,a.jsx)(W,{})},{rto:`${w.o.ai_rebot_setting_page}`,component:(0,a.jsx)(B,{})},{rto:`${w.o.sqlite_query_page}`,component:(0,a.jsx)(V,{})},{rto:`${w.o.sql_preset_setting_page}`,component:(0,a.jsx)(G,{})},{rto:`${w.o.studio_page}`,component:(0,a.jsx)(O,{})},{rto:`${w.o.git_page}`,component:(0,a.jsx)(K,{})},{rto:`${w.o.docker_setting_page}`,component:(0,a.jsx)(q,{})},{rto:`${w.o.md_editor_setting_page}`,component:(0,a.jsx)(Z,{})},{rto:`${w.o.md_theme_editor_page}`,component:(0,a.jsx)(X,{})}]],[]);return ee.sys_env?.show_login_user_info&&ae[ae.length-1].push({name:ee.user_data.note??ee.user_data.username,icon:"person",rto:"/setting/private_env_setting"}),x.A.has("tcp_client_num_id")&&ae[ae.length-1].push({name:e("代理退出"),icon:"cookie",clickFun:()=>{x.A.delete("tcp_client_num_id"),window.location.reload()}}),m&&ae[ae.length-1].push(m),(0,a.jsxs)(i.Fragment,{children:[(0,a.jsx)(i.Suspense,{fallback:(0,a.jsx)("div",{}),children:(0,a.jsx)(U,{})}),(0,a.jsx)(i.Suspense,{fallback:(0,a.jsx)("div",{}),children:(0,a.jsx)(N,{})}),(0,a.jsx)(i.Suspense,{fallback:(0,a.jsx)("div",{}),children:(0,a.jsx)(A,{})}),(0,a.jsx)(i.Suspense,{fallback:(0,a.jsx)("div",{}),children:(0,a.jsx)(D,{})}),(0,a.jsx)(i.Suspense,{fallback:(0,a.jsx)("div",{}),children:(0,a.jsx)(j,{})}),(0,a.jsx)(i.Suspense,{fallback:(0,a.jsx)("div",{}),children:(0,a.jsx)(H,{})}),void 0!==o.path&&(0,a.jsx)(i.Suspense,{fallback:(0,a.jsx)("div",{}),children:(0,a.jsx)(S,{})}),void 0!==l.url&&(0,a.jsx)(i.Suspense,{fallback:(0,a.jsx)("div",{}),children:(0,a.jsx)(E,{})}),(void 0!==h.url||void 0!==h.code_source)&&(0,a.jsx)(i.Suspense,{fallback:(0,a.jsx)("div",{}),children:(0,a.jsx)(I,{})}),void 0!==f.url&&(0,a.jsx)(i.Suspense,{fallback:(0,a.jsx)("div",{}),children:(0,a.jsx)(z,{})}),!t&&(0,a.jsx)(r.A,{permanent_logo:!0}),(0,a.jsx)(y,{navList:ae,hidden_navList:le})]})}},99214(e,t,n){"use strict";n.d(t,{A9:()=>H,LL:()=>k,OJ:()=>E,Ok:()=>C,Pc:()=>Y,SQ:()=>j,UK:()=>D,V$:()=>O,VD:()=>R,Vs:()=>P,Ys:()=>I,_A:()=>W,ei:()=>A,ib:()=>S,kZ:()=>V,oT:()=>U,pi:()=>z,xI:()=>B,xp:()=>Q,yC:()=>T});var i=n(64694),r=n(34289),o=n(47022),s=n(23430),a=(n(89824),n(82893)),l=n(38240),c=n(96540),u=n(62042),d=n(7463),h=n(40505),p=n(14284),f=n(23496),g=n(7523),m=n(61973),y=n(34251),w=n(34843),b=n(22022),v=n(88815),M=n(21499),x=n(79240),L=n(87361),_=n(57889),N=n(78247);function S(e,t){const n=[];return e.folders&&n.push(...e.folders),e.files&&n.push(...e.files),(0,i.Bd)(n,t)}function C(e){return`${(0,r.GG)("file",(0,r.vX)())}${e}`}function T(e,t){switch(t){case s.t8.size_max_min:case s.t8.size_min_max:{const n=t===s.t8.size_min_max;(0,i.di)(e.files,e=>e.size,n),(0,i.di)(e.folders,e=>e.size,n)}break;case s.t8.time_minx_max:case s.t8.time_max_min:{const n=t===s.t8.time_minx_max;(0,i.di)(e.files,e=>e.mtime,n),(0,i.di)(e.folders,e=>e.mtime,n)}break;case s.t8.name:(0,i.di)(e.folders,e=>e.name)}}function k(e,t){const n={},i={};for(let r=0;r<e.length;r++){const o=e[r],s={r:o.note,items:[],v:{tag:"quick_cmd",cmd:o.cmd}};if(null!=o.father_index){i[o.father_index]=s;const e=n[o.father_index];e&&e.items.push(s);continue}t.push(s),null!=o.index&&(n[o.index]=s,null!=i[o.index]&&s.items.push(i[o.index]))}}function A(e,t){const[n,i]=(0,w.fp)(a.AG.showPrompt),[r,o]=(0,w.fp)(a.AG.uploadFiles),[s,u]=(0,w.fp)(a.AG.user_base_info),d=async e=>{e.preventDefault(),e.stopPropagation();let n=e.dataTransfer,r=e.target;if(n.files.length<=0)return;for(let e=0;e<5;e++)null===r||r.classList.contains("item")||(r=r.parentElement);let a=await(0,l.T)(n,s?.user_data?.upload_file_ignore_list);o(a),i({show:!0,type:t,overlay:!1,data:{}})},h=e=>{e.preventDefault()};return e&&(0,c.useEffect)(()=>{const t=e.current.ownerDocument;return t.addEventListener("dragover",h),t.addEventListener("drop",d),()=>{t.removeEventListener("dragover",h),t.removeEventListener("drop",d)}},[]),{drop:d,dragover:h}}function D(e,t,n){const[i,r]=(0,w.fp)(a.AG.selectedFileList),[o,s]=(0,w.fp)(a.AG.enterKey),[l,u]=(0,c.useState)(!1);(0,c.useEffect)(()=>{const e=n.current;if(!e)return;const t=()=>u(!0),i=()=>u(!1);return e.addEventListener("mouseenter",t),e.addEventListener("mouseleave",i),()=>{e.removeEventListener("mouseenter",t),e.removeEventListener("mouseleave",i)}},[]),(0,c.useEffect)(()=>{const n=n=>{if(l)if(n.ctrlKey)if("a"===n.key||"A"===n.key){const n=e?.length??0,i=t?.length??0,o=[];for(let e=0;e<n+i;e++)o.push(e);r(o)}else s("ctrl");else"Escape"===n.key?r([]):"Shift"===n.key&&s("shift")},i=e=>{e.ctrlKey||s("")};return window.addEventListener("keydown",n),window.addEventListener("keyup",i),()=>{window.removeEventListener("keydown",n),window.removeEventListener("keyup",i)}},[e,t,l])}function j(e,t,n){(0,c.useEffect)(()=>{let i=0;const r=()=>{const r=e.current;r&&(i<r.scrollTop&&r.scrollTop+r.clientHeight+500>=r.scrollHeight?t():i>r.scrollTop&&r.scrollTop-300<=0&&n(),i=r.scrollTop)};e.current.addEventListener("scroll",(0,d.sg)(r));return()=>{e?.current?.removeEventListener("scroll",r)}},[])}function z(e){null==e&&(e=100);const t=Math.max(30,Math.min(200,e))/100;return{columnWidth:280*t,fontSize:`${1*t}em`}}function E(){const[e,t]=(0,c.useState)(a.AG.file_item_width_atom),[n,i]=(0,w.fp)(a.AG.nav_style),[r]=(0,w.fp)(a.AG.zoom_style_by_percent),o=()=>{const e=280*(Math.max(30,Math.min(200,r??100))/100),n=document.getElementById("listing")||document.querySelector("main");let i=Math.floor((n?.offsetWidth??0)/e);0===i&&(i=1),t(`calc(${100/i}% - 1em)`)};return(0,c.useEffect)(()=>{o(),window.addEventListener("resize",o);const e=document.getElementById("listing")||document.querySelector("main"),t=e?new ResizeObserver(o):null;return e&&t&&t.observe(e),()=>{window.removeEventListener("resize",o),t?.disconnect()}},[n,r]),e}function I(e){e.endsWith(".workflow.yml")?(0,u.SK)(`${e.slice(0,-13)} done!`):e.endsWith(".act")&&(0,u.SK)(`${e.slice(0,-4)} done!`)}function O(e){e.endsWith(".workflow.yml")?(0,u.zN)(`${e.slice(0,-13)} failed!`):e.endsWith(".act")&&(0,u.zN)(`${e.slice(0,-4)} failed!`)}const $=(0,d.nF)(e=>{(0,h.lW)(e),(0,u.SK)("复制成功")});function R(){(0,c.useEffect)(()=>{const e=e=>{const t=e.target;if(t.classList.contains("copy-btn")){const e=t.getAttribute("data-code");e&&$(e)}};return document.addEventListener("click",e),()=>{document.removeEventListener("click",e)}},[])}function P(e=!1){const[t,n]=(0,w.fp)(a.AG.user_base_info),{initUserInfo:r}=(0,c.useContext)(g.F);return async()=>{const o=(0,i.jH)(s.Ko,t?.user_data?.file_list_show_type??"");e?n(e=>({...e,user_data:{...e?.user_data,file_list_show_type:o}})):(await p.wm.post(f.s.user_save_private_attr,{type:o}),r())}}function U(){const[e,t]=(0,m.ok)();return(n,i)=>{const r=new URLSearchParams(e);if("string"==typeof n)null==i?r.delete(n):r.set(n,i);else if(Array.isArray(n))for(const e of n)r.delete(e);else for(const[e,t]of Object.entries(n))null==t?r.delete(e):r.set(e,t);t(r)}}const F=["text",o.Iw.md,o.Iw.excalidraw,o.Iw.draw,o.Iw.mind,o.Iw.pdf,o.Iw.image,o.Iw.video];function Y(e){return e===o.Iw.md?"md":e===o.Iw.excalidraw||e===o.Iw.draw?"excalidraw":e===o.Iw.mind?"mind":e===o.Iw.pdf||e===o.Iw.image||e===o.Iw.video?"preview":"text"}function Q(){const e=U();return t=>!!function(e){return F.includes((0,y.uL)(e))}(t)&&(e("share_preview_file_name",t),!0)}function W(){const e=U();return t=>{e(t?{preview_file_name:t.name,preview_mode:t.mode,preview_log_enc:t.log_enc,preview_log_wrap:t.log_wrap}:["preview_file_name","preview_mode","preview_log_enc","preview_log_wrap"])}}function B(e=500){const t=(0,c.useRef)(null);return{clickDouble:(n,i)=>{const r=Date.now(),o=t.current,s=null!==o&&o.index===n&&r-o.time<=e;return t.current={index:n,time:r},!!s&&(t.current=null,i?.(),!0)}}}function H(){const e=(0,m.Zp)(),[t,n]=(0,w.fp)(a.AG.selectedFileList),[o,s]=(0,w.fp)(a.AG.clickFileList),[l,c]=(0,w.fp)(a.AG.nowFileList);return t=>{n([]),s([]),c({files:[],folders:[]}),e((0,i.IO)((0,r.vX)(),t))}}const V=()=>{const[e,t]=(0,w.fp)(a.AG.editorSetting),[n,i]=(0,w.fp)(a.AG.file_preview),[l,c]=(0,w.fp)(a.AG.md_editor),[d,h]=(0,w.fp)(a.AG.excalidraw_editor),[f,g]=(0,w.fp)(a.AG.mind_editor),[S,C]=(0,w.fp)(a.AG.sqlite_query_context),[T,k]=(0,w.fp)(a.AG.confirm),[A,D]=(0,w.fp)(a.AG.user_base_info),j=(0,m.Zp)(),{t:z}=(0,b.Bd)(),E=async e=>{const n=s.nM.get_now_dir(A);if(!e.ignore_size&&"number"==typeof e.size&&e.size>v.o5)return k({open:!0,title:"提示",sub_title:"文件超过20MB了确定要打开吗?",handle:async()=>{k({open:!1,handle:null}),e.ignore_size=!0,E(e)}}),!1;const{name:a,context:l}=e;let d=(0,M.kr)(a);const f=(0,y.uL)(a),m=e.file_path??(0,x.Jn)(n,`${(0,r.GG)("file",(0,r.vX)())}${a}`),w=e.file_path??(0,x.Jn)(n,`${encodeURIComponent((0,r.GG)("file",(0,r.vX)()))}${a}`),b=e.file_url??p.$M.getDownloadUrl(w);if(f===o.Iw.database)return C({open:!0,path:m,name:a}),j(L.o.sqlite_query_page),!0;if("text"===e.model){let n,i;return n=l||(e.get_file_fun?await e.get_file_fun():await _.l.get(b)),f===o.Iw.workflow_act?i="ace/mode/yaml":f!==o.Iw.draw&&f!==o.Iw.excalidraw||(i="ace/mode/json"),t({menu_list:e.menu_list,model:i,open:!0,fileName:a,save:async t=>{if(e.save_file_fun)return void await e.save_file_fun(t);const n={context:t};0===(await p.$M.post(`save/${w}`,n)).code&&N.xK.set_value_temp("")},opt_shell:e.opt_shell,close:e.close}),N.xK.set_value_temp(n),!0}switch(f){case o.Iw.draw:case o.Iw.excalidraw:h({url:b,name:a,close:e.close});break;case o.Iw.mind:g({url:b,name:a,close:e.close});break;case o.Iw.md:c({url:b,path:m,name:a,readonly:e.readonly,close:e.close});break;case o.Iw.video:case o.Iw.pdf:i({open:!0,type:f,name:a,url:b,close:e.close});break;case o.Iw.image:i({open:!0,type:f,name:a,url:p.$M.add_params(b,{mtime:e.mtime,cache:1}),close:e.close});break;case o.Iw.workflow_act:e.model="text",E(e);break;case o.Iw.url:window.open(await _.l.get(b),"_blank");break;case o.Iw.unknow:default:if(d){e.model="text",E(e);break}return(0,u.zN)(e.not_type_tip??z("未知类型、请右键点击文件")),!1}return!0};return{click_file:E}}},89824(e,t,n){"use strict";n.r(t),n.d(t,{MenuSelect:()=>pe,PromptEnum:()=>de,default:()=>he});var i=n(96540),r=n(85997),o=n(34843),s=n(82893),a=n(61973),l=n(34289),c=n(22022),u=n(62042),d=n(14944),h=n(92275),p=n(47022),f=n(47071),g=n(14284),m=n(76559),y=n(21499),w=n(74848);function b(){const{t:e}=(0,c.Bd)(),t=((0,a.zy)(),(0,a.Zp)()),[n,b]=(0,o.fp)(s.AG.user_base_info),[v,M]=(0,o.fp)(s.AG.showPrompt),[x,L]=i.useState(!1),[_,N]=(0,o.fp)(s.AG.uploadFiles),[S,C]=(0,i.useState)([]),[T,k]=(0,i.useState)([]),[A,D]=(0,i.useState)([]),[j,z]=(0,i.useState)(0),E=_.length-(S?.filter(e=>e>=100).length||0);const I=async(e,t,n,i,r,o,s,a)=>{const l=new h.hf(h.HK.file_upload);l.bin_context=new Uint8Array(t);const c=new f.du;return c.file_path=n,c.total_chunk_index=i,c.chunk_index=r,c.part_count=o,c.total_part_size=s,c.parallel_done_num=a,l.context=c,e.send(l)},O=async(e,t,n,i,r)=>{const o=i.ws_file_parallel_num;let s=0;const a=e.size,l=new f.du;l.lastModified=e.lastModified,l.file_path=`${n}${e.fullPath}`,l.parallel_done_num=o,l.is_dir=e.isDir;const c=(await d.ws.sendData(h.HK.file_upload_pre,l,!0)).context;if(e.isDir||!c)return void C(e=>{const n=[...e];return n[t]=100,n});if(c.upload_data_size>0&&(s=c.upload_data_size,e=e.slice(c.upload_data_size)),r.length<o)for(let e=r.length;e<=o;e++)r.push(new m.I(window.location.host+window.location.pathname));const u=i.ws_file_block_mb_size;let p,g=e,y=0;p=Math.ceil(g.size/u);const w=async e=>{const n=e.slice(y*u,(y+1)*u),i=new FileReader,c=await((e,t)=>new Promise((n,i)=>{t.onload=()=>{n(t.result)},t.onerror=e=>{i(e)},t.readAsArrayBuffer(e)}))(n,i),d=new Uint8Array(c),h=Math.ceil(d.length/o);let f=0;const g=[],m=l.file_path;for(let e=0;e<o;e++){const t=f,n=Math.min(t+u,d.length),i=d.slice(t,n);f=n,g.push(I(r[e],i,m,p,y,e,h,o))}let b,v=(new Date).getTime();await Promise.all(g),s+=d.length;const M=((new Date).getTime()-v)/1e3,x=d.length/M/1048576;k(e=>{const n=[...e];return n[t]=x,n});const L=Math.round(s/a*100);C(e=>{const n=[...e];return n[t]=L,n}),y++,y<p&&await w(e),b&&clearTimeout(b),b=setTimeout(()=>{k(e=>{const n=[...e];return n[t]=0,n})},1e3)};await w(g)},$=async(e,t,n)=>{try{let i,r=(new Date).getTime(),o=0;await g.$M.put(`${encodeURIComponent(`${n}${e.fullPath}`)}?dir=${e.isDir?1:0}`,e,e=>{const n=Math.round(e.loaded/e.total*100);C(e=>{const i=[...e];return i[t]=n,i});const s=(new Date).getTime(),a=e.loaded,l=(s-r)/1e3;r=s;const c=(a-o)/l/1048576;k(e=>{const n=[...e];return n[t]=c,n}),o=a,i&&clearTimeout(i),i=setTimeout(()=>{k(e=>{const n=[...e];return n[t]=0,n})},1e3)})}catch(t){throw(0,u.zN)(`上传:${e.name} 文件出错!`),t}};return(0,i.useEffect)(()=>((async()=>{const e=`${(0,l.GG)("file",(0,l.vX)())}`;C(_.map(()=>0)),k(_.map(()=>0));const i=(await d.ws.sendData(h.HK.file_info,{type:p.Iw.upload_folder,path:(0,l.GG)("file",(0,l.vX)())},!0)).context,r=void 0===i?.dir_upload_max_num_value?.user_upload_num?3:i.dir_upload_max_num_value.user_upload_num;let o=0,s=!1;const a=async t=>{const r=[];for(;o<_.length&&!s;){const t=o++;try{let o=!0;if(n?.user_data?.upload_file_ignore_list?.length)for(const e of n.user_data.upload_file_ignore_list)if((0,y.EJ)(_[t].fullPath,e)){o=!1;break}o&&(!0===i?.dir_upload_max_num_value?.open_ws_file&&_[t].size>=i.dir_upload_max_num_value.ws_file_standard_size?await O(_[t],t,e,i.dir_upload_max_num_value,r):await $(_[t],t,e))}catch(e){s=!0}}for(const e of r);},c=Array(Math.min(r,_.length)).fill(null).map((e,t)=>a());Promise.all(c).then(()=>{s||(N([]),M({show:!1,type:"",overlay:!1,data:{}}),t((0,l.vX)()))}).catch(()=>{})})(),()=>{}),[]),(0,w.jsx)("div",{className:"upload-files",children:(0,w.jsxs)("div",{className:"card floating",children:[(0,w.jsxs)("div",{className:"card-title",children:[(0,w.jsxs)("h2",{children:[E,"/",_.length]}),(0,w.jsx)(r.rA,{icon:x?"keyboard_arrow_down":"keyboard_arrow_up",title:"Toggle file upload list",onClick:function(){L(!x)}})]}),x&&(0,w.jsx)("div",{className:"card-content file-icons",children:_.map((e,t)=>(0,w.jsxs)("div",{className:"file div-row",children:[(0,w.jsxs)("div",{className:"file-name",style:{fontSize:".8rem"},children:[e.name,(0,w.jsx)("span",{style:{paddingLeft:".3rem",color:100===S[t]?"green":S[t]>0?"var(--blue)":"var(--surfaceSecondary)"},children:`${S[t]||0}% ${T[t].toFixed(2)} MB/s `})]}),(0,w.jsx)("div",{className:"file-progress ",children:(0,w.jsx)("div",{style:{width:`${S[t]||0}%`}})})]},t))})]})})}var v=n(99214),M=n(53459);function x(e){const{t}=(0,c.Bd)();(0,a.zy)();const n=(0,a.Zp)(),[i,r]=(0,o.fp)(s.AG.showPrompt),[d,h]=(0,o.fp)(s.AG.selectedFileList),[p,f]=(0,o.fp)(s.AG.nowFileList);return(0,w.jsxs)("div",{className:"card floating",children:[(0,w.jsx)("div",{className:"card-content",children:(0,w.jsx)("p",{children:i.data?.filename?t("删除")+` ${i.data.filename} ?`:t("del_f")})}),(0,w.jsxs)("div",{className:"card-action",children:[(0,w.jsx)("button",{className:"button button--flat button--grey",onClick:function(){r({show:!1,overlay:!1,type:"",data:{}})},children:t("取消")}),(0,w.jsx)("button",{className:"button button--flat button--red",onClick:async function(){if(i.data.path){(await g.$M.delete(i.data.path)).code===M.m.PROTECT_FILE&&(0,u.zN)("保护路径不能删除")}else{const e=(0,v.ib)(p,d);for(const t of e){(await g.$M.delete(encodeURIComponent((0,v.Ok)(t.name)))).code===M.m.PROTECT_FILE&&(0,u.zN)("保护路径不能删除")}}r({show:!1,overlay:!1,type:"",data:{}}),i.data.call?i.data.call():(n((0,l.vX)()),h([]))},children:t("删除")})]})]})}function L(e){const{t}=(0,c.Bd)(),[n,i]=(0,o.fp)(s.AG.showPrompt),[r,u]=(0,o.fp)(s.AG.copyedFileList),[d,h]=(0,o.fp)(s.AG.cutedFileList),p=(0,a.Zp)();return(0,w.jsxs)("div",{className:"card floating",children:[(0,w.jsx)("div",{className:"card-content",children:(0,w.jsx)("p",{children:d.length>0?t("cut_ovr"):t("cp_ovr")})}),(0,w.jsxs)("div",{className:"card-action",children:[(0,w.jsx)("button",{className:"button button--flat button--grey",onClick:function(){i({show:!1,overlay:!1,type:"",data:{}}),d.length>0?h([]):u([])},children:t("取消")}),(0,w.jsx)("button",{className:"button button--flat button--red",onClick:async function(){if(d.length>0){await g.$M.post("cut",{files:d,to:(0,l.GG)("file",(0,l.vX)())});h([])}else{await g.$M.post("copy",{files:r,to:(0,l.GG)("file",(0,l.vX)())});u([])}i({show:!1,overlay:!1,type:"",data:{}}),p((0,l.vX)())},children:t("确认")})]})]})}var _=n(75725),N=n(61443),S=n(70447);function C(e){const{t}=(0,c.Bd)(),[n,r]=(0,o.fp)(s.AG.showPrompt),[u,d]=(0,i.useState)(""),h=(0,a.Zp)(),p=((0,a.zy)(),()=>{r({show:!1,type:"",overlay:!1,data:{}})}),f=async()=>{if(!u)return void p();const e=`${n.data.dir}${u}`;0===(await g.$M.post("new/dir",{name:e})).code&&(p(),n.data.call?n.data.call():h((0,l.vX)()))};return(0,w.jsx)(S.ZI,{title:t("创建目录"),cancel:p,confirm:f,cancel_t:t("取消"),confirm_t:t("创建"),context:[(0,w.jsx)("div",{className:"card-content",children:(0,w.jsx)(N.Sm,{placeholderOut:t("输入目录名"),value:u,handleInputChange:e=>d(e)})})],confirm_enter:f})}function T(e){const{t}=(0,c.Bd)(),[n,r]=(0,i.useState)(""),[u,d]=(0,o.fp)(s.AG.showPrompt),[h,p]=(0,i.useState)(""),f=(0,a.Zp)(),m=((0,a.zy)(),[{title:`${t("empty")}`,value:""},{title:`excalidraw${t("格式")}`,value:".draw"},{title:`${t("思维导图")}`,value:".mind"},{title:`workflow${t("格式")}`,value:".act"},{title:`url${t("格式")}`,value:".url"}]),y=()=>{d({show:!1,type:"",overlay:!1,data:{}})},b=async()=>{if(!h)return void y();let e=h,t="";n&&(h.endsWith(n)||(e=h+n),".draw"===n?t="{}":".mind"===n?t=JSON.stringify({version:1,root:{id:"root",text:"中心主题",children:[]}}):".act"===n?t="# 对于js python 脚本也可以实现,这种配置文件的作用是 提供一个脚本编排系统,侧重命令有顺序的执行,最重要的是,符合某个平台(github,gitlab,filecat)的规范,可以和这个平台做出很多好玩的可视化搭配操作\r\nname: test # 名字 不支持 {{}}\r\nrun-name: 构建项目 # 用于日志显示的名字\r\n\r\n# import-files: # 导入多个文件的配置 用于下面的 use-yml 指令\r\n# - ./ok.yml\r\ninputs:\r\n job: # 输入参数的 key 子字段只是为了修饰 调用的时候 使用 {{{job}}} 会添加并覆盖到 env 中的值\r\n description: \"任务参数\"\r\n required: true # 是否必须\r\n default: build # 默认值\r\n options:\r\n - false\r\n - '1232'\r\n\r\nenv: # 定义一些环境变量 这些 环境变量可以在 run 或者 cwd 中 或者 run-name 中使用 {{}} 来表达 使用的时候 必须要用 '' 字符串括起来,不然会被处理成变量 {{{ }}} 是非转义方式 采用 Mustache js\r\n version: 1\r\n cmd_install: npm install\r\n token: 123\r\n info: \"{a:1}\"\r\n\r\nfile-env: # 这个env是用于读取文件的,将文件内容变成一个环境变量\r\n name: ./ok.txt\r\n\r\nusername: admin # 需要执行用户的账号 该脚本需要运行在某个用户下,最好别使用admin,而是别的,权限控制更小\r\nuser_id: 1 # 会覆盖 username 对应的用户 id 只允许特定设置的用户在这里可以被设置 运行\r\n\r\n# 所有的jobs下的任务都会被并行执行\r\njobs:\r\n build-job1:\r\n if: 1==1 # 判断这个job要不要执行\r\n cwd: E:\\test # 需要一个实际的执行目录 默认是当前的yml所在目录 目录内的文件清理需要自己使用命令操作 必须是绝对路径\r\n name: 第一阶段执行\r\n # need-jobs: [build-job2] # 需要别的job先完成 只能是本文件内的\r\n steps: # 这些脚本会按顺序执行\r\n - use-yml: test2 # 使用其它 yml 文件中的 name\r\n with-env: # 默认全部传入 如果有传这个\r\n version: 18 # 使用其它文件的时候 给一些环境变量参数\r\n # - run: pip.exe install setuptools\r\n # - run: npm.cmd install\r\n # - run: ok1\r\n # - run: ls\r\n - run: npm run build\r\n - run-js: filecat_env.version = 1 # 在step中也有run-js属性,仅仅是执行js代码,沙箱环境中有fetch neele filecat_env(本环节的变量) sys_env 四个可以使用的变量,且是最优先执行的属性\r\n # - run: npm publish # 执行一些脚本\r\n build-job2:\r\n cwd: E:\\test2\r\n name: 第二阶段\r\n include-env: true # 开启了就会使用外部的env\r\n env: # 默认传全部,如果有这个传这个\r\n a: { { 1 } }\r\n # while: 2 > 1 #是否再执行一次\r\n steps:\r\n - if: 1==2 # 判断这个step要不要执行 if while 属于判断的都是需要throw 抛出异常才是结束\r\n run: ls # run run-js use-yml 这三个只能执行一个, run-js\r\n runs: [sudo node a.js,dsijie33s] # 多个命令同时被输出,可以用于像sudo这样需要下一次输入密码的情况\r\n then-log: 'ok' # 输出打印一些东西\r\n then-log-file: 'ok' # 输出打印一些东西到某个文件 也是需要then-log\r\n - sleep: 1000 # 随眠一秒继续执行\r\n - run: node a.js\r\n out-env: info # 可选的,执行后将输出(多次会覆盖)的值输出到这个env中,暂时不支持ls cd pwd 等pty-shell的内建命令输出,debug开发可能会有多余输出\r\n catch-js: '2 > 1' # 如果出错了,判断一下是否继续执行,job也支持,支持 run runs run-js\r\n while: 1 > 2 # 是否再执行一次\r\n hidden-param: true # 隐藏 {{}} 的内容\r\n\r\n":".url"===n&&(t=`${window.location.protocol}//${window.location.hostname}${window.location.port?":"+window.location.port:""}`));const i=`${u.data.dir}${e}`;0===(await g.$M.post("new/file",{name:i,context:t})).code&&(y(),u.data.call?u.data.call():f((0,l.vX)()))};return(0,w.jsx)(S.ZI,{title:t("创建文件"),cancel:y,confirm:b,cancel_t:t("取消"),confirm_t:t("创建"),context:[(0,w.jsxs)("div",{className:"card-content",children:[(0,w.jsx)(N.Sm,{placeholderOut:t("输入文件名"),value:h,handleInputChange:e=>p(e)}),(0,w.jsx)(N.l6,{value:n,onChange:e=>{r(e)},options:m})]})],confirm_enter:b})}function k(e){const{t}=(0,c.Bd)(),[n,r]=(0,o.fp)(s.AG.showPrompt),[u,d]=(0,o.fp)(s.AG.selectedFileList),[h,p]=(0,o.fp)(s.AG.nowFileList),[f,m]=(0,i.useState)(""),y=(0,a.Zp)(),b=((0,a.zy)(),()=>{r({show:!1,type:"",overlay:!1,data:{}})}),M=async()=>{if(!(n.data.path||f&&1===u.length))return void b();let e,t;if(n.data.path)t=n.data.path,e=`${n.data.dir}${f}`;else{const n=(0,v.ib)(h,u);e=`${(0,l.GG)("file",(0,l.vX)())}${f}`,t=`${(0,l.GG)("file",(0,l.vX)())}${n[0].name}`}0===(await g.$M.post("rename",{name:t,newName:e})).code&&(b(),n.data.call?n.data.call():y((0,l.vX)()))};return(0,w.jsx)(S.ZI,{title:t("修改名字"),cancel:b,confirm:M,cancel_t:t("取消"),confirm_t:t("修改"),context:[(0,w.jsx)("div",{className:"card-content",children:(0,w.jsx)(N.Sm,{placeholderOut:t("输入新名字"),value:(()=>{if(n.data.path)return n.data.filename;return(0,v.ib)(h,u)[0].name})(),handleInputChange:e=>m(e)})})],confirm_enter:M})}function A(e){const{t}=(0,c.Bd)(),[n,i]=(0,o.fp)(s.AG.showPrompt),r=()=>{i({show:!1,type:"",overlay:!1,data:{}})};return(0,w.jsxs)("div",{className:"card floating",children:[(0,w.jsx)("div",{className:"card-title",children:(0,w.jsx)("h2",{children:t("确定删除")})}),(0,w.jsxs)("div",{className:"card-content",children:[t("是否删除"),":",n.data.name]}),(0,w.jsxs)("div",{className:"card-action",children:[(0,w.jsx)("button",{className:"button button--flat button--grey",onClick:r,children:t("取消")}),(0,w.jsx)("button",{className:"button button--flat",onClick:async()=>{const e=new h.hf(h.HK.docker_del_container);e.context={dockerId:n.data.dockerId},await d.ws.send(e),r()},children:t("删除")})]})]})}var D=n(64405);function j(e){const{t}=(0,c.Bd)(),[n,i]=(0,o.fp)(s.AG.showPrompt),[r,u]=(0,o.fp)(s.AG.selectedFileList),[d,h]=(0,o.fp)(s.AG.nowFileList),[f,m]=(0,o.fp)(s.AG.sshInfo),[y,b]=(0,o.fp)(s.AG.shellNowDir),M=(0,a.Zp)();return(0,w.jsxs)("div",{className:"card floating",children:[(0,w.jsx)("div",{className:"card-content",children:(0,w.jsx)("p",{children:t("del_f")})}),(0,w.jsxs)("div",{className:"card-action",children:[(0,w.jsx)("button",{className:"button button--flat button--grey",onClick:function(){i({show:!1,overlay:!1,type:"",data:{}})},children:t("取消")}),(0,w.jsx)("button",{className:"button button--flat button--red",onClick:async function(){const e=(0,v.ib)(d,r);for(const t of e){const e=new D.x;e.key=f.key,p.Iw.folder===t.type?(e.dir=`/${(0,l.GG)("remoteShell",(0,l.vX)())}${t.name}`,e.file=null):(e.file=`/${(0,l.GG)("remoteShell",(0,l.vX)())}${t.name}`,e.dir=null),await g.Fg.post("delete",e)}i({show:!1,overlay:!1,type:"",data:{ok:!0}}),u([]),M((0,l.vX)())},children:t("删除")})]})]})}function z(e){const{t}=(0,c.Bd)(),[n,r]=(0,o.fp)(s.AG.showPrompt),[u,d]=(0,o.fp)(s.AG.sshInfo),[h,p]=(0,o.fp)(s.AG.shellNowDir),[f,m]=(0,i.useState)(""),y=(0,a.Zp)(),b=()=>{r({show:!1,type:"",overlay:!1,data:{ok:!0}})},v=async()=>{if(!f)return void b();const e=new D.x;e.key=u.key,e.dir=`/${(0,l.GG)("remoteShell",(0,l.vX)())}${f}`,e.file=null;0===(await g.Fg.post("create",e)).code&&(b(),y((0,l.vX)()))};return(0,w.jsx)(S.ZI,{title:t("创建目录"),cancel:b,confirm:v,cancel_t:t("取消"),confirm_t:t("创建"),context:[(0,w.jsx)("div",{className:"card-content",children:(0,w.jsx)(N.Sm,{placeholderOut:t("输入目录名"),value:f,handleInputChange:e=>m(e)})})],confirm_enter:v})}function E(e){const{t}=(0,c.Bd)(),[n,r]=(0,o.fp)(s.AG.showPrompt),[u,d]=(0,o.fp)(s.AG.sshInfo),[h,p]=(0,o.fp)(s.AG.shellNowDir),[f,m]=(0,i.useState)(""),y=(0,a.Zp)(),b=()=>{r({show:!1,type:"",overlay:!1,data:{ok:!0}})},v=async()=>{if(!f)return void b();const e=new D.x;e.key=u.key,e.file=`/${(0,l.GG)("remoteShell",(0,l.vX)())}${f}`;0===(await g.Fg.post("create",e)).code&&(b(),y((0,l.vX)()))};return(0,w.jsx)(S.ZI,{title:t("创建文件"),cancel:b,confirm:v,cancel_t:t("取消"),confirm_t:t("创建"),context:[(0,w.jsx)("div",{className:"card-content",children:(0,w.jsx)(N.Sm,{placeholderOut:t("输入文本名"),value:f,handleInputChange:e=>m(e)})})],confirm_enter:v})}function I(e){const{t}=(0,c.Bd)(),[n,i]=(0,o.fp)(s.AG.showPrompt),[r,u]=(0,o.fp)(s.AG.copyedFileList),[d,h]=(0,o.fp)(s.AG.cutedFileList),[p,f]=(0,o.fp)(s.AG.sshInfo),[m,y]=(0,o.fp)(s.AG.shellNowDir),b=(0,a.Zp)();function v(){i({show:!1,overlay:!1,type:"",data:{ok:!0}}),d.length>0?h([]):u([])}return(0,w.jsxs)("div",{className:"card floating",children:[(0,w.jsx)("div",{className:"card-content",children:(0,w.jsx)("p",{children:d.length>0?t("cut_ovr"):t("cp_ovr")})}),(0,w.jsxs)("div",{className:"card-action",children:[(0,w.jsx)("button",{className:"button button--flat button--grey",onClick:v,children:t("取消")}),(0,w.jsx)("button",{className:"button button--flat button--red",onClick:async function(){const e=new D.x;if(e.key=p.key,e.target=`/${(0,l.GG)("remoteShell",(0,l.vX)())}`,d.length>0){for(const t of d)e.source=t,await g.Fg.post("move",e);h([])}else{for(const t of r)e.source=t,await g.Fg.post("copy",e);u([])}v(),b((0,l.vX)())},children:t("确认")})]})]})}function O(e){const{t}=(0,c.Bd)(),[n,r]=(0,o.fp)(s.AG.showPrompt),[u,d]=(0,o.fp)(s.AG.selectedFileList),[h,p]=(0,o.fp)(s.AG.nowFileList),[f,m]=(0,i.useState)(""),[y,b]=(0,o.fp)(s.AG.sshInfo),[M,x]=(0,o.fp)(s.AG.shellNowDir),L=(0,a.Zp)(),_=()=>{d([]),r({show:!1,type:"",overlay:!1,data:{ok:!0}})};(0,i.useEffect)(()=>{m((0,v.ib)(h,u)[0].name)},[]);const C=async()=>{if(!f||1!==u.length)return void _();const e=new D.x;e.key=y.key;const t=(0,v.ib)(h,u);e.target=`/${(0,l.GG)("remoteShell",(0,l.vX)())}${f}`,e.source=`/${(0,l.GG)("remoteShell",(0,l.vX)())}${t[0].name}`;0===(await g.Fg.post("move",e)).code&&(_(),L((0,l.vX)()))};return(0,w.jsx)(S.ZI,{title:t("修改名字"),cancel:_,confirm:C,cancel_t:t("取消"),confirm_t:t("创建"),context:[(0,w.jsx)("div",{className:"card-content",children:(0,w.jsx)(N.Sm,{placeholderOut:t("输入新名字"),value:f,handleInputChange:e=>m(e)})})],confirm_enter:C})}function $(){const{t:e}=(0,c.Bd)(),[t,n]=(0,o.fp)(s.AG.showPrompt),[u,d]=i.useState(!1),[h,p]=(0,o.fp)(s.AG.uploadFiles),[f,m]=(0,o.fp)(s.AG.nowProgress),[y,b]=(0,o.fp)(s.AG.sshInfo),[v,M]=(0,o.fp)(s.AG.shellNowDir),x=(0,a.Zp)();return(0,i.useEffect)(()=>{(async()=>{const e=Array.from(h);for(let t=0;t<e.length;){let i=e[t];const r=`?target=${`/${(0,l.GG)("remoteShell",(0,l.vX)())}${decodeURIComponent(i.fullPath)}`}&key=${y.key}&dir=${i.isDir?1:0}`;(await g.Fg.put(r,i,e=>{const n=Math.round(100*e.loaded/e.total);m({name:i.name,value:n,index:t})})).code,t===e.length-1&&(p([]),n({show:!1,type:"",overlay:!1,data:{ok:!0}})),t++}x((0,l.vX)())})()},[]),(0,w.jsx)("div",{className:"upload-files",children:(0,w.jsxs)("div",{className:"card floating",children:[(0,w.jsxs)("div",{className:"card-title",children:[(0,w.jsxs)("h2",{children:[h.length,e("个文件正在上传")]}),(0,w.jsx)(r.rA,{icon:u?"keyboard_arrow_down":"keyboard_arrow_up",title:"Toggle file upload list",onClick:function(){d(!u)}})]}),u&&(0,w.jsx)("div",{className:"card-content file-icons",children:h.map((e,t)=>(0,w.jsxs)("div",{className:"file",children:[(0,w.jsx)("div",{className:"file-name",children:e.name}),(0,w.jsx)("div",{className:"file-progress",children:(0,w.jsx)("div",{style:{width:`${f.index>t?100:f.name===e.name?f.value:1}%`}})})]},t))})]})})}n(34251);function R(e){const{t}=(0,c.Bd)(),[n,r]=(0,o.fp)(s.AG.showPrompt),[f,g]=(0,i.useState)([{r:`${t("转到")}mp4`,v:"mp4"},{r:`${t("转到")}flv`,v:"flv"},{r:t("自定义"),v:""}]),[m,b]=(0,i.useState)(""),[v,M]=(0,i.useState)(""),[x,L]=(0,i.useState)(!0),[C,T]=(0,i.useState)(0),k=(0,a.Zp)(),A=((0,a.zy)(),()=>{r({show:!1,type:"",overlay:!1,data:{}})});return(0,w.jsx)("div",{children:n.show&&(x?(0,w.jsx)(_.rY,{click:A,children:(0,w.jsx)(_.Pu,{x:n.data.x,y:n.data.y,items:f,click:async e=>{b(e),L(!1),M(`${n.data.filename}.${e}`)}})}):(0,w.jsxs)("div",{children:[(0,w.jsx)(S.ZI,{title:t("视频格式转换"),cancel:A,confirm:()=>{if(!m||!v)return void(0,u.zN)("不能为空");if(m===y.wr.getFileExtension(n.data.filename))return void(0,u.zN)("和原文件格式后缀一样");const e=`${(0,l.GG)("file",(0,l.vX)())}${n.data.filename}`,t=`${(0,l.GG)("file",(0,l.vX)())}${v}`,i=new p.nC;i.to_format=m,i.to_filename=t,i.source_filename=e,i.token=localStorage.getItem("token"),d.ws.sendData(h.HK.file_video_trans,i),d.ws.addMsg(h.HK.file_video_trans_progress,e=>{const t=parseInt(e.context);T(t),100===t&&((0,u.SK)("完成"),k((0,l.vX)()),A())}),d.ws.subscribeUnconnect(()=>{(0,u.zN)("发生错误"),A()})},cancel_t:t("取消"),confirm_t:t("确定"),context:C?[(0,w.jsxs)("div",{children:[t("进度"),":"]}),(0,w.jsx)(S.gz,{progress:C})]:[(0,w.jsx)(N.Sm,{placeholderOut:t("ff_fmt"),placeholder:"flv mp4 ...",value:m,handleInputChange:e=>b(e)}),(0,w.jsx)(N.Sm,{placeholderOut:t("目标文件名"),value:v,handleInputChange:e=>M(e)}),(0,w.jsx)("div",{children:t("gen_dir")})]}),(0,w.jsx)(_.hJ,{click:A})]}))})}const P=async(e,t,n=[])=>{const i=new f.Yn;i.path=`${(0,l.GG)("file",(0,l.vX)())}${e}`,i.inputs=n,3===t?i.run_type=f.Xj.start:4===t&&(i.run_type=f.Xj.stop),await d.ws.sendData(h.HK.workflow_exec,i)};let U=function(e){return e[e.stop_workflow=4]="stop_workflow",e[e.real_time_workflow=5]="real_time_workflow",e[e.run_workflow=3]="run_workflow",e.run_real_time_workflow="3_1",e[e.open_text=1]="open_text",e[e.run_workflow_by_pre_inputs=6]="run_workflow_by_pre_inputs",e.logviwer_text="utf8",e.logviwer_utf8="utf8",e.logviwer_utf16="utf16",e.logviwer_utf32="utf32",e.logviwer_gbk="gbk",e.logviwer_gb2312="gb2312",e.logviwer_gb18030="gb18030",e.logviwer_windows1252="windows1252",e.logviwer_wrap="logviwer_wrap",e.logviwer_nowrap="logviwer_nowrap",e.sutdio="sutdio",e.folder_size_info="folder_size_info",e.file_quick_cmd="file_quick_cmd",e.file_copy_name="file_copy_name",e.file_copy_ab_path="file_copy_ab_path",e.file_copy_now_path="file_copy_now_path",e.un_compress="un_compress",e.share_file="share_file",e.share_file_download="share_file_download",e.share_file_copy_url="share_file_copy_url",e.ai_load_one_file="ai_load_one_file",e.ai_del_one_file="ai_del_one_file",e.file_base_info="file_base_info",e.file_delete="file_delete",e.file_rename="file_rename",e.file_download="file_download",e.sqlite_query="sqlite_query",e.blank_search_mode="blank_search_mode",e.image_open="image_open",e.image_preview="image_preview",e.md_editor_open="md_editor_open",e.mount_dir="mount_dir",e.unmount_dir="unmount_dir",e.mount_config="mount_config",e}({});function F(e){const{t}=(0,c.Bd)(),n=[{r:t("解压"),v:U.un_compress}];e.list&&n.push(...e.list);const[r,f]=(0,o.fp)(s.AG.showPrompt),[g,m]=(0,i.useState)(n),[b,v]=(0,i.useState)(void 0),[M,x]=(0,i.useState)(!0),[L,C]=(0,i.useState)(0),T=(0,a.Zp)(),k=((0,a.zy)(),()=>{f({show:!1,type:"",overlay:!1,data:{}})});return(0,w.jsx)("div",{children:r.show&&(M?(0,w.jsx)(_.rY,{click:k,children:(0,w.jsx)(_.Pu,{x:r.data.x,y:r.data.y,items:g,click:async(t,n)=>{U.un_compress===t?x(!1):e.click&&e.click(t,n)}})}):(0,w.jsxs)("div",{children:[(0,w.jsx)(S.ZI,{title:t("解压文件"),cancel:k,confirm:()=>{y.wr.getFileExtension(r.data.filename);const e=`${(0,l.GG)("file",(0,l.vX)())}${r.data.filename}`,t=new p.l,n=(0,y.Td)(r.data.filename);n?(t.format=n,t.source_file=e,t.tar_dir=b,t.token=localStorage.getItem("token"),d.ws.sendData(h.HK.file_uncompress,t),d.ws.addMsg(h.HK.file_uncompress_progress,e=>{const t=parseInt(e.context);C(t),100===t&&((0,u.SK)("完成"),T((0,l.vX)()),k())}),d.ws.subscribeUnconnect(()=>{(0,u.zN)("发生错误"),k()})):(0,u.zN)("不支持的文件后缀")},cancel_t:t("取消"),confirm_t:t("确定"),context:L?[(0,w.jsxs)("div",{children:[t("进度"),":"]}),(0,w.jsx)(S.gz,{progress:L})]:[(0,w.jsx)(N.Sm,{placeholder:t("当前目录"),placeholderOut:t("解压到"),value:b,handleInputChange:e=>v(e)})]}),(0,w.jsx)(_.hJ,{click:k})]}))})}var Y=n(74777),Q=n(45907),W=n(78247);function B(e){const{t}=(0,c.Bd)(),[n,r]=(0,o.fp)(s.AG.showPrompt),[a,l]=(0,i.useState)([{r:t("挂载"),v:t("挂载")}]),[d,h]=(0,i.useState)(void 0),[p,f]=(0,i.useState)(!0),[m,y]=(0,o.fp)(s.AG.user_base_info),b=()=>{r({show:!1,type:"",overlay:!1,data:{}})};if(n.show)return(0,w.jsx)("div",{children:p?(0,w.jsx)(_.rY,{click:b,children:(0,w.jsx)(_.Pu,{x:n.data.x,y:n.data.y,items:a,click:async e=>{f(!1)}})}):(0,w.jsxs)("div",{children:[(0,w.jsx)(S.ZI,{title:t("挂载设备"),cancel:b,confirm:async()=>{if(!d)return void(0,u.zN)("挂载目录不能为空");if(n.data.extra_data.mountpoints&&n.data.extra_data.mountpoints.find(e=>e===d))return void(0,u.zN)("重复挂载");if(!n.data.extra_data.path)return void(0,u.zN)("该设备块没有具体路径");if(!n.data.extra_data.fstype)return void(0,u.zN)("该设备块没有文件系统");if("ext4"!==n.data.extra_data.fstype&&n.data.extra_data.mountpoint)return void(0,u.zN)(t("非ext4格式,可能不支持多目录挂载"));(await g.Yu.post("disk/mount",{fsType:n.data.extra_data.fstype,dir_path:d,dev_path:n.data.extra_data.path})).code===M.m.Success&&(n.data.call&&n.data.call(),b())},cancel_t:t("取消"),confirm_t:t("确定"),context:[(0,w.jsx)(N.Sm,{placeholder:t("输入挂载目录"),placeholderOut:t("目录"),value:d,handleInputChange:e=>h(e)})]}),(0,w.jsx)(_.hJ,{click:b})]})})}var H=n(23496),V=n(7523),G=n(40505),K=n(79240),q=n(23430),Z=n(87361),X=n(88815),J=n(17903);function ee(e){const{t}=(0,c.Bd)(),[n,o]=(0,i.useState)([]),[s,a]=(0,i.useState)([]),[l,d]=(0,i.useState)({driver:"webdav",credential_id:"",account_id:"",root_dir:"",note:"",color:J.OT,readonly:!1,enabled:!0});(0,i.useEffect)(()=>{(async()=>{try{const[e,t]=await Promise.all([g.I2.post("driver/list",{}),g.I2.post("credential/list",{})]);o(Array.isArray(e?.data)?e.data:[]),a(Array.isArray(t?.data)?t.data:[])}catch(e){}if(e.mount_id)try{const t=await g.I2.post("list",{}),n=(Array.isArray(t?.data)?t.data:[]).find(t=>t.id===e.mount_id);n&&d({driver:n.driver??"webdav",credential_id:n.credential_id??"",account_id:n.account_id??"",root_dir:n.root_dir??"",note:n.note??"",color:n.color??J.OT,readonly:Boolean(n.readonly),enabled:!1!==n.enabled})}catch(e){}})()},[]);const h=(0,J.p_)(l.credential_id,s),p=h.length>0;return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)("p",{children:e.mount_path}),(0,w.jsx)(N.l6,{value:l.driver,options:n.map(e=>({title:e.name,value:e.type})),onChange:e=>d({...l,driver:e,credential_id:"",account_id:""})}),(0,w.jsx)(N.l6,{value:l.credential_id,options:(0,J.XT)(l.driver,s),onChange:e=>d({...l,credential_id:e,account_id:""})}),p&&(0,w.jsx)(N.l6,{value:l.account_id,options:h,onChange:e=>d({...l,account_id:e})}),(0,w.jsx)(N.Sm,{placeholder:t("strtdrt"),value:l.root_dir,handleInputChange:e=>d({...l,root_dir:e})}),(0,w.jsx)(N.Sm,{placeholder:t("备注"),value:l.note,handleInputChange:e=>d({...l,note:e})}),(0,w.jsx)(N.Sm,{placeholder:t("标识色,如 #4a9eff"),value:l.color,handleInputChange:e=>d({...l,color:e})}),(0,w.jsx)(N.l6,{value:l.readonly,options:[{title:t("只读"),value:!0},{title:"读写",value:!1}],onChange:e=>d({...l,readonly:e})}),(0,w.jsxs)("div",{children:[(0,w.jsx)(r.rA,{icon:"cancel",title:t("取消"),onClick:e.onClose}),(0,w.jsx)(r.rA,{icon:"network_check",title:t("测试连接"),onClick:async()=>{if(l.credential_id)try{const n=await g.I2.post("test",{id:e.mount_id,driver:l.driver,credential_id:l.credential_id,account_id:l.account_id,root_dir:l.root_dir}),i=n?.data;i?.ok?(0,u.SK)(`${t("连接成功")}(${i.count??0})`):(0,u.zN)(`${t("连接失败")}:${i?.error??""}`)}catch(e){}else(0,u.zN)(t("请选择凭据"))}}),(0,w.jsx)(r.rA,{icon:"save",title:t("保存"),onClick:async()=>{if(l.credential_id)if(!p||l.account_id)try{await g.I2.post(e.mount_id?"update":"add",{id:e.mount_id,driver:l.driver,mount_path:e.mount_path,credential_id:l.credential_id,account_id:p?l.account_id:void 0,root_dir:l.root_dir,note:l.note,color:l.color,readonly:l.readonly,enabled:l.enabled}),(0,u.SK)(t("保存成功")),e.onDone()}catch(e){}else(0,u.zN)(t("请选择账号"));else(0,u.zN)(t("请选择凭据"))}})]})]})}function te(){const[e,t]=(0,o.fp)(s.AG.showPrompt),[n,m]=(0,o.fp)(s.AG.fileShellShow),[b,x]=(0,o.fp)(s.AG.user_base_info),{t:L}=(0,c.Bd)(),S=(0,Q.y)(),C=(0,a.Zp)(),{check_user_auth:T}=(0,W.MH)(),k=[{r:L("复制名字"),v:U.file_copy_name,items:[{r:L("复制绝对路径"),v:U.file_copy_ab_path},{r:L("复制当前路径"),v:U.file_copy_now_path}]},{r:L("详细信息"),v:U.file_base_info,items:[]},{r:L("重命名"),v:U.file_rename},{r:L("下载"),v:U.file_download},{r:L("删除"),v:U.file_delete}];T(q.oV.share_file)&&k.push({r:L("分享"),v:U.share_file}),b.docs_ai_is_open&&T(q.oV.ai_agent_setting)&&k.push({r:L("更新AI知识库"),v:U.ai_load_one_file,items:[{r:L("删除"),v:U.ai_del_one_file}]});const A=[{code:"utf8",v:U.logviwer_utf8},{code:"utf16",v:U.logviwer_utf16},{code:"utf32",v:U.logviwer_utf32},{code:"gbk",v:U.logviwer_gbk},{code:"gb2312",v:U.logviwer_gb2312},{code:"gb18030",v:U.logviwer_gb18030},{code:"windows1252",v:U.logviwer_windows1252}],D=[{r:L("以文本打开"),v:U.open_text},{r:L("以日志打开"),v:U.logviwer_text,items:A.map(e=>({r:e.code,v:e.v,items:[{r:L("自动换行"),v:U.logviwer_wrap,encoding:e.code},{r:L("不换行"),v:U.logviwer_nowrap,encoding:e.code}]}))},...k];if((e.data?.type===p.Iw.database||/\.(db|sqlite|sqlite3)$/i.test(e.data?.filename??""))&&D.unshift({r:L("数据库查询"),v:U.sqlite_query}),(e.data?.type===p.Iw.md||/\.md$/i.test(e.data?.filename??""))&&D.unshift({r:L("MD编辑器"),v:U.md_editor_open}),b.user_data?.file_quick_cmd)for(const t of b.user_data.file_quick_cmd)for(const n of(t.file_suffix??"").split(" "))if(e.data.filename?.endsWith(n)){D.push({r:`${t.note}`,v:U.file_quick_cmd,extra_value:t});break}const{click_file:j}=(0,v.kZ)(),z=(0,v._A)(),[E,I]=(0,o.fp)(s.AG.image_editor),[O,$]=(0,o.fp)(s.AG.md_editor),[J,te]=(0,o.fp)(s.AG.log_viewer),[ne,ie]=(0,o.fp)(s.AG.workflow_realtime_show),[re,oe]=(0,o.fp)(s.AG.prompt_card),{initUserInfo:se}=(0,i.useContext)(V.F),[ae,le]=(0,o.fp)(s.AG.folder_info_list_data),ce=(0,v.A9)(),[,ue]=(0,o.fp)(s.AG.blank_search_mode_for_temp),[he,pe]=(0,o.fp)(s.AG.selectedFileList),[fe,ge]=(0,o.fp)(s.AG.nowFileList),[,me]=(0,o.fp)(s.AG.file_list_refresh),[ye,we]=(0,i.useState)([]),be=async()=>{if(T(q.oV.file_mount))try{const e=await g.I2.post("list",{});we(Array.isArray(e?.data)?e.data:[])}catch(e){}},ve=(e,t)=>{if(!e||!t)return!1;const n=e=>{let t=e.replace(/\\/g,"/").replace(/\/+$/,"");return/^[a-zA-Z]:/.test(t)&&(t=t[0].toUpperCase()+t.slice(1)),t};return n(e).toLowerCase()===n(t).toLowerCase()};i.useEffect(()=>{e.show&&be()},[e.show]);const Me=()=>{const t=q.nM.get_now_dir(b);let n=(0,K.Jn)(t,decodeURIComponent((0,l.GG)("file",(0,l.vX)())));return b.sys===q.XM.win?n=n.replaceAll("/","\\"):n.includes("\\")&&(n=n.replaceAll("\\","/")),e.data.filename?(0,K.Jn)(n,e.data.filename):n},xe=[{r:L("o_stdo"),v:U.sutdio},{r:L("srchbln"),v:U.blank_search_mode},{r:L("统计信息"),v:U.folder_size_info},...k,...T(q.oV.file_mount)?(()=>{const e=Me();return ye.find(t=>ve(t.mount_path,e))?[{r:L("编辑挂载配置"),v:U.mount_config},{r:L("取消挂载"),v:U.unmount_dir}]:[{r:L("挂载"),v:U.mount_dir}]})():[]],Le=[{r:L("o_img"),v:U.image_open},{r:L(`${L(b?.user_data?.not_pre_show_image?"开启":"关闭")} ${L("预览图片")}`),v:U.image_preview},...k],{file_is_running:_e}=(0,W.hg)(),Ne=()=>{t({show:!1,type:"",overlay:!1,data:{}})},Se=()=>`${(0,l.GG)("file",(0,l.vX)())}${e.data.filename}`;let Ce;const Te=e.data,ke=async(n,i)=>{switch(Ne(),n){case U.open_text:{const t=e.data.filename;z({name:t,mode:"text"}),j({name:t,model:"text",size:e.data.size,opt_shell:!0,close:()=>z(null)})}break;case U.logviwer_text:case U.logviwer_utf8:case U.logviwer_utf16:case U.logviwer_utf32:case U.logviwer_gbk:case U.logviwer_gb2312:case U.logviwer_gb18030:case U.logviwer_windows1252:z({name:e.data.filename,mode:"log",log_enc:n,log_wrap:"wrap"}),te({show:!0,fileName:e.data.filename,encoding:n,wrap:"wrap",close:()=>z(null)});break;case U.logviwer_wrap:case U.logviwer_nowrap:{const t=i?.encoding??"utf8",r=n===U.logviwer_wrap?"wrap":"nowrap";z({name:e.data.filename,mode:"log",log_enc:t,log_wrap:r}),te({show:!0,fileName:e.data.filename,encoding:t,wrap:r,close:()=>z(null)})}break;case U.run_workflow:case U.stop_workflow:case U.real_time_workflow:n===U.real_time_workflow?ie({open:!0,filename:e.data.filename}):P(e.data.filename,n);break;case U.run_real_time_workflow:await P(e.data.filename,U.run_workflow),ie({open:!0,filename:e.data.filename});break;case U.run_workflow_by_pre_inputs:{let t=(await g.$M.post("workflow/get/pre_inputs",{path:`${(0,l.GG)("file",(0,l.vX)())}${e.data.filename}`})).data;const n=()=>{for(const e of t)if(e.required&&!e.default)return void(0,u.zN)(`${e.description} is required`)};oe({open:!0,title:"inputs",context_div:(0,w.jsxs)("div",{children:[(0,w.jsx)("div",{className:"card-content",children:t.map((e,t)=>(0,w.jsx)(N.Sm,{placeholderOut:e.description,value:e.default,options:e.options,handleInputChange:t=>{e.default=t}},t))}),(0,w.jsxs)("div",{className:"card-action",children:[(0,w.jsx)("button",{className:"button button--flat button--grey",onClick:()=>{oe({open:!1})},children:L("取消")}),(0,w.jsx)("button",{className:"button button--flat",onClick:async()=>{n(),await P(e.data.filename,U.run_workflow,t),oe({open:!1}),ie({open:!0,filename:e.data.filename})},children:L("运行并实时查看")}),(0,w.jsx)("button",{className:"button button--flat",onClick:async()=>{n(),await P(e.data.filename,U.run_workflow,t),oe({open:!1})},children:L("运行")})]})]})})}break;case U.file_quick_cmd:m({show:!0,path:(0,l.GG)("file",(0,l.vX)()),cmd:`${i.extra_value.cmd} ${e.data.filename} ${i.extra_value.params??""}\r`});break;case U.file_copy_name:(0,G.lW)(e.data.filename);break;case U.file_copy_now_path:(0,G.lW)((0,K.Jn)(decodeURIComponent((0,l.GG)("file",(0,l.vX)())),e.data.filename));break;case U.file_copy_ab_path:(0,G.lW)(Me());break;case U.sqlite_query:j({name:e.data.filename,file_path:Me()});break;case U.md_editor_open:{const t=(0,l.GG)("file",(0,l.vX)()),n=e.data.filename,i=`${t}${n}`;z({name:n,mode:"md"}),$({url:g.$M.getDownloadUrl(`${encodeURIComponent(t)}${n}`),path:i,name:n,close:()=>z(null)})}break;case U.sutdio:Ne(),C(`${Z.o.studio_page}/${encodeURIComponent(e.data.path)}`);break;case U.blank_search_mode:ue(!0),ce(e.data.filename);break;case U.folder_size_info:{d.ws.addMsg(h.HK.folder_size_info,e=>{le([e.context[0],e.context[1]])});const n=(0,l.GG)("file",e.data.path);d.ws.sendData(h.HK.folder_size_info,{path:n}),t({show:!0,type:de.FolderInfo,overlay:!0,data:{}})}break;case U.share_file:{const e=new f.PU;e.path=Me();const t=async()=>{(await g.XO.post("add_share_file_list",e)).code===M.m.Success&&((0,u.SK)("添加成功"),oe({open:!1}),C(`${Z.o.share_list_setting_page}`))};oe({open:!0,title:"share file",confirm:t,context_div:(0,w.jsxs)("div",{className:"card-content",children:[(0,w.jsx)(N.Sm,{placeholderOut:L("路径"),value:e.path,handleInputChange:t=>e.path=t}),(0,w.jsx)(N.Sm,{placeholderOut:L("exp_hr"),value:e.left_hour,handleInputChange:t=>e.left_hour=parseInt(t)}),(0,w.jsx)(N.Sm,{placeholderOut:L("token(可以为空)"),handleInputChange:t=>e.token=t}),(0,w.jsx)(N.Sm,{placeholderOut:L("备注"),handleInputChange:t=>e.note=t})]})})}break;case U.share_file_download:const r=g.$M.getDownloadUrlV2(e.data.path,"share_download",{share_id:e.data.share_id,share_token:e.data.share_token});window.open(r);break;case U.share_file_copy_url:const o=g.$M.getDownloadUrlV2(e.data.path,"share_download",{share_id:e.data.share_id,share_token:e.data.share_token}),s=g.$M.get_full_url(o);(0,G.lW)(s),(0,u.SK)(s);break;case U.ai_load_one_file:oe({open:!0,title:"确认",confirm:async()=>{oe({open:!1});(await g.jV.post("ai_load_one_file",{param_path:Me()})).code===M.m.Success&&(0,u.SK)("更新到AI知识库成功")},context_div:(0,w.jsx)("p",{children:L("确定更新到知识库吗,更新进度请到知识库设置查询")})});break;case U.ai_del_one_file:oe({open:!0,title:"确认",confirm:async()=>{oe({open:!1});(await g.jV.post("ai_del",{param_path:Me()})).code===M.m.Success&&(0,u.SK)("ok")}});break;case U.file_base_info:{const e=await g.$M.post("file_base_info",{param_path:Me()});if(e.code!==M.m.Success)return;const t=e.data;oe({open:!0,title:"确认",context_div:(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(_.Yh,{left:`${L("名称")}`,right:t.name}),(0,w.jsx)(_.Yh,{left:`${L("大小")}`,right:(0,X.v7)(t.size)}),(0,w.jsx)(_.Yh,{left:`${L("字节")}`,right:t.size}),(0,w.jsx)(_.Yh,{left:`${L("创建时间")}`,right:(0,y.Yq)(t.createdAt)}),(0,w.jsx)(_.Yh,{left:`${L("修改时间")}`,right:(0,y.Yq)(t.modifiedAt)}),(0,w.jsx)(_.Yh,{left:`${L("访问时间")}`,right:(0,y.Yq)(t.accessedAt)}),(0,w.jsx)(_.Yh,{left:`${L("权限")}`,right:(0,y.A6)(t.mode)}),(0,w.jsx)(_.Yh,{left:`${L("用户")}`,right:`${t.uname}(${t.uid})`})]})});break}case U.mount_dir:{const e=Me();oe({open:!0,title:L("挂载目录"),context_div:(0,w.jsx)(ee,{mount_path:e,onClose:()=>oe({open:!1}),onDone:()=>{oe({open:!1}),me(e=>e+1)}})})}break;case U.mount_config:{const e=Me(),t=ye.find(t=>ve(t.mount_path,e));if(!t){(0,u.zN)(L("该目录尚未挂载"));break}oe({open:!0,title:L("编辑挂载配置"),context_div:(0,w.jsx)(ee,{mount_id:t.id,mount_path:t.mount_path,onClose:()=>oe({open:!1}),onDone:()=>{oe({open:!1}),be(),me(e=>e+1)}})})}break;case U.unmount_dir:{const e=Me(),t=ye.find(t=>ve(t.mount_path,e));if(!t){(0,u.zN)(L("该目录尚未挂载"));break}S({title:L("确认取消挂载"),sub_title:t.mount_path,confirm_fun:async()=>{try{await g.I2.post("delete",{id:t.id}),(0,u.SK)(L("已取消挂载")),be(),me(e=>e+1)}catch(e){}}})}break;case U.file_delete:e.data.useSelectedList?t({show:!0,type:de.FilesDelete,overlay:!0,data:{}}):t({show:!0,type:de.FilesDelete,overlay:!0,data:{path:Se(),filename:e.data.filename}});break;case U.file_rename:t({show:!0,type:de.FileRename,overlay:!0,data:{path:Se(),dir:(0,l.GG)("file",(0,l.vX)()),filename:e.data.filename}});break;case U.file_download:if(e.data.useSelectedList){const e=(0,v.ib)(fe,he).map(e=>encodeURIComponent((0,v.Ok)(e.name))),t=g.$M.getDownloadUrl(e);window.open(t)}else{const e=encodeURIComponent(Se()),t=g.$M.getDownloadUrl(e);window.open(t)}}};if(e.data?.is_share)return Ce=(0,w.jsx)("div",{onWheel:()=>{Ne()},children:(0,w.jsx)(_.rY,{click:Ne,children:(0,w.jsx)(_.Pu,{x:e.data.x,y:e.data.y,items:[{r:(0,w.jsxs)("div",{className:"common-tag-center",children:[(0,w.jsx)(r.In,{icon:"download",not_use_icon_style:!0}),(0,w.jsx)("span",{children:"download"})]}),v:U.share_file_download},{r:(0,w.jsxs)("div",{className:"common-tag-center",children:[(0,w.jsx)(r.In,{icon:"link",not_use_icon_style:!0}),(0,w.jsx)("span",{children:"copy curl"})]}),v:U.share_file_copy_url}],click:ke})})}),Ce;switch(Te.type){case p.Iw.video:if(!b.sysSoftWare||!b.sysSoftWare[Y.jk.ffmpeg]||!b.sysSoftWare[Y.jk.ffmpeg].installed){(0,u.zN)("not ffmpeg"),Promise.resolve().then(()=>{Ne()});break}Ce=(0,w.jsx)("div",{onWheel:()=>{Ne()},children:(0,w.jsx)(R,{})});break;case p.Iw.uncompress:Ce=(0,w.jsx)("div",{onWheel:()=>{Ne()},children:(0,w.jsx)(F,{list:k,click:ke})});break;case p.Iw.dev:Ce=(0,w.jsx)("div",{onWheel:()=>{Ne()},children:(0,w.jsx)(B,{})});break;case p.Iw.image:Ce=(0,w.jsx)("div",{onWheel:()=>{Ne()},children:(0,w.jsx)(_.rY,{click:Ne,children:(0,w.jsx)(_.Pu,{x:e.data.x,y:e.data.y,items:Le,click:async(t,n)=>{t==U.image_open?(z({name:e.data.filename,mode:"image_edit"}),I({path:e.data.path,name:e.data.filename,close:()=>z(null)}),Ne()):t==U.image_preview?(await g.wm.post(H.s.user_save_private_attr,{not_pre_show_image:!b?.user_data?.not_pre_show_image}),await se(),C((0,l.vX)()),Ne()):ke(t,n)}})})});break;case p.Iw.folder:Ce=(0,w.jsx)("div",{onWheel:()=>{Ne()},children:(0,w.jsx)(_.rY,{click:Ne,children:(0,w.jsx)(_.Pu,{x:e.data.x,y:e.data.y,items:xe,click:ke})})});break;case p.Iw.studio_file:case p.Iw.studio_folder:case p.Iw.directory:Ce=(0,w.jsx)("div",{onWheel:()=>{Ne()},children:(0,w.jsx)(_.rY,{click:Ne,children:(0,w.jsx)(_.Pu,{x:e.data.x,y:e.data.y,pre_value:e.data.item_pre_value,items:e.data.items,click:e.data.textClick})})});break;case p.Iw.unknow:default:{const t=(()=>{let e=[...D];return(Te.filename.endsWith(".workflow.yml")||Te.filename.endsWith(".act"))&&(_e(Te.filename)?(e.unshift({r:L("停止")+" workflow",v:U.stop_workflow}),e.unshift({r:L("实时查看")+" workflow",v:U.real_time_workflow})):e.unshift({r:L("运行")+" workflow",v:U.run_workflow,items:[{r:L("运行并实时查看"),v:U.run_real_time_workflow},{r:L("输入参数运行"),v:U.run_workflow_by_pre_inputs}]})),e})();Ce=(0,w.jsx)("div",{onWheel:Ne,children:(0,w.jsx)(_.rY,{click:Ne,children:(0,w.jsx)(_.Pu,{x:e.data.x,y:e.data.y,items:t,click:ke})})})}}return Ce}const ne=[];for(let e=1;e<=9;e++)ne.push({title:`Level ${e}`,value:e});function ie(e){const{t}=(0,c.Bd)(),[n,r]=(0,o.fp)(s.AG.selectedFileList),[f,g]=(0,o.fp)(s.AG.clickFileList),[m,y]=(0,o.fp)(s.AG.showPrompt),[b,v]=(0,i.useState)(""),[M,x]=(0,i.useState)(".tar"),[L,C]=(0,i.useState)(p.DG.tar),[T,k]=(0,i.useState)(0),[A,D]=(0,i.useState)(1),j=(0,a.Zp)(),z=((0,a.zy)(),()=>{y({show:!1,type:"",overlay:!1,data:{}})});return(0,w.jsxs)("div",{children:[(0,w.jsx)(S.ZI,{title:t("压缩文件"),cancel:z,confirm:()=>{if(!b)return void(0,u.zN)("文件名不能为空");const e=m.data.files,t=new p.l;t.filePaths=e,t.format=L;let n=b;n.endsWith(L)||(n+=L),t.tar_filename=`${(0,l.GG)("file",(0,l.vX)())}${n}`,t.token=localStorage.getItem("token"),t.compress_level=A,d.ws.sendData(h.HK.file_compress,t),d.ws.addMsg(h.HK.file_compress_progress,e=>{const t=parseInt(e.context);k(t),100===t&&((0,u.SK)("完成"),j((0,l.vX)()),z()),r([]),g([])}),d.ws.subscribeUnconnect(()=>{(0,u.zN)("发生错误"),z()})},cancel_t:t("取消"),confirm_t:t("确定"),context:T?[(0,w.jsxs)("div",{children:[t("进度"),":"]}),(0,w.jsx)(S.gz,{progress:T})]:[(0,w.jsx)(N.l6,{value:L,onChange:e=>{C(e),x(e)},options:[{title:`tar ${t("格式")}`,value:p.DG.tar},{title:`zip ${t("格式")}`,value:p.DG.zip},{title:`tar.gz ${t("格式")}`,value:p.DG.tar_gz},{title:`gz ${t("格式")}`,value:p.DG.gz}]}),(0,w.jsx)(N.l6,{value:A,onChange:e=>{const t=parseInt(e);D(t)},options:ne}),(0,w.jsx)(N.Sm,{placeholder:M,placeholderOut:t("压缩到"),value:b,handleInputChange:e=>v(e)})]}),(0,w.jsx)(_.hJ,{click:z})]})}function re(e){const{t}=(0,c.Bd)(),[n,i]=(0,o.fp)(s.AG.confirm);return(0,w.jsxs)("div",{className:"card floating",children:[(0,w.jsx)("div",{className:"card-title",children:(0,w.jsx)("h2",{children:n.title??t("验证执行")})}),n.sub_title&&(0,w.jsx)("div",{children:n.sub_title}),n.context_div&&(0,w.jsx)("div",{className:"card-content",children:n.context_div}),(0,w.jsxs)("div",{className:"card-action",children:[(0,w.jsx)("button",{className:"button button--flat button--grey",onClick:()=>{i({open:!1,handle:null})},children:t("取消")}),(0,w.jsx)("button",{className:"button button--flat",onClick:async()=>{await n.handle()},children:t("确定")})]})]})}var oe=n(12721);function se(e){const[t,n]=(0,o.fp)(s.AG.showPrompt),{t:i}=(0,c.Bd)();return(0,w.jsxs)("div",{children:[t.data?.extra_data?.only_file?(0,w.jsx)("input",{style:{display:"none"},type:"file",id:"upload-input",onChange:e=>{t.data.call(e)}}):(0,w.jsx)("input",{style:{display:"none"},type:"file",id:"upload-input",multiple:!0,onChange:e=>{t.data.call(e)}}),(0,w.jsx)("input",{style:{display:"none"},type:"file",id:"upload-input-directory",webkitdirectory:"true",multiple:!0,onChange:e=>{t.data.call(e)}}),(0,w.jsx)("div",{className:"overlay"}),(0,w.jsxs)("div",{className:"card floating",children:[(0,w.jsx)("div",{className:"card-title",children:(0,w.jsx)("h2",{children:i("上传")})}),(0,w.jsx)("div",{className:"card-content",children:(0,w.jsx)("p",{children:i("文件选项")})}),(0,w.jsxs)("div",{className:"card-action full",children:[(0,w.jsxs)("div",{className:"action",onClick:()=>{document.getElementById("upload-input").click()},children:[(0,w.jsx)(r.In,{icon:"insert_drive_file"}),(0,w.jsx)("div",{className:"title",children:i("文件")})]}),!t.data?.extra_data?.only_file&&(0,w.jsxs)("div",{className:"action",onClick:()=>{document.getElementById("upload-input-directory").click()},children:[(0,w.jsx)(r.In,{icon:"folder"}),(0,w.jsx)("div",{className:"title",children:i("文件夹")})]})]})]})]})}function ae(){const{t:e}=(0,c.Bd)(),[t,n]=(0,o.fp)(s.AG.folder_info_list_data);return(0,w.jsxs)("div",{className:"card floating",children:[(0,w.jsx)("div",{className:"card-title",children:(0,w.jsx)("h2",{children:e("统计")})}),(0,w.jsxs)("div",{style:{maxWidth:"25rem"},children:[(0,w.jsx)(_.Yh,{left:e("文件总数量"),center:t[0]}),(0,w.jsx)(_.Yh,{left:e("总大小"),right:t[1],center:(0,X.v7)(t[1])})]})]})}var le=n(80389);function ce(){const{t:e}=(0,c.Bd)(),[t,n]=(0,o.fp)(s.AG.zoom_style_by_percent),{initUserInfo:r}=(0,i.useContext)(V.F),a=()=>{d({show:!1,type:"",overlay:!1,data:{}})},[l,d]=(0,o.fp)(s.AG.showPrompt);return(0,w.jsxs)("div",{children:[(0,w.jsx)(S.ZI,{title:e("缩放调整"),cancel:a,confirm:async()=>{let i=t;(isNaN(i)||i<30||i>200)&&(i=100,n(i)),await g.wm.post(H.s.user_save_private_attr,{is_file_list_zoom:!0,value:i}),(0,u.SK)(e("缩放调整成功")),r(),a()},cancel_t:e("取消"),confirm_t:e("确定"),context:(0,w.jsx)(le.p,{defaultValue:t,onChange:n})}),(0,w.jsx)(_.hJ,{click:a})]})}var ue=n(40961);let de=function(e){return e.FilesUpload="FilesUpload",e.FilesDelete="FilesDelete",e.Confirm="Confirm",e.DirNew="DirNew",e.FileNew="FileNew",e.FileRename="FileRename",e.DockerDel="DockerDel",e.SshDelete="SshDelete",e.SshNewDir="SshNewDir",e.SshNewFile="SshNewFile",e.SshPaste="SshPaste",e.SshReName="SshReName",e.SshUpload="SshUpload",e.FileMenu="FileMenu",e.Compress="Compress",e.UploadFile="UploadFile",e.FolderInfo="FolderInfo",e.ZoomAdjust="ZoomAdjust",e}({});function he(){const[e,t]=(0,o.fp)(s.AG.showPrompt),[n,i]=(0,o.fp)(s.AG.confirm),[r,a]=(0,o.fp)(s.AG.prompt_card);function l(){t({show:!1,type:"",overlay:!1,data:{}}),i({open:!1,handle:null}),r.cancel&&r.cancel(),a({open:!1})}let c=(0,w.jsx)("div",{}),u=(0,w.jsx)(re,{}),d=(0,w.jsx)(oe.z,{});switch(e.type){case de.FilesUpload:c=(0,w.jsx)(b,{});break;case de.FilesDelete:c=(0,w.jsx)(x,{});break;case de.Confirm:c=(0,w.jsx)(L,{});break;case de.DirNew:c=(0,w.jsx)(C,{});break;case de.FileNew:c=(0,w.jsx)(T,{});break;case de.FileRename:c=(0,w.jsx)(k,{});break;case de.DockerDel:c=(0,w.jsx)(A,{});break;case de.SshDelete:c=(0,w.jsx)(j,{});break;case de.SshNewDir:c=(0,w.jsx)(z,{});break;case de.SshNewFile:c=(0,w.jsx)(E,{});break;case de.SshPaste:c=(0,w.jsx)(I,{});break;case de.SshReName:c=(0,w.jsx)(O,{});break;case de.SshUpload:c=(0,w.jsx)($,{});break;case de.FileMenu:c=(0,w.jsx)(te,{});break;case de.Compress:c=(0,w.jsx)(ie,{});break;case de.UploadFile:c=(0,w.jsx)(se,{});break;case de.FolderInfo:c=(0,w.jsx)(ae,{});break;case de.ZoomAdjust:c=(0,w.jsx)(ce,{})}return(0,w.jsxs)("div",{children:[r.open&&d,r.open&&(0,w.jsx)(_.hJ,{click:l}),n.open&&u,n.open&&(0,w.jsx)(_.hJ,{click:l}),e.show&&c,e.show&&e.overlay&&(0,w.jsx)(_.hJ,{click:l})]})}function pe(e){const[t,n]=(0,i.useState)(!1),[r,o]=(0,i.useState)({}),s=(0,i.useRef)(null),a=(0,i.useRef)(null);(0,i.useEffect)(()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&a.current&&!a.current.contains(e.target)&&n(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);return(0,w.jsxs)("div",{ref:s,className:"menu-select-wrapper",children:[(0,w.jsx)("div",{onClick:e=>{if(e.stopPropagation(),!t&&s.current){const e=s.current.getBoundingClientRect();o({position:"fixed",top:e.bottom+4,left:e.left,zIndex:9999})}n(e=>!e)},children:e.children}),t&&(0,ue.createPortal)((0,w.jsx)("div",{ref:a,className:"menu-select-popup",style:r,children:e.list.map((e,t)=>(0,w.jsx)("div",{className:"menu-select-item",onClick:()=>{e.click(),n(!1)},children:e.name},t))}),document.body)]})}},12721(e,t,n){"use strict";n.d(t,{O:()=>u,z:()=>c});var i=n(22022),r=n(34843),o=n(82893),s=n(96540),a=n(85997),l=n(74848);function c(){const{t:e}=(0,i.Bd)(),[t,n]=(0,r.fp)(o.AG.prompt_card);return(0,l.jsxs)("div",{className:"card floating",children:[(0,l.jsx)("div",{className:"card-title",children:(0,l.jsx)("h2",{children:t.title??e("验证执行")})}),(0,l.jsx)("div",{className:"card-content",children:t.context_div}),(0,l.jsxs)("div",{className:"card-action",children:[t.cancel&&(0,l.jsx)("button",{className:"button button--flat button--grey",onClick:()=>{t.cancel&&t.cancel(),n({open:!1})},children:"cancel"}),t.confirm&&(0,l.jsx)("button",{className:"button button--flat",onClick:t.confirm,children:"confirm"})]})]})}function u(e){const{t}=(0,i.Bd)(),n=e.pages?.[0]?.id??"",[r,o]=(0,s.useState)(e.initialPageId??n);(0,s.useEffect)(()=>{o(e.initialPageId??n)},[e.initialPageId,n,e.pages?.length]);const c=(0,s.useMemo)(()=>e.pages?.find(e=>e.id===r)??e.pages?.[0],[e.pages,r]);return(0,l.jsxs)("div",{className:"prompt-switch-page",children:[(0,l.jsxs)("div",{className:"prompt-switch-page__header",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("div",{className:"prompt-switch-page__title",children:e.title??t("信息")}),e.subtitle&&(0,l.jsx)("div",{className:"prompt-switch-page__meta",children:e.subtitle})]}),(0,l.jsxs)("div",{className:"prompt-switch-page__actions",children:[e.onRefresh&&(0,l.jsx)(a.rA,{icon:"refresh",title:t("刷新"),onClick:async()=>{await(e.onRefresh?.())}}),e.onClose&&(0,l.jsx)(a.rA,{icon:"close",title:t("关闭"),onClick:e.onClose})]})]}),(0,l.jsxs)("div",{className:"prompt-switch-page__body",children:[(0,l.jsx)("div",{className:"prompt-switch-page__nav",children:e.pages?.length?e.pages.map(e=>(0,l.jsxs)("button",{className:"button button--flat button--grey prompt-switch-page__nav-item"+(c?.id===e.id?" is-active":""),onClick:()=>o(e.id),children:[(0,l.jsx)("div",{className:"prompt-switch-page__nav-item-title",children:e.title}),e.subtitle&&(0,l.jsx)("div",{className:"prompt-switch-page__nav-item-subtitle",children:e.subtitle})]},e.id)):(0,l.jsx)("div",{className:"prompt-switch-page__empty",children:t("暂无数据")})}),(0,l.jsx)("div",{className:"prompt-switch-page__content",children:c?e.renderPage(c):(0,l.jsx)("div",{className:"prompt-switch-page__empty",children:t("暂无数据")})})]})]})}},45907(e,t,n){"use strict";n.d(t,{y:()=>o});var i=n(34843),r=n(82893);function o(){const[e,t]=(0,i.fp)(r.AG.confirm);return({sub_title:e,confirm_fun:n,title:i,context_div:r})=>{t({open:!0,sub_title:e,handle:()=>{n(),t({open:!1,handle:null})},title:i,context_div:r})}}},17903(e,t,n){"use strict";n.d(t,{XT:()=>r,eK:()=>s,p_:()=>o});const i={webdav:"webdav",sftp:"ssh",smb:"smb",s3:"s3",baidu:"baidu",local:"local"};function r(e,t){const n=i[e];return t.filter(e=>e.type===n).map(e=>({title:e.note,value:e.id}))}function o(e,t){const n=t.find(t=>t.id===e);return(n?.accounts??[]).map(e=>({title:e.note||e.account_name||e.nickname||e.id,value:e.id}))}function s(e){if(!e)return"-";const t=new Date(e),n=e=>String(e).padStart(2,"0");return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}`}n.d(t,["C1",0,[{title:"WebDAV",value:"webdav"},{title:"SSH / SFTP",value:"sftp"},{title:"S3 兼容对象存储",value:"s3"},{title:"百度网盘",value:"baidu"}],"OT",0,"#4a9eff"])},40505(e,t,n){"use strict";n.d(t,{Yl:()=>a,lW:()=>o});var i=n(23430),r=n(21469);function o(e){const t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.left="-9999px",document.body.appendChild(t),t.select(),t.setSelectionRange(0,99999),document.execCommand("copy"),document.body.removeChild(t)}const s=new Set(i.Ky.map(e=>e.value));function a(e){const t="theme-css",n=document.getElementById(t);if("light"===e)return void n?.remove();let i;if(i=e?s.has(e)?`${e}.css`:`${r.m.base_url}/api/setting/plugin/theme?theme_id=${encodeURIComponent(e)}`:"google.css",n&&n.getAttribute("href")===i)return;n?.remove();const o=document.createElement("link");o.id=t,o.rel="stylesheet",o.href=i,document.head.appendChild(o)}n.d(t,["ok",0,e=>({color:e?"var(--blue)":void 0,fontWeight:e?"bold":void 0})])},12730(e,t,n){"use strict";function i(e){const t=[];if(Array.isArray(e))for(const n of e)t.push(...i(n));else t.push(e);return t}function r(e){if(!e)return e;const t=e.split("/");return""===t.pop()&&t.pop(),t.join("/")}n.d(t,{B:()=>i,S:()=>r})},34289(e,t,n){"use strict";n.d(t,{A3:()=>h,GG:()=>o,Hv:()=>p,Yp:()=>a,kf:()=>l,mH:()=>f,oW:()=>s,vX:()=>u});var i=n(21469),r=n(87361);function o(e,t){let n="";const i=e.replace(/\//g,"");let r=t.split("/").filter(e=>""!==e);const o=r.indexOf(i);if(-1===o)return n;for(let e=o+1;e<r.length;e++)n+=`${r[e]}/`;return n}function s(e){return e.endsWith("/")&&(e=e.slice(0,-1)),e}function a(e){((e=e.trim()).endsWith("/")||e.endsWith("\\"))&&(e=e.slice(0,-1));let t=-1;for(let n=e.length-1;n>=0;n--)if("/"===e[n]||"\\"===e[n]){t=n;break}return(e=e.substring(0,t)).endsWith("/")||(e+="/"),e}function l(e){return/^\d+$/.test(e)}i.m.init();const c=i.m.base_url;function u(){let e=window.location.pathname+window.location.hash;return c&&e.startsWith(c)&&(e=e.slice(c.length)||"/"),e}function d(e){return e.replace(/[/*]/g,"")}function h(e,t){const n=function(e){return new Set((e??u()).split("/"))}(t);let i=!1;for(const t of e){const e=d(t);if(n.has(e)){i=!0;break}}return i}function p(){return u().startsWith(r.o.share)}function f(e){if(!e)return"";for(;e.length>0&&("/"===e[e.length-1]||"\\"===e[e.length-1]);)e=e.slice(0,-1);const t=e.lastIndexOf("/"),n=e.lastIndexOf("\\"),i=Math.max(t,n);return-1===i?e:e.slice(i+1)}},14284(e,t,n){"use strict";n.d(t,{$M:()=>a,Fg:()=>p,Ho:()=>o,I2:()=>M,J0:()=>f,K4:()=>g,TU:()=>b,V_:()=>v,XO:()=>h,Yu:()=>c,_U:()=>d,cD:()=>m,ez:()=>u,jV:()=>y,s2:()=>x,s9:()=>w,wm:()=>l});var i=n(57889),r=n(21469);r.m.init();const o={baseUrl:`${r.m.base_url}/api/`},s=`${o.baseUrl}file/`,a=new i.l(s),l=new i.l(`${o.baseUrl}user/`),c=new i.l(`${o.baseUrl}sys/`),u=new i.l(`${o.baseUrl}ddns/`),d=new i.l(`${o.baseUrl}net/`),h=(new i.l(`${o.baseUrl}navindex/`),new i.l(`${o.baseUrl}setting/`)),p=new i.l(`${o.baseUrl}ssh/`),f=new i.l(`${o.baseUrl}rdp/`),g=new i.l(`${o.baseUrl}video/`),m=new i.l(`${o.baseUrl}crypto/`),y=new i.l(`${o.baseUrl}ai_agent/`),w=new i.l(`${o.baseUrl}tcp_forward/`),b=new i.l(`${o.baseUrl}git/`),v=new i.l(`${o.baseUrl}firewall/`),M=new i.l(`${o.baseUrl}mount/`),x=new i.l(`${o.baseUrl}browser_proxy_port/`)},1728(e,t,n){"use strict";const i={set(e,t,n,i="/"){let r="";if(n){const e=new Date;e.setTime(e.getTime()+24*n*60*60*1e3),r=`; expires=${e.toUTCString()}`}document.cookie=`${encodeURIComponent(e)}=${encodeURIComponent(t)}${r}; path=${i}`},get(e){const t=`${encodeURIComponent(e)}=`,n=document.cookie.split(";");for(let e=0;e<n.length;e++){let i=n[e].trim();if(0===i.indexOf(t))return decodeURIComponent(i.substring(t.length,i.length))}return null},has(e){return null!==this.get(e)},delete(e,t="/"){this.set(e,"",-1,t)},clearAll(){const e=document.cookie.split(";");for(let t=0;t<e.length;t++){const n=e[t],i=n.indexOf("="),r=i>-1?n.substring(0,i).trim():n.trim();this.delete(decodeURIComponent(r),"/"),this.delete(decodeURIComponent(r),"")}}};n.d(t,["A",0,i])},38240(e,t,n){"use strict";n.d(t,{J:()=>o,T:()=>r});var i=n(21499);function r(e,t){return new Promise(n=>{let r=0;const o=[];if(void 0!==e.items){for(let t of e.items)if("file"===t.kind&&"function"==typeof t.webkitGetAsEntry){s(t.webkitGetAsEntry())}}else n(e.files);function s(e,s=""){if(t?.length)for(let n of t)if((0,i.EJ)(e.name,n))return;if(e.isFile)r++,e.file(e=>{r--,e.fullPath=`${s}${e.name}`,o.push(e),0===r&&n(o)});else if(e.isDirectory){const t={isDir:!0,size:0,fullPath:`${s}${e.name}`,name:e.name};o.push(t),a(e.createReader(),`${s}${e.name}`)}}function a(e,t){r++,e.readEntries(function(i){if(r--,i.length>0){for(const e of i)s(e,`${t}/`);a(e,`${t}/`)}0===r&&n(o)})}})}function o(e){return new Promise((t,n)=>{const i=document.createElement("script");i.src=e,i.async=!0,i.onload=()=>{t(null),console.log("脚本加载完成")},i.onerror=()=>{n(n),console.error("脚本加载失败")},document.body.appendChild(i)})}},21469(e,t,n){"use strict";n.d(t,{m:()=>i});class i{static _init=!1;static _base_url="";static _web_site_title;static _logo_url="";static init(){if(!this._init){{console.log=()=>{};const e=document.getElementById("pre_code").innerHTML;try{const t=new Function(e)();this._base_url=t.base_url,this._web_site_title=t.web_site_title,this._logo_url=t.logo_url??""}catch(e){console.debug(e),this._base_url=""}}this._init=!0}}static get base_url(){return this.init(),this._base_url}static get web_site_title(){return this.init(),this._web_site_title}static get logo_url(){return this.init(),this._logo_url}}},57889(e,t,n){"use strict";n.d(t,{l:()=>f});var i=n(19324);function r(e){let t,n,i,r=!1;return function(o){void 0===t?(t=o,n=0,i=-1):t=function(e,t){const n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}(t,o);const s=t.length;let a=0;for(;n<s;){r&&(10===t[n]&&(a=++n),r=!1);let o=-1;for(;n<s&&-1===o;++n)switch(t[n]){case 58:-1===i&&(i=n-a);break;case 13:r=!0;case 10:o=n}if(-1===o)break;e(t.subarray(a,o),i),a=n,i=-1}a===s?t=void 0:0!==a&&(t=t.subarray(a),n-=a)}}var o=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n};const s="text/event-stream",a="last-event-id";function l(e,t){var{signal:n,headers:i,onopen:l,onmessage:u,onclose:d,onerror:h,openWhenHidden:p,fetch:f}=t,g=o(t,["signal","headers","onopen","onmessage","onclose","onerror","openWhenHidden","fetch"]);return new Promise((t,o)=>{const m=Object.assign({},i);let y;function w(){y.abort(),document.hidden||_()}m.accept||(m.accept=s),p||document.addEventListener("visibilitychange",w);let b=1e3,v=0;function M(){document.removeEventListener("visibilitychange",w),window.clearTimeout(v),y.abort()}null==n||n.addEventListener("abort",()=>{M(),t()});const x=null!=f?f:window.fetch,L=null!=l?l:c;async function _(){var n;y=new AbortController;try{const n=await x(e,Object.assign(Object.assign({},g),{headers:m,signal:y.signal}));await L(n),await async function(e,t){const n=e.getReader();let i;for(;!(i=await n.read()).done;)t(i.value)}(n.body,r(function(e,t,n){let i={data:"",event:"",id:"",retry:void 0};const r=new TextDecoder;return function(o,s){if(0===o.length)null==n||n(i),i={data:"",event:"",id:"",retry:void 0};else if(s>0){const n=r.decode(o.subarray(0,s)),a=s+(32===o[s+1]?2:1),l=r.decode(o.subarray(a));switch(n){case"data":i.data=i.data?i.data+"\n"+l:l;break;case"event":i.event=l;break;case"id":e(i.id=l);break;case"retry":const n=parseInt(l,10);isNaN(n)||t(i.retry=n)}}}}(e=>{e?m[a]=e:delete m[a]},e=>{b=e},u))),null==d||d(),M(),t()}catch(e){if(!y.signal.aborted)try{const t=null!==(n=null==h?void 0:h(e))&&void 0!==n?n:b;window.clearTimeout(v),v=window.setTimeout(_,t)}catch(e){M(),o(e)}}}_()})}function c(e){const t=e.headers.get("content-type");if(!(null==t?void 0:t.startsWith(s)))throw new Error(`Expected content-type to be ${s}, Actual: ${t}`)}var u=n(53459);n(47022);var d=n(62042),h=n(14284);let p=Date.now();class f{baseUrl;check(e){if(e&&e.code===u.m.AuthFail&&localStorage.removeItem("token"),e&&e.code===u.m.Fail)throw(0,d.zN)(e.message),e.message;if(e&&e.code===u.m.AuthFail){if(Date.now()-p<2e3)return;console.log("跳转"),p=Date.now(),window.location.href=""}}constructor(e){this.baseUrl=e}async get(e=""){try{e=void 0===e?"":e;const t=await i.A.get(this.baseUrl+e,{headers:{Authorization:localStorage.getItem("token")}});return this.check(t.data),t.data}catch(e){throw e}}static async get(e){try{const t=await fetch(e,{headers:{Authorization:localStorage.getItem("token")}});return await t.text()}catch(e){throw e}}getDownloadUrl(e,t){return this.getDownloadUrlV2(e,"download",t)}add_params(e,t){if(t)for(let n of Object.keys(t))e+=`&${n}=${encodeURIComponent(t[n])}`;return e}get_full_url(e){return window.location.origin+e}getDownloadUrlV2(e,t,n){let i=h.Ho.baseUrl+`${t}?`;if(e)for(let t of Array.isArray(e)?e:[e])(t.endsWith("/")||t.endsWith("\\"))&&(t=t.slice(0,-1)),i+=`file=${t}&`;return(i.endsWith("&")||i.endsWith("/")||i.endsWith("\\"))&&(i=i.slice(0,-1)),i+=`&token=${encodeURIComponent(localStorage.getItem("token"))}`,i=this.add_params(i,n),i}async post(e,t={},n=!0){try{e=void 0===e?"":e;const r=await i.A.post(this.baseUrl+e,t,{headers:{Authorization:localStorage.getItem("token")}});return n&&this.check(r.data),r.data}catch(e){throw e}}getUrl(e){return this.baseUrl+e}async post_form_data(e,t){try{e=void 0===e?"":e;const n=await i.A.post(this.baseUrl+e,t,{headers:{"Content-Type":"multipart/form-data",Authorization:localStorage.getItem("token")}});return this.check(n.data),n.data}catch(e){return null}}async put(e,t,n){try{e=void 0===e?"":e;const r=new FormData;r.append("file",t);const o=await i.A.put(this.baseUrl+e,r,{headers:{"Content-Type":"multipart/form-data",Authorization:localStorage.getItem("token")},onUploadProgress:e=>{n&&n(e)}});return this.check(o.data),o.data}catch(e){throw e}}async delete(e,t){try{e=void 0===e?"":e;const t=await i.A.delete(this.baseUrl+e,{headers:{Authorization:localStorage.getItem("token")}});return this.check(t.data),t.data}catch(e){throw e}}have_http_method(e){return i.A[e]}async sse_post(e,t={},{onMessage:n,onDone:i,onError:r}={}){const o=new AbortController;let s;try{await l(this.baseUrl+e,{method:"POST",headers:{"Content-Type":"application/json",Authorization:localStorage.getItem("token")||""},body:JSON.stringify(t),signal:o.signal,onmessage:e=>{if("[DONE]"===e.data)return o.abort(),void i?.(s);try{const t=JSON.parse(e.data);if(t.__meta__)return void(s=t)}catch{}n?.(e.data)},onerror:e=>{throw o.abort(),r?.(e),i?.(s),e},onclose:()=>{i?.(s)},openWhenHidden:!0})}catch(e){r?.(e)}}}},52388(e,t,n){"use strict";n.d(t,{A:()=>g});const i=JSON.parse('{"title":"FileCat","修改密码":"Change Password","自定义auth":"Custom Auth","tk_exp":"Token Expiration Time","目标":"Target","目标列表":"Targets","被同步的源目录":"Source dir to sync","成功":"Success","已开启":"Enabled","已关闭":"Disabled","sy_tp1":"Only small files are supported, such as config and code files","sy_tp2":"Files are not synced immediately by default, only after modification. With full sync enabled for a target, that client recursively syncs all files on every connect, which is heavy for large trees.","sy_tp3":"One task can have multiple targets, each with its own directory and full sync option.","立即同步":"Sync now","已触发同步":"Sync triggered","操作失败":"Operation failed","tsk_off":"Please enable and save the task first","mnt_type":"Mount type","cred_sel":"Credential","lcl_abs":"Local absolute path to mount","rem_dir":"Remote dir","disp_only":"Name shown in list","语言":"Language","文件夹路径":"Folder Path","编号":"Number","路径":"Path","是否默认":"Default","备注":"Remarks","编辑SQL":"Edit SQL","SQL 预设":"SQL Preset","耗时":"Elapsed time","确认":"Confirm","请输入备注":"Please enter note","查询全部表":"Query All Tables","SQL预设设置":"SQL Preset Settings","SQL预设":"SQL Preset","更新保存":"Update & Save","创建新预选项":"Create New Preset","添加预设":"Add Preset","SQL代码":"SQL Code","保存成功":"Saved successfully","大纲":"Outline","新建主题":"New Theme","编辑主题":"Edit Theme","删除主题":"Delete Theme","主题名称":"Theme Name","请输入主题名称":"Please enter theme name","主题实时预览":"Live preview","删除成功":"Deleted","删除失败":"Delete failed","cf_thm":"Delete this theme?","导出PDF":"Export PDF","no_head":"No headings yet","未命名标题":"Untitled heading","更新成功":"Updated successfully","创建成功":"Created successfully","sql_in":"Please enter SQL statement","新密码":"New Password","新账号":"New Account","关闭":"Close","开启":"Open","展开":"Expand","指定时间":"Specified Time","永不过期":"Never Expire","清空token":"Clear Token","保存":"Save","确定":"Confirm","确定修改":"Confirm Modification","删除":"Delete","添加":"Add","系统":"System","follow_sys":"Follow system setting","no_theme":"No theme","自定义页面路由":"Custom Page Route","api_rt":"Custom API Route","跳转路由":"Redirect Route","路由":"Route","文件":"File","自定义路由":"Custom Routes","编辑":"Edit","查看":"View","默认配置":"Default Configuration","设置":"Settings","退出登录":"Log Out","虚拟网络":"Virtual Network","系统信息":"System Information","工具箱":"Toolbox","索引":"Index","文件夹":"Folder","客户端":"Client","服务器":"Server","服务端":"Server Side","基本信息":"Basic Information","系统性能":"System Performance","总容量":"Total Capacity","剩余":"Remaining","使用率":"Usage Rate","内存":"Memory","系统进程":"System Processes","doc_ct":"Docker Containers","物理硬盘":"Physical Hard Disk","文件硬盘":"File Hard Disk","容器":"Container","名字":"Name","镜像":"Image","命令":"Command","状态":"Status","选择":"Select","过滤":"Filter","账号":"Account","密码":"Password","目录":"Directory","私钥路径":"Private Key Path","连接地址":"Connection Address","端口":"Port","port":"port","host":"host","key":"key","代理":"Proxy","浏览器":"Browser","网络唤醒":"Wake-on-LAN","时间工具":"Time Tools","切换样式":"Switch Style","更多":"More","创建文件夹":"Create Folder","创建文件":"Create File","连接":"Connect","地址":"Address","目标设备":"Target Device","发送":"Send","腾讯":"Tencent","云":"Cloud","厂商":"Vendor","名称":"Name","厂商名称":"Vendor Name","类型":"Type","容量":"Capacity","挂载位置":"Mount Point","剩余容量":"Remaining Capacity","登录":"Login","是":"Yes","否":"No","秒":"Seconds","流量转发":"Traffic Forwarding","点对点":"Peer-to-Peer","模式":"Mode","虚拟":"Virtual","在线状态":"Online Status","物理":"Physical","账号设置":"Account Settings","说明":"Description","文件系统类型":"File System Type","机械":"Mechanical","固态":"Solid State","复制":"Copy","剪切":"Cut","压缩":"Compress","下载":"Download","重命名":"Rename","创建文本文件":"Create Text File","解压":"Extract","转换到":"Convert To","自定义":"Custom","粘贴到此处":"Paste Here","创建":"Create","制造商":"Manufacturer","总内存":"Total Memory","最大":"Maximum","品牌":"Brand","逻辑核心":"Logical Cores","搜索当前目录":"Search Current Directory","压缩文件":"Compressed File","取消":"Cancel","运行":"Run","格式":"Format","压缩到":"Compress To","进度":"Progress","解压到":"Extract To","当前目录":"Current Directory","解压文件":"Extract File","视频格式转换":"Video Format Conversion","gen_dir":"The generated file is in this directory","ff_fmt":"Target formats supported by ffmpeg","del_f":"Delete selected files?","输入目录名":"Enter directory name","cut_ovr":"Confirm cut (overwrite)","cp_ovr":"Confirm copy (overwrite)","修改名字":"Change Name","输入新名字":"Enter new name","个文件正在上传":"files are uploading","确定删除":"Confirm Deletion","是否删除":"Delete?","输入文本名":"Enter text name","添加索引":"Add Index","物理核心":"Physical Cores","创建目录":"Create Directory","访问目录":"Access Directory","mac_dst":"Target Device MAC Address","要代理的url":"URL to Proxy","系统代理端口":"System Proxy Port","返回":"Return","不允许为空":"Cannot be empty","ff_none":"ffmpeg not found","disk":"Disk","part":"Partition","lvm":"Logical Volume","网址":"Website","环境":"Environment","外部软件":"External Software","保护路径":"Protected Path","软件":"Software","是否安装":"Installed","角色管理":"Role Management","用户管理":"User Management","角色id":"Role ID","角色名":"Role Name","用户id":"User ID","用户名":"Username","目录范围":"Directory Scope","可执行的命令":"Executable Commands","禁止目录范围":"Forbidden Directory Scope","可执行命令":"Executable Command","系统进程关闭":"System Process Shutdown","dc_ctdl":"Stop/Delete Docker Container","dc_idl":"Delete Docker Image","tk_time":"Modify Token Time","自定义资源路由":"Custom Resource Route","磁盘挂载":"Disk Mount","ssh_sv":"Save SSH Key to Disk","外部软件路径":"External Software Path","log_del":"File Delete, Cut, Rename","内容更新":"Update Content","标签编辑权限":"Label Edit Permission","ssh代理":"SSH Proxy","http代理":"HTTP Proxy","浏览器代理":"Browser Proxy","rdp代理":"RDP Proxy","rtsp播放器":"RTSP Player","tag_pub":"Label edits are visible to all users","角色":"Role","文件回收站":"File Recycle Bin","个人保护路径":"Personal Protected Path","系统保护路径":"System Protected Path","小于一分钟":"Less than a minute","分钟前":"Minutes ago","小时前":"Hours ago","天前":"Days ago","月前":"Months ago","年前":"Years ago","挂载位置磁盘":"Mounted Disk","信息":"Information","磁盘剩余":"Disk Remaining","文件系统":"File System","文件夹数":"Number of Folders","文件数":"Number of Files","当前位置":"Current Location","输入文件名":"Enter File Name","o_stdo":"Open with Studio","o_img":"Open with Image Editor","预览图片":"Preview Image","运行并实时查看":"Run and View in Real Time","实时查看":"Real-Time View","输入参数运行":"Run with Parameters","以文本打开":"Open as Text","以日志打开":"Open as Log","上传":"Upload","文件选项":"File Options","添加类目":"Add Category","全部编辑":"Edit All","输入类目名":"Enter Category Name","折叠":"Collapse","全部折叠":"Collapse All","(无内容)":"(No Content)","请求头":"Request Header","请求体":"Request Body","值":"Value","上传文件":"Upload File","下载到本地目录":"Download to Local Directory","本地地址":"Local Address","完成":"Complete","结束":"End","响应头":"Response Header","正在下载":"Downloading","输入标签名":"Enter Label Name","frm_lm":"Form contains file, browser restrictions prevent addition","非对称密钥":"Asymmetric Key","将覆盖密钥文件":"Will Overwrite Key File","加密算法":"Encryption Algorithm","输出格式":"Output Format","普通PEM":"Standard PEM","生成":"Generate","ssh_dir":"Save to .ssh Directory","私钥":"Private Key","时间转换器":"Time Converter","格式化时间":"Format Time","毫秒":"Milliseconds","分秒":"Minutes and Seconds","实时信息":"Real-Time Info","运行用户":"Running User","当前系统":"Current System","进程":"Process","ld_wait":"Loading, please wait...","选中":"Selected","创建用户":"Create User","升序":"Ascending","降序":"Descending","dc_nne":"Docker not detected, host may not have Docker installed or no containers","过滤镜像":"Filter Images","列表更新":"Update List","执行命令":"Execute Command","打印日志":"Print Logs","删除容器":"Delete Container","删除镜像":"Delete Image","doc_img":"Docker Image","doc_icf":"Are you sure you want to delete selected image(s)?","系统运行于":"System Running On","全局变量":"Global Variables","up_conc":"Max Concurrent File Uploads","单用户并发数量":"Concurrent Uploads Per User","系统并发数量":"System Concurrent Uploads","big_res":"Enable Large File Resume","big_sz":"Large File Threshold (MB)","大文件并发数量":"Large File Concurrent Uploads","big_ck":"Large File Chunk Size (MB)","页面资源路由":"Page Resource Route","wf_rt":"Workflow Trigger Route","过期时间(s)":"Expiration Time (s)","文件路径":"File Path","path_up":"Update System Protected Path","path_md":"Modify PATH Variable","执行用户":"Executing User","执行":"Execute","wf_api":"Modify Workflow Trigger API","up_lim":"Modify Directory Upload File Count Limit","功能权限":"Feature Permissions","角色备注":"Role Remarks","pxy_off":"Disable HTTP Proxy Download","工具功能":"Tool Functions","全局变量设置":"Global Variable Settings","文件回收站修改":"Modify File Recycle Bin","文件权限":"File Permission","log_wr":"File creation, upload, content update, decompress","只读目录范围":"Scope of the read-only directory","更新":"update","use_env":"Environment variables are used by default","sync_sv":"sync message to selected server","add_rot":"Add the HTTP Resource Root Directory","dl_here":"Download the HTTP resources in this directory","文件排序":"file sort","系统默认":"sys default","修改时间":"mtime","时间逆序":"time desc","时间顺序":"time asc","大小逆序":"size desc","大小顺序":"size asc","文件大小":"file size","网站标题":"web site title","通用设置":"Common Setting","主题":"theme","时区":"time zone","时间":"time","服务器时间":"server time","在线时间":"online time","离线时间":"offline time","在线":"online","离线":"offline","功能文档":"Function Specification","官网地址":"https://filecat.xiaobaidadada.fun/#/en","远程代理":"Remote Proxy","系统管理":"System Management","网址导航":"Site Navigation","目录快捷命令":"Directory Shortcut Command","文件快捷命令":"File Shortcut Command","系统网络":"Sys Net","复制名字":"Copy Name","分享":"Share","复制绝对路径":"Copy Absolute Path","复制相对路径":"Copy Relative Path","切换目录":"Switch Directory","统计信息":"Statistics","更新AI知识库":"Update AI Knowledge Base","exp_hr":"Remaining Expiration Time (hours)","可以为空":"Can be empty","自动加载":"Auto Load","本地知识库":"Local Knowledge Base","知识库加载信息":"Knowledge Base Load Info","最近一次加载":"Last Load Time","加载进度":"Load Progress","总文件数量":"Total File Count","总文件字符数量":"Total File Character Count","总文件大小":"Total File Size","总耗时":"Total Duration","上一页":"Previous Page","目标地址":"Target Address","目标端口":"Target Port","连接状态":"Connection Status","个人设置":"Personal Settings","系统设置":"System Settings","文件后缀":"File Suffix","禁止执行的命令":"Forbidden Commands","Ai 配置":"AI Configuration","文件分享":"File Sharing","输入跳转的目录":"Enter target directory to jump","文件分享列表":"File Sharing List","过期小时":"Expiration Hours","下载次数":"Download Count","剩余时间":"Remaining Time","文件加载方式":"File Loading Mode","全部加载文件":"Load All Files","scrll_l":"Load Files with Infinite Scroll","剩余时间(h)":"Remaining Time (h)","网络代理":"Network Proxy","个人":"Personal","安装方式":"Installation Method","是否开启":"Enabled","系统启动执行":"Run on System Startup","表达式":"Expression","用户":"User","详细信息":"Details","服务器配置":"Server Configuration","客户端列表":"Client List","更多服务器":"More Servers","端口映射":"Port Mapping","序号":"No.","服务器端口":"Server Port","转发客户端名称":"Forwarding Client Name","服务端口":"Service Port","转发ip":"Forwarding IP","转发端口":"Forwarding Port","客户端代理配置":"Client Proxy Configuration","客户端桥接配置":"Client Bridge Configuration","远程地址":"Remote Address","在线时长":"Online Duration","fwd_nm":"Forwarding Client Name","sv_ntf":"Save and Notify the Client of the First Key and Port","br_port":"Bridge Server Port List","输入消息":"Enter Message","用户权限":"User Permissions","系统管理权限":"System Management Permissions","网络功能权限":"Network Feature Permissions","Ai 设置权限":"AI Settings Permissions","系统设置权限":"System Settings Permissions","系统环境设置":"System Environment Settings","sys_env":"System Environment Settings Page","自定义路由页面":"Custom Route Page","代理功能":"Proxy Features","其他功能":"Other Features","ddns":"DDNS","ai_page":"AI Chat Page","pty cmd":"PTY Cmd","wf_run":"Workflow Execution","wf_user":"Workflow Execution User","cmd_rst":"filecat-restart Restart Command","cmd_upg":"filecat-upgrade Upgrade Command","cmd_dwn":"filecat-down Close Main Process Command","cmd_ai":"AI Command (AI Chat)","个性化设置":"Personalized Settings","lgn_usr":"Display User Info on Login","pxy_url":"HTTP Proxy Address","pxy_tip":"Used for HTTP requests issued by the filecat system (version check, auto-upgrade, DDNS, command download, custom routing, etc.). Note: on macOS, if the system proxy is already enabled, leave this blank to avoid double proxying.","个人环境":"Personal Environment","系统环境":"System Environment","持久化":"Persist","个人环境设置":"Personal Environment Settings","其他参数":"Other Parameters","父编号":"Parent ID","代理配置":"Proxy Configuration","桥接配置":"Bridge Configuration","内网穿透":"Intranet Penetration","fc_pxy":"Filecat Proxy Access","fc_pxyw":"Filecat Proxy Access Using Server Frontend","fc_pxyr":"Custom Filecat Proxy Address","文件列表展示":"File List Display","缩放调整":"Zoom Adjustment","缩放百分比":"Zoom Percentage","范围":"Range","结果过多":"Too many results, refine your keyword","已显示":"Shown","时间展示":"Time Display","最近时间":"Recent Time","准确时间":"Exact Time","缩放调整成功":"Zoom adjusted successfully","原客户端":"Source Client","原目录":"Source Directory","目标客户端":"Target Client","目标目录":"Target Directory","忽略目录":"Ignore Directory","双向同步":"Bidirectional Sync","客户端文件同步":"Client File Sync","客户端设置":"Client Settings","pxy_nln":"Do not use proxy server for local (Intranet) addresses","忽略ip":"Ignore IP","ai_ask":"Ask server about everything","本地目录":"Local directory","响应体":"Response body","客户端功能":"Client features","全量同步":"Full synchronization","公钥":"Public Key","跟随系统":"Follow system","字符消耗统计":"Character Usage Statistics","加载中...":"Loading...","对话轮次":"Conversation Turns","AI输入字符":"AI Input Characters","AI输出字符":"AI Output Characters","暂无统计数据":"No Statistics Available","会话":"Sessions","新会话":"New Session","提示词":"Prompt","llm_pmt":"LLM-Editable Prompt","LLM编辑开关":"LLM Edit Switch","编辑规则":"Edit Rules","选择系统提示词":"Select System Prompt","清空全部会话":"Clear All Sessions","cf_all":"Confirm delete all chat sessions?","cf_msgs":"Confirm delete selected messages?","cf_ses":"Confirm delete selected sessions?","cf_one":"Confirm delete this message?","批量选择":"Batch Select","查看所有用户会话":"All Users\' Sessions","查看全部会话时不可发送消息":"Cannot send messages while viewing all sessions","仅看我的会话":"My Sessions Only","取消批量选择":"Cancel Batch Select","删除选中消息":"Delete Selected Messages","删除选中会话":"Delete Selected Sessions","切换模型":"Switch Model","添加文件":"Add File","无描述":"No Description","暂无工具":"No Tools","查看工具":"View Tools","加载工具":"Load Tools","系统会话提示词":"System Session Prompts","删除记录":"Delete Record","手动加载":"Manual Load","从索引删除":"Delete from Index","知识库开关":"Knowledge Base Switch","文本对话":"Text Chat","图片生成":"Image Generation","向量嵌入":"Vector Embedding","图片参数设置":"Image Parameter Settings","更多属性":"More Attributes","model类型":"Model Type","成为tool":"Become Tool","操作":"Operations","https_s":"HTTPS Settings","ssl_crt":"SSL Certificate Path","ssl_key":"SSL Private Key Path","crt_pth":"Certificate Path (cert.pem/fullchain.pem)","ky_pth":"Private Key Path (privkey.pem)","查看Git提交":"View Git Commits","Git":"Git","变更":"Changes","提交记录":"Commits","全选":"Select All","没有变更":"No changes","暂无提交记录":"No commits yet","分支":"Branch","git_msg":"Enter commit message...","提交":"Commit","暂存全部":"Stage All","暂存选中":"Stage Selected","取消暂存":"Unstage","已暂存":"Staged","已暂存全部":"All staged","已取消暂存":"Unstaged","请输入提交信息":"Please enter commit message","提交成功":"Commit successful","推送成功":"Push successful","拉取成功":"Pull successful","切换分支成功":"Branch switched","远程操作":"Remote Operations","拉取":"Pull","推送":"Push","强制推送":"Force Push","暂存工作区":"Stash","暂存工作区成功":"Stash successful","恢复工作区":"Stash Pop","恢复工作区成功":"Stash pop successful","刷新":"Refresh","请先选择文件":"Please select files first","提示:":"Tips:","git_stg":"Check files on the left, then use \\"Stage Selected\\" to add them to staging area","git_cmt":"Enter commit message and click \\"Commit\\"","git_cf":"If conflicts occur, please resolve them in shell before committing","git_frc":"\\"Force Push\\" will overwrite the remote branch, use with caution","配置表":"Config Table","自动升级":"Auto Upgrade","exe_tpl":"EXE Download URL Template","offcal":"Leave empty to use official GitHub Releases","检测频率(秒)":"Check Interval (seconds)","def_180":"Default 180s (3 minutes)","chk_10s":"Check interval cannot be less than 10 seconds","ver_url":"Version Check URL","ver_req":"Version check URL cannot be empty","用户配置":"User Config","邮箱":"Email","代理设置":"Proxy Settings","全局代理":"Global Proxy","仓库代理":"Repository Proxy","修改":"Edit","用户配置已保存":"User config saved","代理配置已保存":"Proxy config saved","pxy_clr":"Leave empty to clear proxy","pxy_nte":"User config and global proxy apply to all repositories","端口扫描":"Port Scan","目标主机":"Target Host","起始端口":"Start Port","结束端口":"End Port","并发数":"Concurrency","超时(ms)":"Timeout (ms)","扫描":"Scan","扫描结果":"Scan Results","扫描完成":"Scan complete","扫描失败":"Scan failed","正在扫描...":"Scanning...","未发现开放端口":"No open ports found","scan_in":"Enter parameters and click scan","hostreq":"Host address cannot be empty","端口范围无效":"Invalid port range","portrng":"Start port cannot be greater than end port","开放":"Open","总计扫描":"Total Scanned","已发现":"Found","当前":"Current","扫描已取消":"Scan cancelled","自动换行":"Auto Wrap","不换行":"No Wrap","替换":"Replace","env编辑":"Env edit","命令确认":"Command Confirm","命令检测开启":"Enable command detection","命令检测关闭":"Disable command detection","命令检测已开启":"Command detection enabled","命令检测已关闭":"Command detection disabled","此会话不再询问":"Don\'t ask again for this session","doc_pxy":"Docker Proxy Config","HTTP 代理":"HTTP Proxy","pxy_htt":"HTTPS Proxy","pxy_nne":"No Proxy","保存失败":"Save failed","MD编辑器":"MD Editor","行":"Row","列":"Column","默认":"Default","删除行":"Delete row","删除列":"Delete column","上方插入行":"Insert row above","切换表头行":"Toggle Header Row","合并单元格":"Merge Cells","拆分单元格":"Split Cell","下方插入行":"Insert row below","左侧插入列":"Insert column left","右侧插入列":"Insert column right","插入表格":"Insert table","加载中":"Loading","打开失败":"Failed to open","重启失败":"Restart failed","doc_cfg":"Docker Config","名单视图":"List view","文本视图":"Text view","目标(To)":"Target (To)","动作":"Action","fw_from":"Source (From)","删除规则":"Delete rule","规则编号":"Rule number","点击复制":"Click to copy","镜像加速":"Registry Mirrors","不安全仓库":"Insecure Registries","开启调试":"Enable debug","数据存储目录":"Data Root","存储驱动":"Storage Driver","日志驱动":"Log Driver","fw_iptb":"Enable iptables","lve_rst":"Live Restore","添加规则":"Add rule","请填写端口号":"Please enter a port","方向":"Direction","协议":"Protocol","来源地址":"Source address","获取失败":"Failed to get","进程环境变量":"Process Environment Variables","端口实例":"Port Instance","srchbln":"Open directory in blank search mode","搜索会话":"Search sessions","sw_mdl":"Allow switching AI models","选择模型":"Select model","mv_self":"Cannot move a folder into itself","nvdltp":"The site navigation bookmark feature has been removed. The original data has been converted to .url files. Open a .url file with filecat to achieve the same quick access.","tmplctp":"File location: the tempfile/temp_delete_sys_tag_name_260926 directory under the filecat database directory.","网站 Logo":"Website Logo","lclorur":"Local file path or http(s) image URL","全部":"All","源码模式":"Source mode","实时编辑模式":"Live edit mode","编辑器设置":"Editor settings","正文最大宽度":"Max content width","正文左右边距":"Content side padding","正文字号":"Content font size","行高":"Line height","as_iv":"Auto-save interval (sec)","as_num":"Enter an integer of 0 or greater","恢复默认":"Restore defaults","保存中":"Saving","预览":"Preview","nprmtp":"You do not have permission to change this setting. The current configuration is shown below.","md_set":"MD editor settings","目录挂载":"Directory Mount","总开关":"Master switch","挂载":"Mount","挂载到网盘":"Mount to cloud drive","编辑挂载配置":"Edit mount settings","取消挂载":"Unmount","确认取消挂载":"Confirm unmount","已取消挂载":"Unmounted","该目录尚未挂载":"This directory is not mounted","挂载目录":"Mount directory","只读":"Read-only","挂载类型":"Mount type","显示名称":"Display name","标识色":"Marker color","只读模式":"Read-only mode","测试连接":"Test connection","测试中":"Testing","连接成功":"Connection succeeded","连接失败":"Connection failed","请选择挂载类型":"Please select a mount type","请填写":"Please fill in: ","未授权":"Unauthorized","服务地址":"Server URL","起始目录":"Start directory","留空表示根目录":"Leave empty for the root directory","主机":"Host","默认 22":"Default 22","私钥内容":"Private key content","与私钥二选一":"Choose either this or the private key","与密码二选一":"Choose either this or the password","存储桶":"Bucket","区域":"Region","强制路径风格":"Force path style","授权账号":"Authorized account","百度网盘授权":"Baidu Netdisk authorization","去授权":"Authorize","完成授权":"Complete authorization","授权码":"Authorization code","回调地址":"Redirect URI","rqappky":"Please enter AppKey","rq_scrt":"Please enter SecretKey","请填写授权码":"Please enter the authorization code","svappfr":"Please save the app configuration first","授权成功":"Authorization succeeded","账号可用":"Account is available","账号不可用":"Account is unavailable","校验":"Verify","已授权账号":"Authorized accounts","已删除":"Deleted","处理中":"Processing","AppKey":"AppKey","网盘挂载":"Cloud drive mount","凭据管理":"Credentials","凭据":"Credential","新增凭据":"Add credential","凭据已丢失":"Credential missing","挂载列表":"Mounts","新增挂载":"Add mount","munt_rq":"Mount directory cannot be empty","请选择凭据":"Please select a credential","请选择类型":"Please select a type","启用":"Enabled","已停用":"Disabled","确认删除":"Confirm deletion of","nmuntpr":"The current account has no permission for directory mounting","百度网盘":"Baidu Netdisk","应用配置":"App settings","授权":"Authorize","授权失败":"Authorization failed","strtdrt":"Start dir","授权检测":"Auth check","scrtkep":"Leave SecretKey empty to keep unchanged","编辑应用":"Edit app","新增授权账号":"Add authorized account","一键授权":"One-click authorize","outh_ob":"Manual (oob)","pst_cd":"Paste the authorization code","确认授权":"Confirm authorization","授权检测/刷新":"Verify / refresh","检测完成":"Check completed","导入":"imported","账号名":"Account name","百度账号":"Baidu account","网盘昵称":"Netdisk nickname","授权状态":"Auth status","过期时间":"Expires at","授权时间":"Authorized at","已授权":"Authorized","已过期":"Expired","停用":"Disable","已配置":"Configured","未配置":"Not configured","网盘使用":"Netdisk enabled","自动刷新":"Auto refresh","编辑账号":"Edit account","使用":"Use","当前为挂载目录":"Mounted directory","启用挂载":"Enable mounts","已启用":"Enabled","挂载已启用":"Mounts enabled","挂载已停用":"Mounts disabled","muntont":"Mounts enabled, click to disable","muntoff":"Mounts disabled, click to enable","凭证管理":"Credentials","授权方式":"Authorization Mode","去授权(一键)":"Authorize (one-click)","去授权(手动)":"Authorize (manual)","保存应用配置":"Save App Config","atathtp":"One-click: you will be redirected back here after authorization and the account is added automatically","atathnt":"One-click requires registering this service\'s /mount/baidu/callback as the redirect URI in Baidu\'s console","pstatht":"Manual: no redirect URI needed. After authorizing, copy the code on Baidu\'s page, paste it below and click Complete","crd_tp":"A credential is the account info used to connect to a cloud drive / remote host. It can be shared by multiple mounts, and editing it takes effect everywhere at once.","bidacct":"Baidu Netdisk accounts are not managed here. Authorize them in the \\"Baidu Netdisk\\" panel below; the corresponding account is created automatically after authorization.","pwdkept":"When editing, leaving a password-type field empty means the original value is kept.","tstbfrs":"Before saving, you can click \\"Test connection\\" to verify the account works.","prtwbdv":"A general-purpose file protocol supported by Jianguoyun, Synology NAS, Nextcloud, Alist and more. One service URL plus an account is enough to browse the remote directory.","prtsftp":"Access a directory on a remote server over SSH, transferring files via the SFTP subsystem. Ideal for mounting a directory from another Linux machine.","prt_s3":"Object storage services reachable over the S3 protocol, such as MinIO, Alibaba Cloud OSS, Tencent COS, Qiniu and Cloudflare R2. Requires a service endpoint, a bucket and a key pair.","深搜":"Deep Search","搜索":"Search","搜索中":"Searching","搜文件名":"Search file name recursively","搜到该处":"Go to its folder","打开所在目录":"Open containing folder","输入后搜":"Type a file name and press Enter","无匹配":"No matching files found","结果截断":"Too many results, showing first 500","未加载":"Not loaded","加载成功":"Loaded","加载失败":"Load failed","个工具":"tools","No share found":"No share found","Enter host first":"Enter host first","下一步":"Next","上一步":"Back","共享目录":"Share folder","prt_smb":"Windows shared folder (SMB/CIFS). Fill in the host and account, then pick a share name from the list.","prt_bd":"Baidu Netdisk. Create an app on the Baidu Open Platform, fill in AppKey / SecretKey, then authorize an account.","没有找到共享":"No shares found","粘贴授权码 code":"Paste authorization code","重新授权":"Reauthorize","请选择账号":"Please select an account","请填写备注":"Please enter a note","账号已丢失":"Account missing","已暂存的更改":"Staged Changes","全部暂存":"Stage All","全部取消暂存":"Unstage All","暂存":"Stage","无差异":"No differences","二进制文件":"Binary file","单栏":"Unified","并排":"Side by side","点击左侧文件查看差异":"Click a file on the left to view its diff","未跟踪文件无差异":"Untracked files have no diff","请先暂存要提交的文件":"Stage the files you want to commit first","没有已更改的文件":"No changed files","未暂存":"Unstaged","逐行归属":"Blame","无法读取该文件的归属信息":"Cannot read blame info for this file","全部文件":"All files","新建分支":"New branch","删除分支":"Delete branch","确认删除分支":"Delete branch?","合并到此分支":"Merge into this branch","新分支名":"New branch name","当前分支":"Current branch","切换到":"Switch to","分支创建成功":"Branch created","分支删除成功":"Branch deleted","合并成功":"Merged","标签":"Tags","新建标签":"New tag","标签名":"Tag name","暂无标签":"No tags","标签创建成功":"Tag created","标签删除成功":"Tag deleted","标签推送成功":"Tag pushed","删除标签":"Delete tag","确认删除标签":"Delete tag?","请输入标签名":"Enter a tag name","推送到远程":"Push to remote","基于提交":"Based on commit","基于当前提交":"Based on current commit","暂存工作区记录":"Stashes","暂无记录":"No records","恢复并删除":"Pop","已恢复并删除记录":"Restored and removed","已应用":"Applied","远程分支":"Remote branches","拉取远程信息":"Fetch","拉取并清理已删除分支":"Fetch and prune","未配置远程仓库":"No remote configured","签出到本地":"Checkout locally","拉取完成":"Fetch complete","冲突":"Conflicts","采用我方版本":"Use ours","采用对方版本":"Use theirs","标记已解决":"Mark resolved","标记全部已解决":"Finish merge","放弃合并":"Abort merge","确认放弃当前合并并恢复到操作前状态":"Abort and restore to the previous state?","已解决冲突":"Conflict resolved","已放弃合并":"Merge aborted","合并已完成":"Merge finished","撤销提交":"Revert commit","将生成一个反向提交来撤销":"Will create a reverse commit to revert","已撤销":"Reverted","摘取提交":"Cherry-pick","将该提交应用到当前分支":"Apply this commit to the current branch","摘取成功":"Cherry-picked","搜索提交":"Search commits","提交信息关键词":"Commit message","作者":"Author","请输入搜索条件":"Enter search criteria","操作历史":"History","回退到此处":"Reset here","强制回退(丢弃改动)":"Hard reset (discard changes)","此操作将永久丢弃未提交的改动":"This permanently discards uncommitted changes","已回退":"Reset done","已强制回退":"Hard reset done","子模块":"Submodules","无子模块":"No submodules","初始化并更新子模块":"Init and update submodules","子模块更新完成":"Submodules updated","未初始化":"Not initialized","与记录不一致":"Differs from record","正常":"Normal","当前提交":"Current commit","领先上游":"Ahead of upstream","落后上游":"Behind upstream","钩子":"Hooks","停用钩子":"Disable hook","确认删除并停用":"Delete and disable","保存并启用":"Save and enable","已保存并启用":"Saved and enabled","与工作区对比":"Compare with worktree","仓库":"Repos","初始化仓库":"Init repository","克隆仓库":"Clone repository","仓库初始化成功":"Repository initialized","克隆成功":"Cloned","目录名":"Directory name","请输入目录名":"Enter a directory name","仓库地址":"Repository URL","请输入仓库地址":"Enter a repository URL","当前目录下没有仓库":"No repositories here","进入":"Open","修改最后一次提交":"Amend last commit","已修改最后一次提交":"Last commit amended","分支比较":"Compare branches","两个分支没有差异":"No differences between branches","确认删除远程分支":"Delete remote branch","该分支会从远程仓库删除":"This branch will be deleted from the remote repository","删除远程分支":"Delete remote branch","将":"Merge","合并到":"into","未推送":"Not pushed","已到底部":"No more","没有可提交的更改":"Nothing to commit","存在未暂存的改动,是否一并暂存并提交?":"There are unstaged changes. Stage and commit them together?","二进制文件无法比较":"Binary file cannot be compared","请选择文件查看改动":"Select a file to view changes","clk_edt":"Click to edit","rendering":"Rendering…","思维导图":"Mind map","新窗口打开":"Open in new tab","已选":"Selected","复制所选":"Copy selected","删除所选":"Delete selected","全部复制":"Copy all","多选":"Select","wbvpn_allow":"WebVPN Target Allowlist","wbvpn_allow_ph":"One entry per line: 192.168.1.0/24 (CIDR) / 192.168.1.1 (IP) / router.local (domain, exact match, no subdomains)","wbvpn_tip":"WebVPN target allowlist. One entry per line. Three formats are supported:\\n · CIDR range: 192.168.1.0/24\\n · Exact IP: 192.168.1.1 (also 10.0.0.5, fd00::/8, ::1)\\n · Exact domain: router.local, nas.example.com (exact match, subdomains are NOT included)\\nPublic addresses are allowed by default. Private, loopback, link-local, cloud metadata (169.254.169.254) and other reserved addresses are denied unless listed here. Malformed lines are ignored.","wbvpn_port_range":"Proxy Port Range","wbvpn_port_tip":"Each target occupies an independent port. Open the access URL to browse that site; the page path stays clean so SPA routing works and sites are isolated by origin.","wbvpn_port_tip2":"Access requires login: opening from here carries a token once, then a cookie keeps the session. Targets are still subject to the allowlist / address policy.","wbvpn_port_tip3":"Links in the page that point to an enabled target are automatically rewritten to that target\'s port, so clicks stay inside the proxy; domains that are not configured as targets are left untouched.","网页代理目标":"Proxy Targets","访问地址":"Access URL","打开":"Open","已复制":"Copied","添加成功":"Added","目标地址不能为空":"Target address cannot be empty","目标地址例如":"Target address, e.g. 192.168.1.1:8080","网页代理":"Web Proxy","当前窗口打开":"Open in current tab","修改成功":"Updated","浏览器代理编辑":"Browser Proxy Editing","已禁用":"Disabled","prt_local":"Local directory. Enter an existing absolute path on this machine as the source; after mounting you can access it as a directory link inside filecat.","移动到最上":"Move to Top","移动到最下":"Move to Bottom","会话设置":"Session Settings","服务器工作目录":"Server Working Directory","服务器工作目录提示":"e.g. D:\\\\projects\\\\myapp","AI 聊天":"AI Chat","动态域名解析":"Dynamic DNS","平台":"Provider","账号凭证":"Credentials","域名绑定":"Domain Binding","IP 来源":"IP Source","域名":"Domain","多个域名用空格分隔":"Separate multiple domains with spaces","绑定":"Binding","填写格式":"Format","请填写账号凭证":"Please fill in credentials","确定删除吗":"Confirm delete?","ddns_help_1":"Configure DDNS to auto-update DNS records with your current public IP.","ddns_help_2":"IP sources include local network interfaces and custom HTTP endpoints.","请输入地址":"Please enter the URL","IP 来源管理":"Manage IP Sources","暂无数据":"No data","http_source_tip":"Add an HTTP endpoint that returns your public IP (e.g. https://4.ipw.cn). It will be used as an IP source for DDNS.","同步间隔":"Sync Interval","账号状态":"Account","上次同步":"Last Sync","验证":"Verify","未验证":"Unverified","失败":"Failed","同步完成":"Sync completed","间隔不能小于 10 秒":"Interval must be at least 10 seconds","文字":"Text","请填写完整的账号凭证":"Please fill in all credential fields"}'),r=JSON.parse('{"title":"FileCat","修改密码":"修改密码","自定义auth":"自定义auth","tk_exp":"token过期时间","目标":"目标","目标列表":"目标列表","被同步的源目录":"被同步的源目录","成功":"成功","已开启":"已开启","已关闭":"已关闭","sy_tp1":"目前只能同步较小的文件,例如配置文件,代码文件","sy_tp2":"默认不会立即同步文件,只有文件被修改后才同步;对某个目标开启全量同步后,该目标客户端每次上线都会递归同步全部文件,文件很多时压力较大。","sy_tp3":"一个任务可以配置多个目标客户端,每个目标可以单独设置目录和是否全量同步。","立即同步":"立即同步","已触发同步":"已触发同步","操作失败":"操作失败","tsk_off":"请先开启并保存该任务","mnt_type":"挂载类型","cred_sel":"凭据","lcl_abs":"被挂载的本地绝对路径","rem_dir":"远端目录","disp_only":"列表显示的名称","srchbln":"以空白搜索模式打开目录","sw_mdl":"允许切换 AI 模型","mv_self":"不能将文件夹移动到自己里面","nvdltp":"网址导航收藏功能已被删除,原数据已转换为 .url 文件保存。使用 filecat 打开 .url 文件即可实现相同的跳转访问。","tmplctp":"文件位置:filecat 数据库目录下的 tempfile/temp_delete_sys_tag_name_260926 目录。","lclorur":"本地文件路径或 http(s) 图片地址","nprmtp":"你没有修改该设置的权限,以下为当前配置。","rqappky":"请填写 AppKey","rq_scrt":"请填写 SecretKey","svappfr":"请先保存应用配置","munt_rq":"挂载目录不能为空","nmuntpr":"当前账号没有目录挂载权限","strtdrt":"起始目录","scrtkep":"SecretKey 留空表示不修改","outh_ob":"手动授权(oob)","pst_cd":"粘贴授权码 code","muntont":"挂载已启用,点击停用","muntoff":"挂载已停用,点击启用","atathtp":"一键授权:授权成功后会自动跳回本页,账号自动加入列表","atathnt":"一键授权需要在百度控制台把回调地址登记为本服务的 /mount/baidu/callback","pstatht":"手动授权:不依赖回调地址,授权后在百度页面复制授权码,粘贴到下方并点击完成授权","crd_tp":"凭据是连接网盘/远程主机的账号信息,可被多个挂载点复用,修改一次全部生效","bidacct":"百度网盘账号不在这里维护,请到下方「百度网盘」面板授权,授权后自动生成对应账号","pwdkept":"编辑时密码类字段留空表示不修改原值","tstbfrs":"保存前可以点「测试连接」验证账号是否可用","prtwbdv":"通用文件协议,坚果云、群晖 NAS、Nextcloud、Alist 等都支持。需要一个服务地址和账号即可访问对方目录。","prtsftp":"通过 SSH 协议访问远程服务器的目录,走 SFTP 子系统传文件。适合把另一台 Linux 机器的目录挂到本机。","prt_s3":"用 S3 协议连接的对象存储服务,例如 MinIO、阿里云 OSS、腾讯云 COS、七牛、Cloudflare R2。需要服务地址、存储桶和一对密钥。","语言":"语言","文件夹路径":"文件夹路径","编号":"编号","路径":"路径","是否默认":"是否默认","备注":"备注","编辑SQL":"编辑SQL","SQL 预设":"SQL 预设","耗时":"耗时","确认":"确认","请输入备注":"请输入备注","查询全部表":"查询全部表","SQL预设设置":"SQL预设设置","SQL预设":"SQL预设","更新保存":"更新保存","创建新预选项":"创建新预选项","添加预设":"添加预设","SQL代码":"SQL代码","保存成功":"保存成功","大纲":"大纲","新建主题":"新建主题","编辑主题":"编辑主题","删除主题":"删除主题","主题名称":"主题名称","请输入主题名称":"请输入主题名称","主题实时预览":"主题实时预览","删除成功":"删除成功","删除失败":"删除失败","cf_thm":"确认删除这个主题吗?","导出PDF":"导出PDF","no_head":"正文里还没有标题","未命名标题":"未命名标题","更新成功":"更新成功","创建成功":"创建成功","sql_in":"请输入 SQL 语句","新密码":"新密码","新账号":"新账号","关闭":"关闭","开启":"开启","展开":"展开","指定时间":"指定时间","永不过期":"永不过期","清空token":"清空token","保存":"保存","确定":"确定","确定修改":"确定修改","删除":"删除","添加":"添加","系统":"系统","follow_sys":"跟随系统设置","no_theme":"不使用主题","自定义页面路由":"自定义页面路由 ","api_rt":"自定义api路由","跳转路由":"跳转路由","路由":"路由","文件":"文件","自定义路由":"自定义路由","编辑":"编辑","查看":"查看","默认配置":"默认配置","设置":"设置","退出登录":"退出登录","虚拟网络":"虚拟网络","系统信息":"系统信息","工具箱":"工具箱","索引":"索引","文件夹":"文件夹","客户端":"客户端","服务器":"服务器","服务端":"服务端","基本信息":"基本信息","系统性能":"系统性能","总容量":"总容量","剩余":"剩余","使用率":"使用率","内存":"内存","系统进程":"系统进程","doc_ct":"docker容器","物理硬盘":"物理硬盘","文件硬盘":"文件硬盘","容器":"容器","名字":"名字","镜像":"镜像","命令":"命令","状态":"状态","选择":"选择","过滤":"过滤","账号":"账号","密码":"密码","目录":"目录","私钥路径":"私钥路径","连接地址":"连接地址","端口":"端口","port":"端口","host":"主机","key":"密钥","代理":"代理","浏览器":"浏览器","网络唤醒":"网络唤醒","时间工具":"时间工具","切换样式":"切换样式","更多":"更多","创建文件夹":"创建文件夹","创建文件":"创建文件","连接":"连接","地址":"地址","目标设备":"目标设备","发送":"发送","腾讯":"腾讯","云":"云","厂商":"厂商","名称":"名称","厂商名称":"厂商名称","类型":"类型","容量":"容量","挂载位置":"挂载位置","剩余容量":"剩余容量","登录":"登录","是":"是","否":"否","秒":"秒","流量转发":"流量转发","点对点":"点对点","模式":"模式","虚拟":"虚拟","在线状态":"在线状态","物理":"物理","账号设置":"账号设置","说明":"说明","文件系统类型":"文件系统类型","机械":"机械","固态":"固态","复制":"复制","剪切":"剪切","压缩":"压缩","下载":"下载","重命名":"重命名","创建文本文件":"创建文本文件","解压":"解压","转换到":"转换到","自定义":"自定义","粘贴到此处":"粘贴到此处","创建":"创建","制造商":"制造商","总内存":"总内存","最大":"最大","品牌":"品牌","逻辑核心":"逻辑核心","搜索当前目录":"搜索当前目录","压缩文件":"压缩文件","取消":"取消","运行":"运行","格式":"格式","压缩到":"压缩到","进度":"进度","解压到":"解压到","当前目录":"当前目录","解压文件":"解压文件","视频格式转换":"视频格式转换","gen_dir":"生成文件的目标文件在本目录下","ff_fmt":"ffmpeg支持的目标格式","del_f":"是否删除选中的文件","输入目录名":"输入目录名","cut_ovr":"剪切(覆盖)确认","cp_ovr":"复制(覆盖)确认","修改名字":"修改名字","输入新名字":"输入新名字","个文件正在上传":"个文件正在上传","确定删除":"确定删除","是否删除":"是否删除","输入文本名":"输入文本名","添加索引":"添加索引","物理核心":"物理核心","创建目录":"创建目录","访问目录":"访问目录","mac_dst":"目标设备mac地址","要代理的url":"要代理的url","系统代理端口":"系统代理端口","返回":"返回","不允许为空":"不允许为空","ff_none":"找不到ffmpeg","disk":"硬盘","part":"分区","lvm":"逻辑卷","网址":"网址","环境":"环境","外部软件":"外部软件","保护路径":"保护路径","软件":"软件","是否安装":"是否安装","角色管理":"角色管理","用户管理":"用户管理","角色id":"角色id","角色名":"角色名","用户id":"用户id","用户名":"用户名","目录范围":"目录范围","可执行的命令":"可执行的命令","禁止目录范围":"禁止目录范围","可执行命令":"可执行命令","系统进程关闭":"系统进程关闭","dc_ctdl":"docker容器停止、删除","dc_idl":"docker镜像删除","tk_time":"token时间修改","自定义资源路由":"自定义资源路由","磁盘挂载":"磁盘挂载","目录挂载":"目录挂载","应用配置":"应用配置","授权":"授权","保存应用配置":"保存应用配置","挂载列表":"挂载列表","凭证管理":"凭证管理","测试连接":"测试连接","总开关":"总开关","ssh_sv":"ssh密钥保存到磁盘","外部软件路径":"外部软件路径","log_del":"文件删除、剪切、重命名","内容更新":"内容更新","标签编辑权限":"标签编辑权限","ssh代理":"ssh代理","http代理":"http代理","浏览器代理":"浏览器代理","rdp代理":"rdp代理","rtsp播放器":"rtsp播放器","tag_pub":"标签编辑是所有人都可见的的数据","角色":"角色","文件回收站":"文件回收站","个人保护路径":"个人保护路径","系统保护路径":"系统保护路径","小于一分钟":"小于一分钟","分钟前":"分钟前","小时前":"小时前","天前":"天前","月前":"月前","年前":"年前","挂载位置磁盘":"挂载位置磁盘","信息":"信息","磁盘剩余":"磁盘剩余","文件系统":"文件系统","文件夹数":"文件夹数","文件数":"文件数","当前位置":"当前位置","输入文件名":"输入文件名","o_stdo":"以studio打开","o_img":"以图片编辑器打开","预览图片":"预览图片","运行并实时查看":"运行并实时查看","实时查看":"实时查看","输入参数运行":"输入参数运行","以文本打开":"以文本打开","以日志打开":"以日志打开","上传":"上传","文件选项":"文件选项","添加类目":"添加类目","全部编辑":"全部编辑","输入类目名":"输入类目名","折叠":"折叠","全部折叠":"全部折叠","(无内容)":"(无内容)","请求头":"请求头","请求体":"请求体","值":"值","上传文件":"上传文件","下载到本地目录":"下载到本地目录","本地地址":"本地地址","完成":"完成","结束":"结束","响应头":"响应头","正在下载":"正在下载","输入标签名":"输入标签名","frm_lm":"表单中含有文件,浏览器限制不能添加","非对称密钥":"非对称密钥","将覆盖密钥文件":"将覆盖密钥文件","加密算法":"加密算法","输出格式":"输出格式","普通PEM":"普通PEM","生成":"生成","ssh_dir":"保存到.ssh目录","私钥":"私钥","时间转换器":"时间转换器","格式化时间":"格式化时间","毫秒":"毫秒","分秒":"分秒","实时信息":"实时信息","运行用户":"运行用户","当前系统":"当前系统","进程":"进程","ld_wait":"加载中请等待...","选中":"选中","创建用户":"创建用户","升序":"升序","降序":"降序","dc_nne":"检测不到docker,主机可能没有安装docker or 容器为空","过滤镜像":"过滤镜像","列表更新":"列表更新","执行命令":"执行命令","打印日志":"打印日志","删除容器":"删除容器","删除镜像":"删除镜像","doc_img":"docker镜像","doc_icf":"确定删除选中的镜像吗","系统运行于":"系统运行于","全局变量":"全局变量","up_conc":"文件上传最大并发限制","单用户并发数量":"单用户并发数量","系统并发数量":"系统并发数量","big_res":"是否开启大文件断点","big_sz":"大文件判断大小MB","大文件并发数量":"大文件并发数量","big_ck":"大文件分块大小MB","页面资源路由":"页面资源路由","wf_rt":"workflow触发路由","过期时间(s)":"过期时间(s)","文件路径":"文件路径","path_up":"系统保护路径更新","path_md":"PATH路径修改","执行用户":"执行用户","执行":"执行","wf_api":"workflow触发api 修改","up_lim":"目录文件上传数量限制修改","功能权限":"功能权限","角色备注":"角色备注","pxy_off":"http代理下载关闭","工具功能":"工具功能","全局变量设置":"全局变量设置","文件回收站修改":"文件回收站修改","文件权限":"文件权限","log_wr":"文件创建、上传、内容更新、解压缩","只读目录范围":"只读目录范围","更新":"更新","use_env":"默认使用环境变量","sync_sv":"同步信息给选中服务器","add_rot":"添加http资源根目录","dl_here":"在此目录下载http资源","文件排序":"文件排序","系统默认":"系统默认","修改时间":"修改时间","时间逆序":"时间逆序","时间顺序":"时间顺序","大小逆序":"大小逆序","大小顺序":"大小顺序","文件大小":"文件大小","网站标题":"网站标题","通用设置":"通用设置","主题":"主题","时区":"时区","时间":"时间","服务器时间":"服务器时间","在线时间":"在线时间","离线时间":"离线时间","在线":"在线","离线":"离线","功能文档":"功能文档","官网地址":"https://filecat.xiaobaidadada.fun/","远程代理":"远程代理","系统管理":"系统管理","网址导航":"网址导航","目录快捷命令":"目录快捷命令","文件快捷命令":"文件快捷命令","系统网络":"系统网络","复制名字":"复制名字","分享":"分享","复制绝对路径":"复制绝对路径","复制相对路径":"复制相对路径","切换目录":"切换目录","统计信息":"统计信息","更新AI知识库":"更新AI知识库","exp_hr":"剩余过期时间(小时)","可以为空":"可以为空","自动加载":"自动加载","本地知识库":"本地知识库","知识库加载信息":"知识库加载信息","最近一次加载":"最近一次加载","加载进度":"加载进度","总文件数量":"总文件数量","总文件字符数量":"总文件字符数量","总文件大小":"总文件大小","总耗时":"总耗时","上一页":"上一页","目标地址":"目标地址","目标端口":"目标端口","连接状态":"连接状态","个人设置":"个人设置","系统设置":"系统设置","文件后缀":"文件后缀","禁止执行的命令":"禁止执行的命令","Ai 配置":"Ai 配置","文件分享":"文件分享","输入跳转的目录":"输入跳转的目录","文件分享列表":"文件分享列表","过期小时":"过期小时","下载次数":"下载次数","剩余时间":"剩余时间","文件加载方式":"文件加载方式","全部加载文件":"全部加载文件","scrll_l":"分页滚动加载文件","剩余时间(h)":"剩余时间(h)","网络代理":"网络代理","个人":"个人","安装方式":"安装方式","是否开启":"是否开启","系统启动执行":"系统启动执行","表达式":"表达式","用户":"用户","详细信息":"详细信息","服务器配置":"服务器配置","客户端列表":"客户端列表","更多服务器":"更多服务器","端口映射":"端口映射","序号":"序号","服务器端口":"服务器端口","转发客户端名称":"转发客户端名称","服务端口":"服务端口","转发ip":"转发ip","转发端口":"转发端口","客户端代理配置":"客户端代理配置","客户端桥接配置":"客户端桥接配置","远程地址":"远程地址","在线时长":"在线时长","fwd_nm":"转发Client名称","sv_ntf":"保存并通知客户端第一个key和port","br_port":"桥接服务端口列表","输入消息":"输入消息","用户权限":"用户权限","系统管理权限":"系统管理权限","网络功能权限":"网络功能权限","Ai 设置权限":"Ai 设置权限","系统设置权限":"系统设置权限","系统环境设置":"系统环境设置","sys_env":"系统环境设置页面","自定义路由页面":"自定义路由页面","代理功能":"代理功能","其他功能":"其他功能","ddns":"ddns","ai_page":"Ai Chat Page","pty cmd":"pty cmd","wf_run":"workflow 执行","wf_user":"workflow 执行用户","cmd_rst":"filecat-restart重启命令","cmd_upg":"filecat-upgrade升级命令","cmd_dwn":"filecat-down关闭主进程命令","cmd_ai":"ai 命令(Ai 聊天)","个性化设置":"个性化设置","个人环境":"个人环境","系统环境":"系统环境","持久化":"持久化","lgn_usr":"登陆展示用户信息","个人环境设置":"个人环境设置","其他参数":"其他参数","父编号":"父编号","代理配置":"代理配置","桥接配置":"桥接配置","内网穿透":"内网穿透","fc_pxy":"filecat代理访问","fc_pxyw":"filecat代理访问使用服务器前端","fc_pxyr":"自定义filecat代理地址","文件列表展示":"文件列表展示","缩放调整":"缩放调整","缩放百分比":"缩放百分比","范围":"范围","结果过多":"结果过多,请细化关键词","已显示":"已显示","时间展示":"时间展示","最近时间":"最近时间","准确时间":"准确时间","缩放调整成功":"缩放调整成功","原客户端":"原客户端","原目录":"原目录","目标客户端":"目标客户端","目标目录":"目标目录","忽略目录":"忽略目录","双向同步":"双向同步","客户端文件同步":"客户端文件同步","客户端设置":"客户端设置","pxy_nln":"请勿将代理服务器用于本地 (Intranet) 地址","忽略ip":"忽略 IP","ai_ask":"询问服务器的一切","本地目录":"本地目录","响应体":"响应体","客户端功能":"客户端功能","全量同步":"全量同步","公钥":"公钥","跟随系统":"跟随系统","字符消耗统计":"字符消耗统计","加载中...":"加载中...","对话轮次":"对话轮次","AI输入字符":"AI输入字符","AI输出字符":"AI输出字符","暂无统计数据":"暂无统计数据","会话":"会话","新会话":"新会话","提示词":"提示词","llm_pmt":"LLM编辑提示词","LLM编辑开关":"LLM编辑开关","编辑规则":"编辑规则","选择系统提示词":"选择系统提示词","清空全部会话":"清空全部会话","cf_all":"确认删除全部聊天会话吗?","cf_msgs":"确认删除选中的聊天消息吗?","cf_ses":"确认删除选中的会话吗?","cf_one":"确认删除这条消息吗?","批量选择":"批量选择","查看所有用户会话":"查看所有用户会话","查看全部会话时不可发送消息":"查看全部会话时不可发送消息","仅看我的会话":"仅看我的会话","取消批量选择":"取消批量选择","删除选中消息":"删除选中消息","删除选中会话":"删除选中会话","切换模型":"切换模型","添加文件":"添加文件","无描述":"无描述","暂无工具":"暂无工具","查看工具":"查看工具","加载工具":"加载工具","系统会话提示词":"系统会话提示词","删除记录":"删除记录","手动加载":"手动加载","从索引删除":"从索引删除","知识库开关":"知识库开关","文本对话":"文本对话","图片生成":"图片生成","向量嵌入":"向量嵌入","图片参数设置":"图片参数设置","更多属性":"更多属性","model类型":"model类型","成为tool":"成为tool","操作":"操作","https_s":"HTTPS 设置","ssl_crt":"SSL 证书路径","ssl_key":"SSL 私钥路径","crt_pth":"证书文件路径(cert.pem/fullchain.pem)","ky_pth":"私钥文件路径(privkey.pem)","查看Git提交":"查看Git提交","Git":"Git","变更":"变更","提交记录":"提交记录","全选":"全选","没有变更":"没有变更","暂无提交记录":"暂无提交记录","分支":"分支","git_msg":"输入提交信息...","提交":"提交","暂存全部":"暂存全部","暂存选中":"暂存选中","取消暂存":"取消暂存","已暂存":"已暂存","已暂存全部":"已暂存全部","已取消暂存":"已取消暂存","请输入提交信息":"请输入提交信息","提交成功":"提交成功","推送成功":"推送成功","拉取成功":"拉取成功","切换分支成功":"切换分支成功","远程操作":"远程操作","拉取":"拉取","推送":"推送","强制推送":"强制推送","暂存工作区":"暂存工作区","暂存工作区成功":"暂存工作区成功","恢复工作区":"恢复工作区","恢复工作区成功":"恢复工作区成功","刷新":"刷新","请先选择文件":"请先选择文件","提示:":"提示:","git_stg":"左侧勾选文件后,使用「暂存选中」将其加入暂存区","git_cmt":"输入提交信息后点击「提交」","git_cf":"如有冲突,请自行在shell中解决冲突后再提交","git_frc":"「强制推送」会覆盖远程分支,请谨慎使用","配置表":"配置表","自动升级":"自动升级","exe_tpl":"exe 下载地址模板","offcal":"留空使用官方 GitHub Releases","检测频率(秒)":"检测频率(秒)","def_180":"默认180秒(3分钟)","chk_10s":"检测间隔不能小于10秒","ver_url":"系统版本检测地址","ver_req":"版本检测地址不能为空","用户配置":"用户配置","邮箱":"邮箱","代理设置":"代理设置","全局代理":"全局代理","仓库代理":"仓库代理","修改":"修改","用户配置已保存":"用户配置已保存","代理配置已保存":"代理配置已保存","pxy_clr":"留空清除该代理设置","pxy_nte":"用户配置和全局代理修改后对所有仓库生效","pxy_url":"HTTP 代理地址","pxy_tip":"用于 filecat 系统自身发出的 HTTP 请求:版本检测、自动升级、DDNS、命令下载、自定义路由转发等。注意:mac 系统如果已开启系统代理,这里请留空,以免造成双重代理。","端口扫描":"端口扫描","目标主机":"目标主机","起始端口":"起始端口","结束端口":"结束端口","并发数":"并发数","超时(ms)":"超时(ms)","扫描":"扫描","扫描结果":"扫描结果","扫描完成":"扫描完成","扫描失败":"扫描失败","正在扫描...":"正在扫描...","未发现开放端口":"未发现开放端口","scan_in":"请输入参数后点击扫描","hostreq":"主机地址不能为空","端口范围无效":"端口范围无效","portrng":"起始端口不能大于结束端口","开放":"开放","总计扫描":"总计扫描","已发现":"已发现","当前":"当前","扫描已取消":"扫描已取消","自动换行":"自动换行","不换行":"不换行","替换":"替换","env编辑":"env编辑","命令确认":"命令确认","命令检测开启":"命令检测开启","命令检测关闭":"命令检测关闭","命令检测已开启":"命令检测已开启","命令检测已关闭":"命令检测已关闭","此会话不再询问":"此会话不再询问","doc_pxy":"Docker 代理配置","HTTP 代理":"HTTP 代理","pxy_htt":"HTTPS 代理","pxy_nne":"No Proxy","保存失败":"保存失败","MD编辑器":"MD编辑器","行":"行","as_iv":"自动保存间隔(秒)","as_num":"请输入不小于 0 的整数","列":"列","默认":"默认","删除行":"删除行","删除列":"删除列","上方插入行":"上方插入行","切换表头行":"切换表头行","合并单元格":"合并单元格","拆分单元格":"拆分单元格","下方插入行":"下方插入行","左侧插入列":"左侧插入列","右侧插入列":"右侧插入列","插入表格":"插入表格","加载中":"加载中","打开失败":"打开失败","重启失败":"重启失败","doc_cfg":"Docker 配置","名单视图":"名单视图","文本视图":"文本视图","目标(To)":"目标(To)","动作":"动作","fw_from":"来源(From)","删除规则":"删除规则","规则编号":"规则编号","点击复制":"点击复制","镜像加速":"镜像加速","不安全仓库":"不安全仓库","开启调试":"开启调试","数据存储目录":"数据存储目录","存储驱动":"存储驱动","日志驱动":"日志驱动","fw_iptb":"启用 iptables","lve_rst":"Live Restore","添加规则":"添加规则","请填写端口号":"请填写端口号","方向":"方向","协议":"协议","来源地址":"来源地址","获取失败":"获取失败","进程环境变量":"进程环境变量","md_set":"MD 编辑器设置","深搜":"深度搜索","搜索":"搜索","搜索中":"搜索中","搜文件名":"递归搜索文件名","搜到该处":"跳转到所在目录","打开所在目录":"打开所在目录","输入后搜":"输入文件名后回车搜索","无匹配":"没有找到匹配的文件","结果截断":"结果过多,仅显示前 500 条","No share found":"没有找到共享","Enter host first":"请填写主机","下一步":"下一步","上一步":"上一步","共享目录":"共享目录","连接成功":"连接成功","确认删除":"确认删除","已删除":"已删除","prt_smb":"Windows 共享目录(SMB/CIFS),填写主机、账号后可直接列出共享名选择。","prt_bd":"百度网盘。先在百度开放平台创建应用,填 AppKey / SecretKey,再授权一个百度账号即可使用。","没有找到共享":"没有找到共享","粘贴授权码 code":"粘贴授权码 code","重新授权":"重新授权","账号名":"账号名","百度账号":"百度账号","授权状态":"授权状态","使用":"使用","授权时间":"授权时间","账号可用":"账号可用","账号不可用":"账号不可用","授权码":"授权码","去授权":"去授权","授权检测":"授权检测","已过期":"已过期","未授权":"未授权","已授权":"已授权","请选择账号":"请选择账号","请填写备注":"请填写备注","账号已丢失":"账号已丢失","已暂存的更改":"已暂存的更改","全部暂存":"全部暂存","全部取消暂存":"全部取消暂存","暂存":"暂存","无差异":"无差异","二进制文件":"二进制文件","单栏":"单栏","并排":"并排","点击左侧文件查看差异":"点击左侧文件查看差异","未跟踪文件无差异":"未跟踪文件无差异","请先暂存要提交的文件":"请先暂存要提交的文件","没有已更改的文件":"没有已更改的文件","未暂存":"未暂存","逐行归属":"逐行归属","无法读取该文件的归属信息":"无法读取该文件的归属信息","全部文件":"全部文件","新建分支":"新建分支","删除分支":"删除分支","确认删除分支":"确认删除分支","合并到此分支":"合并到此分支","新分支名":"新分支名","当前分支":"当前分支","切换到":"切换到","分支创建成功":"分支创建成功","分支删除成功":"分支删除成功","合并成功":"合并成功","标签":"标签","新建标签":"新建标签","标签名":"标签名","暂无标签":"暂无标签","标签创建成功":"标签创建成功","标签删除成功":"标签删除成功","标签推送成功":"标签推送成功","删除标签":"删除标签","确认删除标签":"确认删除标签","请输入标签名":"请输入标签名","推送到远程":"推送到远程","基于提交":"基于提交","基于当前提交":"基于当前提交","暂存工作区记录":"暂存工作区记录","暂无记录":"暂无记录","恢复并删除":"恢复并删除","已恢复并删除记录":"已恢复并删除记录","已应用":"已应用","远程分支":"远程分支","拉取远程信息":"拉取远程信息","拉取并清理已删除分支":"拉取并清理已删除分支","未配置远程仓库":"未配置远程仓库","签出到本地":"签出到本地","拉取完成":"拉取完成","冲突":"冲突","采用我方版本":"采用我方版本","采用对方版本":"采用对方版本","标记已解决":"标记已解决","标记全部已解决":"标记全部已解决","放弃合并":"放弃合并","确认放弃当前合并并恢复到操作前状态":"确认放弃当前合并并恢复到操作前状态","已解决冲突":"已解决冲突","已放弃合并":"已放弃合并","合并已完成":"合并已完成","撤销提交":"撤销提交","将生成一个反向提交来撤销":"将生成一个反向提交来撤销","已撤销":"已撤销","摘取提交":"摘取提交","将该提交应用到当前分支":"将该提交应用到当前分支","摘取成功":"摘取成功","搜索提交":"搜索提交","提交信息关键词":"提交信息关键词","作者":"作者","请输入搜索条件":"请输入搜索条件","操作历史":"操作历史","回退到此处":"回退到此处","强制回退(丢弃改动)":"强制回退(丢弃改动)","此操作将永久丢弃未提交的改动":"此操作将永久丢弃未提交的改动","已回退":"已回退","已强制回退":"已强制回退","子模块":"子模块","无子模块":"无子模块","初始化并更新子模块":"初始化并更新子模块","子模块更新完成":"子模块更新完成","未初始化":"未初始化","与记录不一致":"与记录不一致","正常":"正常","未配置":"未配置","当前提交":"当前提交","领先上游":"领先上游","落后上游":"落后上游","钩子":"钩子","停用钩子":"停用钩子","确认删除并停用":"确认删除并停用","已停用":"已停用","保存并启用":"保存并启用","已保存并启用":"已保存并启用","与工作区对比":"与工作区对比","仓库":"仓库","初始化仓库":"初始化仓库","克隆仓库":"克隆仓库","仓库初始化成功":"仓库初始化成功","克隆成功":"克隆成功","目录名":"目录名","请输入目录名":"请输入目录名","仓库地址":"仓库地址","请输入仓库地址":"请输入仓库地址","当前目录下没有仓库":"当前目录下没有仓库","进入":"进入","修改最后一次提交":"修改最后一次提交","已修改最后一次提交":"已修改最后一次提交","分支比较":"分支比较","两个分支没有差异":"两个分支没有差异","确认删除远程分支":"确认删除远程分支","该分支会从远程仓库删除":"该分支会从远程仓库删除","删除远程分支":"删除远程分支","将":"将","合并到":"合并到","未推送":"未推送","已到底部":"已到底部","没有可提交的更改":"没有可提交的更改","存在未暂存的改动,是否一并暂存并提交?":"存在未暂存的改动,是否一并暂存并提交?","二进制文件无法比较":"二进制文件无法比较","请选择文件查看改动":"请选择文件查看改动","clk_edt":"点击编辑","rendering":"渲染中…","思维导图":"思维导图","新窗口打开":"新窗口打开","已选":"已选","复制所选":"复制所选","删除所选":"删除所选","全部复制":"全部复制","多选":"多选","wbvpn_allow":"网页代理目标白名单","wbvpn_allow_ph":"每行一条:192.168.1.0/24(网段)/ 192.168.1.1(精确IP)/ router.local(精确域名,不含子域名)","wbvpn_tip":"网页代理(WebVPN)目标访问白名单,每行一条,支持三种格式:\\n · 网段:192.168.1.0/24\\n · 精确 IP:192.168.1.1(也支持 10.0.0.5、fd00::/8、::1)\\n · 精确域名:router.local、nas.example.com(精确匹配,不含子域名,不会自动放行 a.router.local)\\n公网地址默认放行;内网、环回、链路本地、云元数据(169.254.169.254)等受限地址默认禁止,只有在此显式列出才允许。格式错误的行会被自动忽略。","wbvpn_port_range":"代理端口范围","wbvpn_port_tip":"每个目标占用一个独立端口,打开访问地址即可浏览该站点。路径保持干净,SPA 路由天然正常,各站点按端口(Origin)天然隔离。","wbvpn_port_tip2":"访问需要登录:从这里打开会带上一次 token,之后靠 cookie 保持会话。目标仍受白名单 / 地址策略限制。","wbvpn_port_tip3":"页面里的链接若指向【已开启的目标】,会自动替换成对应端口的代理地址,点击后仍留在代理内;未配置成目标的域名不作处理。","网页代理目标":"网页代理目标","访问地址":"访问地址","打开":"打开","已复制":"已复制","添加成功":"添加成功","目标地址不能为空":"目标地址不能为空","目标地址例如":"目标地址,例如 192.168.1.1:8080","网页代理":"网页代理","当前窗口打开":"当前窗口打开","修改成功":"修改成功","浏览器代理编辑":"浏览器代理编辑","已启用":"已启用","启用":"启用","已禁用":"已禁用","prt_local":"本地目录。填写一个本机已存在的绝对目录作为源目录,挂载后即可在 filecat 内以目录链接的方式访问它。","移动到最上":"移动到最上","移动到最下":"移动到最下","会话设置":"会话设置","服务器工作目录":"服务器工作目录","服务器工作目录提示":"例如:D:\\\\projects\\\\myapp","AI 聊天":"AI 聊天","动态域名解析":"动态域名解析","平台":"平台","账号凭证":"账号凭证","域名绑定":"域名绑定","IP 来源":"IP 来源","域名":"域名","多个域名用空格分隔":"多个域名用空格分隔","绑定":"绑定","填写格式":"填写格式","请填写账号凭证":"请填写账号凭证","确定删除吗":"确定删除吗","ddns_help_1":"动态域名解析可自动把域名解析记录更新为当前公网 IP。左侧添加配置,右侧选择平台、填写凭证并绑定域名。","ddns_help_2":"IP 来源支持本机网卡与自定义 HTTP 接口(返回公网 IP)。","请输入地址":"请输入地址","IP 来源管理":"IP 来源管理","暂无数据":"暂无数据","http_source_tip":"添加一个返回公网 IP 的 HTTP 接口(如 https://4.ipw.cn),它将作为 DDNS 的 IP 来源。","同步间隔":"同步间隔","账号状态":"账号状态","上次同步":"上次同步","验证":"验证","未验证":"未验证","失败":"失败","同步完成":"同步完成","间隔不能小于 10 秒":"间隔不能小于 10 秒","文字":"文字","请填写完整的账号凭证":"请填写完整的账号凭证"}'),o=JSON.parse('{"title":"FileCat","修改密码":"Passwort ändern","自定义auth":"Benutzerdefiniertes Auth","tk_exp":"Token-Ablaufzeit","目标":"Ziel","目标列表":"Ziele","被同步的源目录":"Zu synchronisierendes Quellverzeichnis","成功":"Erfolg","已开启":"Aktiviert","已关闭":"Deaktiviert","sy_tp1":"Nur kleine Dateien werden unterstützt, z. B. Konfigurations- und Codedateien","sy_tp2":"Dateien werden standardmäßig nicht sofort synchronisiert, nur nach Änderungen. Bei aktivierter Vollsync synchronisiert der Client bei jeder Verbindung alle Dateien rekursiv - belastend bei großen Bäumen.","sy_tp3":"Eine Aufgabe kann mehrere Ziele haben, jedes mit eigenem Verzeichnis und Vollsync-Option.","立即同步":"Jetzt synchronisieren","已触发同步":"Sync ausgelöst","操作失败":"Vorgang fehlgeschlagen","tsk_off":"Bitte Aufgabe zuerst aktivieren und speichern","mnt_type":"Mount-Typ","cred_sel":"Anmeldedaten","lcl_abs":"Absoluter lokaler Pfad","rem_dir":"Remote-Verzeichnis","disp_only":"Name in der Liste","tag_pub":"Tag-Änderungen sind für alle sichtbar","portrng":"Startport darf nicht größer als Endport sein","https_s":"HTTPS-Einstellungen","ssl_crt":"SSL-Zertifikatspfad","ssl_key":"SSL-Privatschlüsselpfad","crt_pth":"Pfad zum Zertifikat (cert.pem/fullchain.pem)","ky_pth":"Pfad zum privaten Schlüssel (privkey.pem)","语言":"Sprache","文件夹路径":"Ordnerpfad","编号":"Nummer","路径":"Pfad","是否默认":"Ist Standard?","备注":"Bemerkung","编辑SQL":"SQL bearbeiten","SQL 预设":"SQL-Voreinstellung","耗时":"Dauer","确认":"Bestätigen","请输入备注":"Bitte Hinweis eingeben","查询全部表":"Alle Tabellen abfragen","SQL预设设置":"SQL-Voreinstellungen","SQL预设":"SQL-Voreinstellung","更新保存":"Aktualisieren & Speichern","创建新预选项":"Neue Voreinstellung","添加预设":"Voreinstellung hinzufügen","SQL代码":"SQL-Code","保存成功":"Erfolgreich gespeichert","大纲":"Gliederung","新建主题":"Neues Theme","编辑主题":"Theme bearbeiten","删除主题":"Theme löschen","主题名称":"Theme-Name","请输入主题名称":"Bitte Theme-Namen eingeben","主题实时预览":"Live-Vorschau","删除成功":"Gelöscht","删除失败":"Löschen fehlgeschlagen","cf_thm":"Dieses Theme löschen?","导出PDF":"PDF exportieren","no_head":"Noch keine Überschriften","未命名标题":"Unbenannte Überschrift","更新成功":"Erfolgreich aktualisiert","创建成功":"Erfolgreich erstellt","sql_in":"Bitte SQL-Anweisung eingeben","新密码":"Neues Passwort","新账号":"Neues Konto","关闭":"Schließen","开启":"Öffnen","展开":"Erweitern","指定时间":"Festgelegte Zeit","永不过期":"Niemals ablaufen","清空token":"Token leeren","保存":"Speichern","确定":"Bestätigen","确定修改":"Änderung bestätigen","删除":"Löschen","添加":"Hinzufügen","系统":"System","follow_sys":"Systemeinstellung folgen","no_theme":"Kein Theme","自定义页面路由":"Benutzerdefinierte Seitenroute ","api_rt":"Benutzerdefinierte API-Route","跳转路由":"Sprungroute","路由":"Route","文件":"Datei","自定义路由":"Benutzerdefinierte Routen","编辑":"Bearbeiten","查看":"Anzeigen","默认配置":"Standardkonfiguration","设置":"Einstellungen","退出登录":"Ausloggen","虚拟网络":"Virtuelles Netzwerk","系统信息":"Systeminformationen","工具箱":"Werkzeugkasten","索引":"Index","文件夹":"Ordner","客户端":"Client","服务器":"Server","服务端":"Server","基本信息":"Grundlegende Informationen","系统性能":"Systemleistung","总容量":"Gesamtkapazität","剩余":"Rest","使用率":"Nutzungsrate","内存":"Speicher","系统进程":"Systemprozesse","doc_ct":"Docker-Container","物理硬盘":"Physikalische Festplatte","文件硬盘":"Dateifestplatte","容器":"Container","名字":"Name","镜像":"Bild","命令":"Befehl","状态":"Status","选择":"Auswahl","过滤":"Filtern","账号":"Konto","密码":"Passwort","目录":"Verzeichnis","私钥路径":"Privat-Schlüssel-Pfad","连接地址":"Verbindungsadresse","端口":"Port","port":"Port","host":"Host","key":"Schlüssel","代理":"Proxy","浏览器":"Browser","网络唤醒":"Wake-on-LAN","时间工具":"Zeitwerkzeug","切换样式":"Stil wechseln","更多":"Mehr","创建文件夹":"Ordner erstellen","创建文件":"Datei erstellen","连接":"Verbinden","地址":"Adresse","目标设备":"Zielgerät","发送":"Senden","腾讯":"Tencent","云":"Cloud","厂商":"Hersteller","名称":"Name","厂商名称":"Herstellername","类型":"Typ","容量":"Kapazität","挂载位置":"Mount-Punkt","剩余容量":"Restkapazität","登录":"Anmelden","是":"Ja","否":"Nein","秒":"Sekunde","流量转发":"Traffic-Forwarding","点对点":"Peer-to-Peer","模式":"Modus","虚拟":"Virtuell","在线状态":"Online-Status","物理":"Physikalisch","账号设置":"Kontoeinstellungen","说明":"Beschreibung","文件系统类型":"Dateisystemtyp","机械":"Mechanisch","固态":"Festplatte","复制":"Kopieren","剪切":"Ausschneiden","压缩":"Komprimieren","下载":"Herunterladen","重命名":"Umbenennen","创建文本文件":"Text-Datei erstellen","解压":"Entpacken","转换到":"Konvertieren in","自定义":"Benutzerdefiniert","粘贴到此处":"Hier einfügen","创建":"Erstellen","制造商":"Hersteller","总内存":"Gesamtspeicher","最大":"Maximal","品牌":"Marke","逻辑核心":"Logischer Kern","搜索当前目录":"Im aktuellen Verzeichnis suchen","压缩文件":"Datei komprimieren","取消":"Abbrechen","运行":"Ausführen","格式":"Format","压缩到":"Komprimieren nach","进度":"Fortschritt","解压到":"Entpacken nach","当前目录":"Aktuelles Verzeichnis","解压文件":"Datei entpacken","视频格式转换":"Video-Format-Konvertierung","gen_dir":"Die Zieldatei der generierten Datei befindet sich im aktuellen Verzeichnis","ff_fmt":"Von ffmpeg unterstützte Zieleformate","del_f":"Sollen die ausgewählten Dateien gelöscht werden?","输入目录名":"Verzeichnisnamen eingeben","cut_ovr":"Ausschneiden (Überschreiben) bestätigen","cp_ovr":"Kopieren (Überschreiben) bestätigen","修改名字":"Namen ändern","输入新名字":"Neuen Namen eingeben","个文件正在上传":"Dateien werden hochgeladen","确定删除":"Löschen bestätigen","是否删除":"Löschen?","输入文本名":"Textnamen eingeben","添加索引":"Index hinzufügen","物理核心":"Physikalischer Kern","创建目录":"Verzeichnis erstellen","访问目录":"Verzeichnis zugreifen","mac_dst":"MAC-Adresse des Zielgeräts","要代理的url":"Zu proxynde URL","系统代理端口":"System-Proxy-Port","返回":"Zurück","不允许为空":"Darf nicht leer sein","ff_none":"ffmpeg nicht gefunden","disk":"Festplatte","part":"Partition","lvm":"Logisches Volume Management","网址":"Webadresse","环境":"Umgebung","外部软件":"Externe Software","保护路径":"Geschützter Pfad","软件":"Software","是否安装":"Ist installiert?","角色管理":"Rollenverwaltung","用户管理":"Benutzerverwaltung","角色id":"Rollen-ID","角色名":"Rollenname","用户id":"Benutzer-ID","用户名":"Benutzername","目录范围":"Verzeichnisbereich","可执行的命令":"Ausführbare Befehle","禁止目录范围":"Verbotener Verzeichnisbereich","可执行命令":"Ausführbare Befehle","系统进程关闭":"Systemprozesse beenden","dc_ctdl":"Docker-Container stoppen und löschen","dc_idl":"Docker-Image löschen","tk_time":"Token-Zeit ändern","自定义资源路由":"Benutzerdefinierte Ressourcenroute","磁盘挂载":"Festplatte einhängen","ssh_sv":"SSH-Schlüssel auf der Festplatte speichern","外部软件路径":"Pfad der externen Software","log_del":"Dateien löschen, ausschneiden, umbenennen","内容更新":"Inhalt aktualisieren","标签编辑权限":"Berechtigung zum Bearbeiten von Tags","ssh代理":"SSH-Proxy","http代理":"HTTP-Proxy","浏览器代理":"Browser-Proxy","rdp代理":"RDP-Proxy","rtsp播放器":"RTSP-Player","角色":"Rolle","文件回收站":"Papierkorb","个人保护路径":"Persönlicher geschützter Pfad","系统保护路径":"Systemgeschützter Pfad","小于一分钟":"Weniger als eine Minute","分钟前":"Minuten ago","小时前":"Stunden ago","天前":"Tage ago","月前":"Monate ago","年前":"Jahre ago","挂载位置磁盘":"Festplatte am Mount-Punkt","信息":"Information","磁盘剩余":"Festplattenrest","文件系统":"Dateisystem","文件夹数":"Anzahl der Ordner","文件数":"Anzahl der Dateien","当前位置":"Aktuelle Position","输入文件名":"Dateinamen eingeben","o_stdo":"Mit Studio öffnen","o_img":"Mit Bildeditor öffnen","预览图片":"Bildvorschau","运行并实时查看":"Ausführen und live ansehen","实时查看":"Live ansehen","输入参数运行":"Mit Parametern ausführen","以文本打开":"Als Text öffnen","以日志打开":"Als Log öffnen","上传":"Hochladen","文件选项":"Dateioptionen","添加类目":"Kategorie hinzufügen","全部编辑":"Alle bearbeiten","输入类目名":"Kategorienamen eingeben","折叠":"Zusammenklappen","全部折叠":"Alle einklappen","(无内容)":"(Kein Inhalt)","请求头":"Anforderungsheader","请求体":"Anforderungstext","值":"Wert","上传文件":"Datei hochladen","下载到本地目录":"In lokales Verzeichnis herunterladen","本地地址":"Lokale Adresse","完成":"Abgeschlossen","结束":"Beenden","响应头":"Antwortheader","正在下载":"Wird heruntergeladen","输入标签名":"Tag-Namen eingeben","frm_lm":"Das Formular enthält Dateien. Aufgrund von Browserbeschränkungen kann nicht hinzugefügt werden.","非对称密钥":"Asymmetrischer Schlüssel","将覆盖密钥文件":"Schlüsseldatei wird überschrieben","加密算法":"Verschlüsselungsalgorithmus","输出格式":"Ausgabeformat","普通PEM":"Normales PEM","生成":"Generieren","ssh_dir":"In .ssh-Verzeichnis speichern","私钥":"Privat-Schlüssel","时间转换器":"Zeitkonverter","格式化时间":"Formatiere Zeit","毫秒":"Millisekunde","分秒":"Minute und Sekunde","实时信息":"Echtzeitinformationen","运行用户":"Ausführender Benutzer","当前系统":"Aktuelles System","进程":"Prozess","ld_wait":"Wird geladen, bitte warten...","选中":"Ausgewählt","创建用户":"Benutzer erstellen","升序":"Aufsteigend","降序":"Absteigend","dc_nne":"Docker kann nicht erkannt werden. Möglicherweise ist Docker auf dem Host nicht installiert oder die Container sind leer.","过滤镜像":"Bilder filtern","列表更新":"Liste aktualisieren","执行命令":"Befehl ausführen","打印日志":"Log ausgeben","删除容器":"Container löschen","删除镜像":"Bild löschen","doc_img":"Docker-Bild","doc_icf":"Sind Sie sicher, dass Sie das ausgewählte Bild löschen möchten?","系统运行于":"Das System läuft auf","全局变量":"Globale Variablen","up_conc":"Maximale Anzahl paralleler Datei-Uploads","单用户并发数量":"Parallele Anzahl pro Benutzer","系统并发数量":"Parallele Anzahl des Systems","big_res":"Sollen Breakpoints für große Dateien aktiviert werden?","big_sz":"Größe für die Bestimmung großer Dateien in MB","大文件并发数量":"Parallele Anzahl für große Dateien","big_ck":"Blockgröße für große Dateien in MB","页面资源路由":"Seitenressourcenroute","wf_rt":"Workflow-Auslöseroute","过期时间(s)":"Ablaufzeit (s)","文件路径":"Dateipfad","path_up":"Aktualisierung des systemgeschützten Pfads","path_md":"Änderung des PATH-Pfads","执行用户":"Ausführender Benutzer","执行":"Ausführen","wf_api":"Änderung der Workflow-Auslöse-API","up_lim":"Änderung der Einschränkung der Anzahl der hochgeladenen Dateien im Verzeichnis","功能权限":"Funktionsberechtigungen","角色备注":"Rollenbemerkung","pxy_off":"HTTP-Proxy-Download deaktiviert","工具功能":"Werkzeugfunktionen","全局变量设置":"Globale Variablen-Einstellungen","文件回收站修改":"Papierkorb ändern","文件权限":"Dateiberechtigungen","log_wr":"Dateien erstellen, hochladen, Inhalt aktualisieren, entpacken","只读目录范围":"Schreibgeschützter Verzeichnisbereich","更新":"Aktualisieren","use_env":"Standardmäßig Umgebungsvariablen verwenden","sync_sv":"Informationen an den ausgewählten Server synchronisieren","add_rot":"HTTP-Ressourcen-Wurzelverzeichnis hinzufügen","dl_here":"HTTP-Ressourcen in diesem Verzeichnis herunterladen","文件排序":"Dateien sortieren","系统默认":"Systemstandard","修改时间":"Änderungszeit","时间逆序":"Zeit rückwärts","时间顺序":"Zeit vorwärts","大小逆序":"Größe rückwärts","大小顺序":"Größe vorwärts","文件大小":"Dateigröße","网站标题":"Webseitentitel","通用设置":"Allgemeine Einstellungen","主题":"Thema","时区":"Zeitzone","时间":"Zeit","服务器时间":"Serverzeit","在线时间":"Onlinezeit","离线时间":"Offlinezeit","在线":"Online","离线":"Offline","功能文档":"Funktionsdokumentation","官网地址":"https://filecat.xiaobaidadada.fun/","远程代理":"Remote-Proxy","系统管理":"Systemverwaltung","网址导航":"Webadressnavigation","目录快捷命令":"Verzeichnis-Schnellbefehl","文件快捷命令":"Datei-Schnellbefehl","系统网络":"Systemnetzwerk","复制名字":"Namen kopieren","分享":"Teilen","复制绝对路径":"Absoluten Pfad kopieren","复制相对路径":"Relativen Pfad kopieren","切换目录":"Verzeichnis wechseln","统计信息":"Statistiken","更新AI知识库":"KI-Wissensdatenbank aktualisieren","exp_hr":"Verbleibende Ablaufzeit (Stunden)","可以为空":"Darf leer sein","自动加载":"Automatisch laden","本地知识库":"Lokale Wissensdatenbank","知识库加载信息":"Informationen zum Laden der Wissensdatenbank","最近一次加载":"Letzter Ladevorgang","加载进度":"Ladefortschritt","总文件数量":"Gesamtdateianzahl","总文件字符数量":"Gesamtanzahl der Zeichen in Dateien","总文件大小":"Gesamte Dateigröße","总耗时":"Gesamtzeit","上一页":"Vorherige Seite","目标地址":"Zieladresse","目标端口":"Zielport","连接状态":"Verbindungsstatus","个人设置":"Persönliche Einstellungen","系统设置":"Systemeinstellungen","文件后缀":"Dateisuffix","禁止执行的命令":"Verbotene Befehle","Ai 配置":"KI-Konfiguration","文件分享":"Dateifreigabe","输入跳转的目录":"Zielverzeichnis eingeben","文件分享列表":"Liste der Dateifreigaben","过期小时":"Ablauf in Stunden","下载次数":"Anzahl der Downloads","剩余时间":"Verbleibende Zeit","文件加载方式":"Dateilademodus","全部加载文件":"Alle Dateien laden","scrll_l":"Dateien seitenweise beim Scrollen laden","剩余时间(h)":"Verbleibende Zeit (h)","网络代理":"Netzwerkproxy","个人":"Personal","安装方式":"Installationsmethode","是否开启":"Aktiviert","系统启动执行":"Beim Systemstart ausführen","表达式":"Ausdruck","用户":"Benutzer","详细信息":"Details","服务器配置":"Serverkonfiguration","客户端列表":"Client-Liste","更多服务器":"Weitere Server","端口映射":"Portzuordnung","序号":"Nr.","服务器端口":"Serverport","转发客户端名称":"Weiterleitungs-Clientname","服务端口":"Dienstport","转发ip":"Weiterleitungs-IP","转发端口":"Weiterleitungsport","客户端代理配置":"Client-Proxy-Konfiguration","客户端桥接配置":"Client-Bridge-Konfiguration","远程地址":"Remote-Adresse","在线时长":"Online-Dauer","fwd_nm":"Weiterleitungs-Clientname","sv_ntf":"Speichern und den ersten Schlüssel und Port an den Client benachrichtigen","br_port":"Bridge-Server-Portliste","输入消息":"Nachricht eingeben","用户权限":"Benutzerberechtigungen","系统管理权限":"Berechtigungen für die Systemverwaltung","网络功能权限":"Berechtigungen für Netzwerkfunktionen","Ai 设置权限":"Berechtigungen für KI-Einstellungen","系统设置权限":"Berechtigungen für Systemeinstellungen","系统环境设置":"Systemumgebungseinstellungen","sys_env":"Seite für Systemumgebungseinstellungen","自定义路由页面":"Seite für benutzerdefinierte Routen","代理功能":"Proxy-Funktionen","其他功能":"Andere Funktionen","ddns":"DDNS","ai_page":"KI-Chat-Seite","pty cmd":"PTY-Befehl","wf_run":"Workflow-Ausführung","wf_user":"Benutzer der Workflow-Ausführung","cmd_rst":"filecat-restart-Neustartbefehl","cmd_upg":"filecat-upgrade-Aktualisierungsbefehl","cmd_dwn":"filecat-down-Befehl zum Schließen des Hauptprozesses","cmd_ai":"KI-Befehl (KI-Chat)","个性化设置":"Personalisierte Einstellungen","lgn_usr":"Benutzerinformationen bei Anmeldung anzeigen","个人环境":"Persönliche Umgebung","系统环境":"Systemumgebung","持久化":"Persistieren","个人环境设置":"Persönliche Umgebungs Einstellungen","其他参数":"Andere Parameter","父编号":"Eltern-ID","代理配置":"Proxy-Konfiguration","桥接配置":"Bridge-Konfiguration","内网穿透":"Intranet-Penetration","fc_pxy":"Filecat-Proxy-Zugriff","fc_pxyw":"Filecat-Proxy-Zugriff über Server-Frontend","fc_pxyr":"Benutzerdefinierte Filecat-Proxy-Adresse","原客户端":"Quell-Client","原目录":"Quell-Verzeichnis","目标客户端":"Ziel-Client","目标目录":"Ziel-Verzeichnis","忽略目录":"Ignoriertes Verzeichnis","双向同步":"Bidirektionale Synchronisation","客户端文件同步":"Client-Dateisynchronisation","客户端设置":"Client-Einstellungen","pxy_nln":"Proxyserver für lokale (Intranet-) Adressen umgehen","忽略ip":"IP ignorieren","ai_ask":"Alles den Server abfragen","本地目录":"Lokales Verzeichnis","响应体":"Antworttext","客户端功能":"Client-Funktionen","全量同步":"Vollständige Synchronisierung","公钥":"Öffentlicher Schlüssel","跟随系统":"Systemeinstellung folgen","字符消耗统计":"Zeichenverbrauchsstatistik","加载中...":"Lädt...","对话轮次":"Gesprächsrunden","AI输入字符":"KI-Eingabezeichen","AI输出字符":"KI-Ausgabezeichen","暂无统计数据":"Keine Statistiken verfügbar","会话":"Sitzungen","新会话":"Neue Sitzung","提示词":"Prompt","llm_pmt":"LLM-bearbeitbarer Prompt","LLM编辑开关":"LLM-Bearbeitungsschalter","编辑规则":"Bearbeitungsregeln","选择系统提示词":"System-Prompt auswählen","清空全部会话":"Alle Sitzungen löschen","cf_all":"Wirklich alle Chat-Sitzungen löschen?","cf_msgs":"Ausgewählte Nachrichten wirklich löschen?","cf_ses":"Ausgewählte Sitzungen wirklich löschen?","cf_one":"Diese Nachricht wirklich löschen?","批量选择":"Stapelauswahl","查看所有用户会话":"Sitzungen aller Benutzer","查看全部会话时不可发送消息":"Während des Anzeigens aller Sitzungen können keine Nachrichten gesendet werden","仅看我的会话":"Nur meine Sitzungen","取消批量选择":"Stapelauswahl abbrechen","删除选中消息":"Ausgewählte Nachrichten löschen","删除选中会话":"Ausgewählte Sitzungen löschen","切换模型":"Modell wechseln","添加文件":"Datei hinzufügen","无描述":"Keine Beschreibung","暂无工具":"Keine Werkzeuge","查看工具":"Werkzeuge anzeigen","加载工具":"Werkzeuge laden","系统会话提示词":"System-Sitzungs-Prompts","删除记录":"Eintrag löschen","手动加载":"Manuell laden","从索引删除":"Aus Index löschen","知识库开关":"Wissensdatenbank-Schalter","文本对话":"Textdialog","图片生成":"Bildgenerierung","向量嵌入":"Vektoreinbettung","图片参数设置":"Bildparametereinstellungen","更多属性":"Weitere Attribute","model类型":"Modelltyp","成为tool":"Werkzeug werden","操作":"Aktionen","查看Git提交":"Git-Commits anzeigen","Git":"Git","变更":"Changes","提交记录":"Commits","全选":"Select All","没有变更":"No changes","暂无提交记录":"No commits yet","分支":"Branch","git_msg":"Enter commit message...","提交":"Commit","暂存全部":"Stage All","暂存选中":"Stage Selected","取消暂存":"Unstage","已暂存":"Staged","已暂存全部":"All staged","已取消暂存":"Unstaged","请输入提交信息":"Please enter commit message","提交成功":"Commit successful","推送成功":"Push successful","拉取成功":"Pull successful","切换分支成功":"Branch switched","远程操作":"Remote Operations","拉取":"Pull","推送":"Push","强制推送":"Force Push","暂存工作区":"Stash","暂存工作区成功":"Stash successful","恢复工作区":"Stash Pop","恢复工作区成功":"Stash pop successful","刷新":"Refresh","请先选择文件":"Please select files first","提示:":"Tips:","git_stg":"Check files on the left, then use \\"Stage Selected\\" to add them to staging area","git_cmt":"Enter commit message and click \\"Commit\\"","git_cf":"If conflicts occur, please resolve them in shell before committing","git_frc":"\\"Force Push\\" will overwrite the remote branch, use with caution","配置表":"Config Table","自动升级":"Automatisches Upgrade","exe_tpl":"EXE Download-URL Vorlage","offcal":"Leer lassen, um die offiziellen GitHub Releases zu verwenden","检测频率(秒)":"Prüfintervall (Sekunden)","def_180":"Standard 180s (3 Minuten)","chk_10s":"Prüfintervall darf nicht weniger als 10 Sekunden betragen","ver_url":"Versionsprüfungs-URL","ver_req":"Versionsprüfungs-URL darf nicht leer sein","用户配置":"Benutzerkonfiguration","邮箱":"E-Mail","代理设置":"Proxy-Einstellungen","全局代理":"Globaler Proxy","仓库代理":"Repository-Proxy","修改":"Bearbeiten","用户配置已保存":"Benutzerkonfiguration gespeichert","代理配置已保存":"Proxy-Einstellungen gespeichert","pxy_clr":"Leer lassen, um Proxy zu löschen","pxy_nte":"Benutzerkonfiguration und globaler Proxy gelten für alle Repositories","pxy_url":"HTTP-Proxy-Adresse","pxy_tip":"Gilt für HTTP-Anfragen, die vom filecat-System ausgegeben werden (Versionsprüfung, Auto-Upgrade, DDNS, Befehlsdownload, benutzerdefinierte Weiterleitung usw.). Hinweis: Unter macOS sollte dies leer bleiben, wenn die System-Proxy bereits aktiviert ist, um eine doppelte Proxierung zu vermeiden.","端口扫描":"Port-Scan","目标主机":"Ziel-Host","起始端口":"Start-Port","结束端口":"End-Port","并发数":"Parallelität","超时(ms)":"Zeitüberschreitung (ms)","扫描":"Scannen","扫描结果":"Scan-Ergebnisse","扫描完成":"Scan abgeschlossen","扫描失败":"Scan fehlgeschlagen","正在扫描...":"Scannen...","未发现开放端口":"Keine offenen Ports gefunden","scan_in":"Parameter eingeben und auf Scannen klicken","hostreq":"Host-Adresse darf nicht leer sein","端口范围无效":"Ungültiger Port-Bereich","开放":"Offen","总计扫描":"Insgesamt gescannt","已发现":"Gefunden","当前":"Aktuell","扫描已取消":"Scan abgebrochen","自动换行":"Automatischer Umbruch","不换行":"Kein Umbruch","替换":"Ersetzen","env编辑":"Env bearbeiten","命令确认":"Befehlsbestätigung","命令检测开启":"Befehlsprüfung aktivieren","命令检测关闭":"Befehlsprüfung deaktivieren","命令检测已开启":"Befehlsprüfung aktiviert","命令检测已关闭":"Befehlsprüfung deaktiviert","此会话不再询问":"Diese Sitzung nicht mehr fragen","doc_pxy":"Docker-Proxykonfiguration","HTTP 代理":"HTTP-Proxy","pxy_htt":"HTTPS-Proxy","pxy_nne":"No Proxy","保存失败":"Speichern fehlgeschlagen","MD编辑器":"MD-Editor","行":"Zeile","列":"Spalte","默认":"Standard","删除行":"Zeile löschen","删除列":"Spalte löschen","上方插入行":"Zeile oberhalb einfügen","切换表头行":"Kopfzeile umschalten","合并单元格":"Zellen zusammenführen","拆分单元格":"Zelle teilen","下方插入行":"Zeile unterhalb einfügen","左侧插入列":"Spalte links einfügen","右侧插入列":"Spalte rechts einfügen","插入表格":"Tabelle einfügen","加载中":"Laden","打开失败":"Öffnen fehlgeschlagen","重启失败":"Neustart fehlgeschlagen","doc_cfg":"Docker-Konfiguration","名单视图":"Listenansicht","文本视图":"Textansicht","目标(To)":"Ziel (To)","动作":"Aktion","fw_from":"Quelle (From)","删除规则":"Regel löschen","规则编号":"Regelnummer","点击复制":"Zum Kopieren klicken","镜像加速":"Registry-Mirrors","不安全仓库":"Unsichere Registries","开启调试":"Debug aktivieren","数据存储目录":"Datenverzeichnis","存储驱动":"Speichertreiber","日志驱动":"Log-Treiber","fw_iptb":"iptables aktivieren","lve_rst":"Live-Restore","添加规则":"Regel hinzufügen","请填写端口号":"Bitte Port angeben","方向":"Richtung","协议":"Protokoll","来源地址":"Quelladresse","获取失败":"Abrufen fehlgeschlagen","进程环境变量":"Prozess-Umgebungsvariablen","端口实例":"Port-Instanz","srchbln":"Verzeichnis im leeren Suchmodus öffnen","搜索会话":"Sitzungen durchsuchen","sw_mdl":"Wechsel des KI-Modells erlauben","选择模型":"Modell auswählen","mv_self":"Ein Ordner kann nicht in sich selbst verschoben werden","nvdltp":"Die Lesezeichen-Funktion der Website-Navigation wurde entfernt. Die ursprünglichen Daten wurden in .url-Dateien umgewandelt. Öffnen Sie eine .url-Datei mit filecat, um denselben Schnellzugriff zu erhalten.","tmplctp":"Dateispeicherort: das Verzeichnis tempfile/temp_delete_sys_tag_name_260926 im filecat-Datenbankverzeichnis.","网站 Logo":"Website-Logo","lclorur":"Lokaler Dateipfad oder http(s)-Bild-URL","全部":"Alle","源码模式":"Quelltextmodus","实时编辑模式":"Live-Bearbeitungsmodus","编辑器设置":"Editor-Einstellungen","正文最大宽度":"Maximale Inhaltsbreite","正文左右边距":"Seitlicher Inhaltsabstand","正文字号":"Schriftgröße des Inhalts","行高":"Zeilenhöhe","as_iv":"Auto-Speicher-Intervall (Sek.)","as_num":"Bitte eine ganze Zahl ab 0 eingeben","恢复默认":"Standard wiederherstellen","保存中":"Wird gespeichert","预览":"Vorschau","nprmtp":"Sie sind nicht berechtigt, diese Einstellung zu ändern. Unten wird die aktuelle Konfiguration angezeigt.","md_set":"MD-Editor-Einstellungen","目录挂载":"Verzeichnis-Mount","总开关":"Hauptschalter","挂载":"Einbinden","挂载到网盘":"In Cloud-Speicher einbinden","编辑挂载配置":"Mount-Einstellungen bearbeiten","取消挂载":"Aushängen","确认取消挂载":"Aushängen bestätigen","已取消挂载":"Ausgehängt","该目录尚未挂载":"Dieses Verzeichnis ist nicht eingebunden","挂载目录":"Mount-Verzeichnis","只读":"Nur Lesen","挂载类型":"Mount-Typ","显示名称":"Anzeigename","标识色":"Markierungsfarbe","只读模式":"Nur-Lesen-Modus","测试连接":"Verbindung testen","测试中":"Wird getestet","连接成功":"Verbindung erfolgreich","连接失败":"Verbindung fehlgeschlagen","请选择挂载类型":"Bitte wählen Sie einen Mount-Typ","请填写":"Bitte ausfüllen: ","未授权":"Nicht autorisiert","服务地址":"Serveradresse","起始目录":"Startverzeichnis","留空表示根目录":"Leer lassen für das Stammverzeichnis","主机":"Host","默认 22":"Standard 22","私钥内容":"Inhalt des privaten Schlüssels","与私钥二选一":"Entweder dies oder den privaten Schlüssel","与密码二选一":"Entweder dies oder das Passwort","存储桶":"Bucket","区域":"Region","强制路径风格":"Pfadstil erzwingen","授权账号":"Autorisiertes Konto","百度网盘授权":"Baidu-Cloud-Autorisierung","去授权":"Autorisieren","完成授权":"Autorisierung abschließen","授权码":"Autorisierungscode","回调地址":"Weiterleitungs-URI","rqappky":"Bitte AppKey eingeben","rq_scrt":"Bitte SecretKey eingeben","请填写授权码":"Bitte Autorisierungscode eingeben","svappfr":"Bitte zuerst die App-Konfiguration speichern","授权成功":"Autorisierung erfolgreich","账号可用":"Konto ist verfügbar","账号不可用":"Konto ist nicht verfügbar","校验":"Prüfen","已授权账号":"Autorisierte Konten","已删除":"Gelöscht","处理中":"Wird verarbeitet","AppKey":"AppKey","网盘挂载":"Cloud-Speicher-Mount","凭据管理":"Anmeldedaten","凭据":"Anmeldedaten","新增凭据":"Anmeldedaten hinzufügen","凭据已丢失":"Anmeldedaten fehlen","挂载列表":"Mounts","新增挂载":"Mount hinzufügen","munt_rq":"Mount-Verzeichnis darf nicht leer sein","请选择凭据":"Bitte Anmeldedaten auswählen","请选择类型":"Bitte einen Typ auswählen","启用":"Aktiviert","已停用":"Deaktiviert","确认删除":"Löschen bestätigen:","nmuntpr":"Das aktuelle Konto hat keine Berechtigung für Verzeichnis-Mounts","百度网盘":"Baidu Cloud","应用配置":"App-Einstellungen","授权":"Autorisieren","授权失败":"Autorisierung fehlgeschlagen","strtdrt":"Startverzeichnis","授权检测":"Autorisierung prüfen","scrtkep":"SecretKey leer lassen, um unverändert zu lassen","编辑应用":"App bearbeiten","新增授权账号":"Autorisiertes Konto hinzufügen","一键授权":"Ein-Klick-Autorisierung","outh_ob":"Manuell (oob)","pst_cd":"Autorisierungscode einfügen","确认授权":"Autorisierung bestätigen","授权检测/刷新":"Prüfen / aktualisieren","检测完成":"Prüfung abgeschlossen","导入":"importiert","账号名":"Kontoname","百度账号":"Baidu-Konto","网盘昵称":"Cloud-Speicher-Nickname","授权状态":"Autorisierungsstatus","过期时间":"Läuft ab am","授权时间":"Autorisiert am","已授权":"Autorisiert","已过期":"Abgelaufen","停用":"Deaktivieren","已配置":"Konfiguriert","未配置":"Nicht konfiguriert","网盘使用":"Cloud-Speicher aktiv","自动刷新":"Automatisch aktualisieren","编辑账号":"Konto bearbeiten","使用":"Verwenden","当前为挂载目录":"Eingebundenes Verzeichnis","启用挂载":"Mounts aktivieren","已启用":"Aktiviert","挂载已启用":"Mounts aktiviert","挂载已停用":"Mounts deaktiviert","muntont":"Mounts aktiviert, zum Deaktivieren klicken","muntoff":"Mounts deaktiviert, zum Aktivieren klicken","凭证管理":"Anmeldedaten","授权方式":"Autorisierungsmodus","去授权(一键)":"Autorisieren (Ein-Klick)","去授权(手动)":"Autorisieren (manuell)","保存应用配置":"App-Konfiguration speichern","atathtp":"Ein-Klick: Nach der Autorisierung kehren Sie automatisch hierher zurück und das Konto wird hinzugefügt","atathnt":"Ein-Klick erfordert, dass /mount/baidu/callback dieses Dienstes als Weiterleitungs-URI in der Baidu-Konsole registriert wird","pstatht":"Manuell: keine Weiterleitungs-URI nötig. Kopieren Sie nach der Autorisierung den Code von Baidus Seite, fügen Sie ihn unten ein und klicken Sie auf Abschließen","crd_tp":"Ein Zugangsdatum ist die Kontoinformation zum Verbinden mit einem Cloud-Speicher / Remote-Host. Es kann von mehreren Einhängepunkten gemeinsam genutzt werden; eine Änderung wirkt sofort überall.","bidacct":"Baidu-Netdisk-Konten werden hier nicht verwaltet. Autorisieren Sie sie im untenstehenden Bereich \\"Baidu Netdisk\\"; das zugehörige Konto wird nach der Autorisierung automatisch erstellt.","pwdkept":"Beim Bearbeiten bedeutet ein leeres Passwortfeld, dass der ursprüngliche Wert beibehalten wird.","tstbfrs":"Vor dem Speichern können Sie auf \\"Verbindung testen\\" klicken, um das Konto zu prüfen.","prtwbdv":"Ein universelles Dateiprotokoll, das von Jianguoyun, Synology NAS, Nextcloud, Alist und weiteren unterstützt wird. Eine Dienstadresse plus ein Konto genügen, um das entfernte Verzeichnis zu durchsuchen.","prtsftp":"Greift über SSH auf ein Verzeichnis eines entfernten Servers zu und überträgt Dateien über das SFTP-Subsystem. Ideal, um ein Verzeichnis einer anderen Linux-Maschine einzuhängen.","prt_s3":"Objektspeicher-Dienste, die über das S3-Protokoll erreichbar sind, z. B. MinIO, Alibaba Cloud OSS, Tencent COS, Qiniu und Cloudflare R2. Erfordert Endpunkt, Bucket und ein Schlüsselpaar.","深搜":"Tiefensuche","搜索":"Suchen","搜索中":"Suche läuft","范围":"Bereich","结果过多":"Zu viele Treffer, bitte Suchbegriff eingrenzen","已显示":"Angezeigt","搜文件名":"Dateiname rekursiv suchen","搜到该处":"Zum Ordner springen","打开所在目录":"Ordner öffnen","输入后搜":"Dateinamen eingeben und Enter drücken","无匹配":"Keine passenden Dateien gefunden","结果截断":"Zu viele Treffer, nur die ersten 500","缩放调整":"Zoom anpassen","缩放调整成功":"Zoom erfolgreich angepasst","缩放百分比":"Zoom-Prozentsatz","未加载":"Nicht geladen","加载成功":"Geladen","加载失败":"Laden fehlgeschlagen","个工具":"Tools","No share found":"Keine Freigabe gefunden","Enter host first":"Bitte zuerst Host eingeben","下一步":"Weiter","上一步":"Zurück","共享目录":"Freigabeordner","prt_smb":"Windows-Freigabe (SMB/CIFS). Host und Konto eingeben, dann Freigabenamen aus der Liste wählen.","prt_bd":"Baidu Netdisk. App auf der Baidu Open Platform anlegen, AppKey / SecretKey eintragen, dann Konto autorisieren.","没有找到共享":"Keine Freigaben gefunden","粘贴授权码 code":"Autorisierungscode einfügen","重新授权":"Erneut autorisieren","请选择账号":"Bitte ein Konto auswählen","请填写备注":"Bitte eine Notiz eingeben","账号已丢失":"Konto fehlt","已暂存的更改":"Bereitgestellte Änderungen","全部暂存":"Alle bereitstellen","全部取消暂存":"Alle zurücksetzen","暂存":"Bereitstellen","无差异":"Keine Unterschiede","二进制文件":"Binärdatei","单栏":"Einspaltig","并排":"Nebeneinander","点击左侧文件查看差异":"Datei links anklicken, um den Diff anzuzeigen","未跟踪文件无差异":"Nicht verfolgte Dateien haben keinen Diff","请先暂存要提交的文件":"Bitte zuerst die Dateien bereitstellen, die committet werden sollen","没有已更改的文件":"Keine geänderten Dateien","未暂存":"Nicht bereitgestellt","逐行归属":"Zeilenherkunft","无法读取该文件的归属信息":"Herkunftsinformationen können nicht gelesen werden","全部文件":"Alle Dateien","新建分支":"Neuer Branch","删除分支":"Branch löschen","确认删除分支":"Branch löschen?","合并到此分支":"In diesen Branch mergen","新分支名":"Neuer Branch-Name","当前分支":"Aktueller Branch","切换到":"Wechseln zu","分支创建成功":"Branch erstellt","分支删除成功":"Branch gelöscht","合并成功":"Zusammengeführt","标签":"Tags","新建标签":"Neuer Tag","标签名":"Tag-Name","暂无标签":"Keine Tags","标签创建成功":"Tag erstellt","标签删除成功":"Tag gelöscht","标签推送成功":"Tag übertragen","删除标签":"Tag löschen","确认删除标签":"Tag löschen?","请输入标签名":"Tag-Name eingeben","推送到远程":"Zum Remote pushen","基于提交":"Basierend auf Commit","基于当前提交":"Basierend auf aktuellem Commit","暂存工作区记录":"Stash-Einträge","暂无记录":"Keine Einträge","恢复并删除":"Pop","已恢复并删除记录":"Wiederhergestellt und entfernt","已应用":"Angewendet","远程分支":"Remote-Branches","拉取远程信息":"Abrufen","拉取并清理已删除分支":"Abrufen und bereinigen","未配置远程仓库":"Kein Remote konfiguriert","签出到本地":"Lokal auschecken","拉取完成":"Abruf abgeschlossen","冲突":"Konflikte","采用我方版本":"Unsere Version","采用对方版本":"Deren Version","标记已解决":"Als gelöst markieren","标记全部已解决":"Merge abschließen","放弃合并":"Merge abbrechen","确认放弃当前合并并恢复到操作前状态":"Abbrechen und vorherigen Zustand wiederherstellen?","已解决冲突":"Konflikt gelöst","已放弃合并":"Merge abgebrochen","合并已完成":"Merge abgeschlossen","撤销提交":"Commit zurücksetzen","将生成一个反向提交来撤销":"Erstellt einen Rückwärts-Commit zum Zurücksetzen","已撤销":"Zurückgesetzt","摘取提交":"Cherry-Pick","将该提交应用到当前分支":"Diesen Commit auf den aktuellen Branch anwenden","摘取成功":"Cherry-Pick ausgeführt","搜索提交":"Commits suchen","提交信息关键词":"Commit-Nachricht","作者":"Autor","请输入搜索条件":"Suchkriterien eingeben","操作历史":"Verlauf","回退到此处":"Hierher zurücksetzen","强制回退(丢弃改动)":"Hard-Reset (Änderungen verwerfen)","此操作将永久丢弃未提交的改动":"Dies verwirft nicht committete Änderungen dauerhaft","已回退":"Zurückgesetzt","已强制回退":"Hard-Reset ausgeführt","子模块":"Submodule","无子模块":"Keine Submodule","初始化并更新子模块":"Submodule initialisieren und aktualisieren","子模块更新完成":"Submodule aktualisiert","未初始化":"Nicht initialisiert","与记录不一致":"Abweichend vom Eintrag","正常":"Normal","当前提交":"Aktueller Commit","领先上游":"Vor dem Upstream","落后上游":"Hinter dem Upstream","钩子":"Hooks","停用钩子":"Hook deaktivieren","确认删除并停用":"Löschen und deaktivieren","保存并启用":"Speichern und aktivieren","已保存并启用":"Gespeichert und aktiviert","与工作区对比":"Mit Arbeitsverzeichnis vergleichen","仓库":"Repos","初始化仓库":"Repository initialisieren","克隆仓库":"Repository klonen","仓库初始化成功":"Repository initialisiert","克隆成功":"Geklont","目录名":"Verzeichnisname","请输入目录名":"Verzeichnisnamen eingeben","仓库地址":"Repository-URL","请输入仓库地址":"Repository-URL eingeben","当前目录下没有仓库":"Keine Repositories vorhanden","进入":"Öffnen","修改最后一次提交":"Letzten Commit ändern","已修改最后一次提交":"Letzter Commit geändert","分支比较":"Branches vergleichen","两个分支没有差异":"Keine Unterschiede zwischen Branches","确认删除远程分支":"Remote-Branch löschen","该分支会从远程仓库删除":"Dieser Branch wird aus dem Remote-Repository gelöscht","删除远程分支":"Remote-Branch löschen","将":"Merge","合并到":"in","未推送":"Nicht gepusht","已到底部":"Keine weiteren","没有可提交的更改":"Keine Änderungen","存在未暂存的改动,是否一并暂存并提交?":"Es gibt nicht bereitgestellte Änderungen. Zusammen bereitstellen und committen?","二进制文件无法比较":"Binärdatei kann nicht verglichen werden","请选择文件查看改动":"Datei auswählen, um Änderungen zu sehen","clk_edt":"Zum Bearbeiten klicken","rendering":"Wird gerendert…","思维导图":"Mindmap","新窗口打开":"In neuem Tab öffnen","已选":"Ausgewählt","复制所选":"Auswahl kopieren","删除所选":"Auswahl löschen","全部复制":"Alles kopieren","多选":"Auswählen","wbvpn_allow":"WebVPN-Ziel-Whitelist","wbvpn_allow_ph":"Ein Eintrag pro Zeile: 192.168.1.0/24 (CIDR) / 192.168.1.1 (IP) / router.local (Domain, exakt, keine Subdomains)","wbvpn_tip":"WebVPN-Ziel-Whitelist. Ein Eintrag pro Zeile, drei Formate:\\n · CIDR-Bereich: 192.168.1.0/24\\n · Exakte IP: 192.168.1.1 (auch 10.0.0.5, fd00::/8, ::1)\\n · Exakte Domain: router.local, nas.example.com (exakt, Subdomains NICHT enthalten)\\nÖffentliche Adressen sind standardmäßig erlaubt. Private, Loopback-, Link-Local-, Cloud-Metadaten- (169.254.169.254) und reservierte Adressen sind standardmäßig verboten. Fehlerhafte Zeilen werden ignoriert.","wbvpn_port_range":"Proxy-Portbereich","wbvpn_port_tip":"Jedes Ziel belegt einen eigenen Port. Öffnen Sie die Zugriffs-URL, um die Seite zu öffnen; der Pfad bleibt sauber, SPA-Routing funktioniert und die Seiten sind per Origin getrennt.","wbvpn_port_tip2":"Zugriff erfordert Anmeldung: das Öffnen von hier überträgt einmalig ein Token, danach hält ein Cookie die Sitzung. Ziele unterliegen weiterhin der Whitelist/Adressrichtlinie.","wbvpn_port_tip3":"Links auf der Seite, die auf ein aktives Ziel zeigen, werden automatisch auf den Port des Ziels umgeschrieben, sodass Klicks im Proxy bleiben; Domains, die nicht als Ziel konfiguriert sind, bleiben unverändert.","网页代理目标":"Proxy-Ziele","访问地址":"Zugriffs-URL","打开":"Öffnen","已复制":"Kopiert","添加成功":"Hinzugefügt","目标地址不能为空":"Zieladresse darf nicht leer sein","目标地址例如":"Zieladresse, z. B. 192.168.1.1:8080","网页代理":"Web-Proxy","当前窗口打开":"Im aktuellen Tab öffnen","修改成功":"Geändert","浏览器代理编辑":"Browser-Proxy-Bearbeitung","已禁用":"Deaktiviert","prt_local":"Lokales Verzeichnis. Geben Sie einen vorhandenen absoluten Pfad auf diesem Rechner als Quelle an; nach dem Einbinden können Sie ihn in filecat als Verzeichnislink nutzen.","移动到最上":"Nach oben","移动到最下":"Nach unten","会话设置":"Sitzungseinstellungen","服务器工作目录":"Arbeitsverzeichnis auf dem Server","服务器工作目录提示":"z. B. D:\\\\projects\\\\myapp","AI 聊天":"KI-Chat","动态域名解析":"Dynamisches DNS","平台":"Anbieter","账号凭证":"Anmeldedaten","域名绑定":"Domain-Bindung","IP 来源":"IP-Quelle","域名":"Domain","多个域名用空格分隔":"Mehrere Domains durch Leerzeichen trennen","绑定":"Bindung","填写格式":"Format","请填写账号凭证":"Bitte Anmeldedaten eingeben","确定删除吗":"Löschen bestätigen?","ddns_help_1":"Konfigurieren Sie DDNS, um DNS-Einträge automatisch mit Ihrer aktuellen öffentlichen IP zu aktualisieren.","ddns_help_2":"IP-Quellen umfassen lokale Netzwerkschnittstellen und benutzerdefinierte HTTP-Endpunkte.","请输入地址":"Bitte URL eingeben","IP 来源管理":"IP-Quellen verwalten","暂无数据":"Keine Daten","http_source_tip":"Fügen Sie einen HTTP-Endpunkt hinzu, der Ihre öffentliche IP zurückgibt.","同步间隔":"Sync-Intervall","账号状态":"Konto","上次同步":"Letzte Sync","验证":"Prüfen","未验证":"Unbestätigt","失败":"Fehlgeschlagen","同步完成":"Synchronisierung abgeschlossen","间隔不能小于 10 秒":"Intervall muss mindestens 10 Sekunden betragen","文字":"Text","请填写完整的账号凭证":"Bitte alle Anmeldefelder ausfüllen"}'),s=JSON.parse('{"title":"FileCat","修改密码":"パスワードを変更","自定义auth":"カスタム認証","tk_exp":"トークン有効期限","目标":"ターゲット","目标列表":"ターゲット一覧","被同步的源目录":"同期するソースディレクトリ","成功":"成功","已开启":"有効","已关闭":"無効","sy_tp1":"設定ファイルやコードファイルなど、小さいファイルのみ対応しています","sy_tp2":"デフォルトではファイル変更後でないと同期されません。全量同期を有効にすると、そのクライアントは接続のたびに全ファイルを再帰同期します。","sy_tp3":"1つのタスクに複数のターゲットを設定でき、それぞれにディレクトリと全量同期を指定できます。","立即同步":"今すぐ同期","已触发同步":"同期を開始しました","操作失败":"操作に失敗しました","tsk_off":"まずタスクを有効にして保存してください","mnt_type":"マウント種別","cred_sel":"資格情報","lcl_abs":"マウントするローカル絶対パス","rem_dir":"リモート先ディレクトリ","disp_only":"一覧に表示する名前","tag_pub":"タグ編集は全員に公開されます","https_s":"HTTPS 設定","ssl_crt":"SSL 証明書パス","ssl_key":"SSL 秘密鍵パス","crt_pth":"証明書ファイルパス (cert.pem/fullchain.pem)","ky_pth":"秘密鍵ファイルパス (privkey.pem)","语言":"言語","文件夹路径":"フォルダパス","编号":"番号","路径":"パス","是否默认":"デフォルトか?","备注":"備考","编辑SQL":"SQL編集","SQL 预设":"SQLプリセット","耗时":"経過時間","确认":"確認","请输入备注":"備考を入力してください","查询全部表":"全テーブルをクエリ","SQL预设设置":"SQLプリセット設定","SQL预设":"SQLプリセット","更新保存":"更新して保存","创建新预选项":"新しいプリセットを作成","添加预设":"プリセットを追加","SQL代码":"SQLコード","保存成功":"保存しました","大纲":"アウトライン","新建主题":"新規テーマ","编辑主题":"テーマを編集","删除主题":"テーマを削除","主题名称":"テーマ名","请输入主题名称":"テーマ名を入力","主题实时预览":"リアルタイムプレビュー","删除成功":"削除しました","删除失败":"削除に失敗","cf_thm":"このテーマを削除しますか?","导出PDF":"PDFを書き出す","no_head":"見出しがまだありません","未命名标题":"無題の見出し","更新成功":"更新しました","创建成功":"作成しました","sql_in":"SQL文を入力してください","新密码":"新しいパスワード","新账号":"新しいアカウント","关闭":"閉じる","开启":"開く","展开":"展開","指定时间":"指定時間","永不过期":"期限なし","清空token":"トークンをクリア","保存":"保存","确定":"確定","确定修改":"変更を確定","删除":"削除","添加":"追加","系统":"システム","follow_sys":"システム設定に従う","no_theme":"テーマなし","自定义页面路由":"カスタムページルート ","api_rt":"カスタムAPIルート","跳转路由":"ジャンプルート","路由":"ルート","文件":"ファイル","自定义路由":"カスタムルート","编辑":"編集","查看":"表示","默认配置":"デフォルト設定","设置":"設定","退出登录":"ログアウト","虚拟网络":"仮想ネットワーク","系统信息":"システム情報","工具箱":"ツールボックス","索引":"インデックス","文件夹":"フォルダ","客户端":"クライアント","服务器":"サーバー","服务端":"サーバー側","基本信息":"基本情報","系统性能":"システム性能","总容量":"総容量","剩余":"残り","使用率":"使用率","内存":"メモリ","系统进程":"システムプロセス","doc_ct":"Dockerコンテナ","物理硬盘":"物理ハードディスク","文件硬盘":"ファイルハードディスク","容器":"コンテナ","名字":"名前","镜像":"イメージ","命令":"コマンド","状态":"状態","选择":"選択","过滤":"フィルター","账号":"アカウント","密码":"パスワード","目录":"ディレクトリ","私钥路径":"秘密鍵パス","连接地址":"接続アドレス","端口":"ポート","port":"ポート","host":"ホスト","key":"キー","代理":"プロキシ","浏览器":"ブラウザ","网络唤醒":"Wake-on-LAN","时间工具":"時間ツール","切换样式":"スタイルを切り替える","更多":"もっと","创建文件夹":"フォルダを作成","创建文件":"ファイルを作成","连接":"接続","地址":"アドレス","目标设备":"ターゲットデバイス","发送":"送信","腾讯":"テンセント","云":"クラウド","厂商":"メーカー","名称":"名前","厂商名称":"メーカー名","类型":"タイプ","容量":"容量","挂载位置":"マウント位置","剩余容量":"残り容量","登录":"ログイン","是":"はい","否":"いいえ","秒":"秒","流量转发":"トラフィック転送","点对点":"ピアツーピア","模式":"モード","虚拟":"仮想","在线状态":"オンライン状態","物理":"物理","账号设置":"アカウント設定","说明":"説明","文件系统类型":"ファイルシステムタイプ","机械":"機械式","固态":"SSD","复制":"コピー","剪切":"切り取り","压缩":"圧縮","下载":"ダウンロード","重命名":"名前を変更","创建文本文件":"テキストファイルを作成","解压":"解凍","转换到":"変換する","自定义":"カスタム","粘贴到此处":"ここに貼り付ける","创建":"作成","制造商":"メーカー","总内存":"総メモリ","最大":"最大","品牌":"ブランド","逻辑核心":"論理コア","搜索当前目录":"現在のディレクトリを検索","压缩文件":"ファイルを圧縮","取消":"キャンセル","运行":"実行","格式":"形式","压缩到":"圧縮先","进度":"進捗","解压到":"解凍先","当前目录":"現在のディレクトリ","解压文件":"ファイルを解凍","视频格式转换":"ビデオ形式変換","gen_dir":"生成ファイルのターゲットファイルはこのディレクトリ内にあります","ff_fmt":"ffmpegがサポートするターゲット形式","del_f":"選択したファイルを削除しますか?","输入目录名":"ディレクトリ名を入力","cut_ovr":"切り取り(上書き)を確認","cp_ovr":"コピー(上書き)を確認","修改名字":"名前を変更","输入新名字":"新しい名前を入力","个文件正在上传":"個のファイルがアップロード中","确定删除":"削除を確定","是否删除":"削除しますか?","输入文本名":"テキスト名を入力","添加索引":"インデックスを追加","物理核心":"物理コア","创建目录":"ディレクトリを作成","访问目录":"ディレクトリにアクセス","mac_dst":"ターゲットデバイスのMACアドレス","要代理的url":"プロキシするURL","系统代理端口":"システムプロキシポート","返回":"戻る","不允许为空":"空にできません","ff_none":"ffmpegが見つかりません","disk":"ディスク","part":"パーティション","lvm":"論理ボリューム管理","网址":"ウェブサイトURL","环境":"環境","外部软件":"外部ソフトウェア","保护路径":"保護パス","软件":"ソフトウェア","是否安装":"インストールされていますか?","角色管理":"ロール管理","用户管理":"ユーザー管理","角色id":"ロールID","角色名":"ロール名","用户id":"ユーザーID","用户名":"ユーザー名","目录范围":"ディレクトリ範囲","可执行的命令":"実行可能なコマンド","禁止目录范围":"禁止ディレクトリ範囲","可执行命令":"実行可能なコマンド","系统进程关闭":"システムプロセスを終了","dc_ctdl":"Dockerコンテナを停止、削除","dc_idl":"Dockerイメージを削除","tk_time":"トークン時間を変更","自定义资源路由":"カスタムリソースルート","磁盘挂载":"ディスクをマウント","ssh_sv":"SSHキーをディスクに保存","外部软件路径":"外部ソフトウェアのパス","log_del":"ファイルを削除、切り取り、名前変更","内容更新":"内容更新","标签编辑权限":"タグ編集権限","ssh代理":"SSHプロキシ","http代理":"HTTPプロキシ","浏览器代理":"ブラウザプロキシ","rdp代理":"RDPプロキシ","rtsp播放器":"RTSPプレーヤー","角色":"ロール","文件回收站":"ゴミ箱","个人保护路径":"個人保護パス","系统保护路径":"システム保護パス","小于一分钟":"1分未満","分钟前":"分前","小时前":"時間前","天前":"日前","月前":"月前","年前":"年前","挂载位置磁盘":"マウント位置のディスク","信息":"情報","磁盘剩余":"ディスク残量","文件系统":"ファイルシステム","文件夹数":"フォルダ数","文件数":"ファイル数","当前位置":"現在の位置","输入文件名":"ファイル名を入力","o_stdo":"Studioで開く","o_img":"画像エディタで開く","预览图片":"画像をプレビュー","运行并实时查看":"実行してリアルタイムで表示","实时查看":"リアルタイムで表示","输入参数运行":"パラメータを入力して実行","以文本打开":"テキストとして開く","以日志打开":"ログとして開く","上传":"アップロード","文件选项":"ファイルオプション","添加类目":"カテゴリを追加","全部编辑":"すべて編集","输入类目名":"カテゴリ名を入力","折叠":"折りたたむ","全部折叠":"すべて折りたたむ","(无内容)":"(コンテンツなし)","请求头":"リクエストヘッダー","请求体":"リクエストボディ","值":"値","上传文件":"ファイルをアップロード","下载到本地目录":"ローカルディレクトリにダウンロード","本地地址":"ローカルアドレス","完成":"完了","结束":"終了","响应头":"レスポンスヘッダー","正在下载":"ダウンロード中","输入标签名":"タグ名を入力","frm_lm":"フォームにファイルが含まれているため、ブラウザの制限により追加できません。","非对称密钥":"非対称鍵","将覆盖密钥文件":"鍵ファイルを上書きします","加密算法":"暗号化アルゴリズム","输出格式":"出力形式","普通PEM":"通常のPEM","生成":"生成","ssh_dir":".sshディレクトリに保存","私钥":"秘密鍵","时间转换器":"時間変換ツール","格式化时间":"時間をフォーマット","毫秒":"ミリ秒","分秒":"分と秒","实时信息":"リアルタイム情報","运行用户":"実行ユーザー","当前系统":"現在のシステム","进程":"プロセス","ld_wait":"読み込み中、お待ちください...","选中":"選択中","创建用户":"ユーザーを作成","升序":"昇順","降序":"降序","dc_nne":"Dockerが検出されません。ホストにDockerがインストールされていないか、コンテナが空の可能性があります。","过滤镜像":"イメージをフィルタリング","列表更新":"リストを更新","执行命令":"コマンドを実行","打印日志":"ログを出力","删除容器":"コンテナを削除","删除镜像":"イメージを削除","doc_img":"Dockerイメージ","doc_icf":"選択したイメージを削除しますか?","系统运行于":"システムは次で動作しています","全局变量":"グローバル変数","up_conc":"ファイルアップロードの最大同時実行数制限","单用户并发数量":"単一ユーザーの同時実行数","系统并发数量":"システムの同時実行数","big_res":"大きなファイルのブレークポイントを有効にするか?","big_sz":"大きなファイルの判断サイズ(MB)","大文件并发数量":"大きなファイルの同時実行数","big_ck":"大きなファイルのブロックサイズ(MB)","页面资源路由":"ページリソースルート","wf_rt":"ワークフロートリガールート","过期时间(s)":"有効期限(s)","文件路径":"ファイルパス","path_up":"システム保護パスの更新","path_md":"PATHパスの変更","执行用户":"実行ユーザー","执行":"実行","wf_api":"ワークフロートリガーAPIの変更","up_lim":"ディレクトリのファイルアップロード数制限の変更","功能权限":"機能権限","角色备注":"ロール備考","pxy_off":"HTTPプロキシダウンロードを無効化","工具功能":"ツール機能","全局变量设置":"グローバル変数設定","文件回收站修改":"ゴミ箱を変更","文件权限":"ファイル権限","log_wr":"ファイルを作成、アップロード、内容更新、解凍","只读目录范围":"読み取り専用ディレクトリ範囲","更新":"更新","use_env":"デフォルトで環境変数を使用","sync_sv":"選択したサーバーに情報を同期","add_rot":"HTTPリソースのルートディレクトリを追加","dl_here":"このディレクトリでHTTPリソースをダウンロード","文件排序":"ファイルを並べ替える","系统默认":"システムデフォルト","修改时间":"更新時間","时间逆序":"時間の逆順","时间顺序":"時間の順序","大小逆序":"サイズの逆順","大小顺序":"サイズの順序","文件大小":"ファイルサイズ","网站标题":"ウェブサイトタイトル","通用设置":"一般設定","主题":"テーマ","时区":"タイムゾーン","时间":"時間","服务器时间":"サーバー時間","在线时间":"オンライン時間","离线时间":"オフライン時間","在线":"オンライン","离线":"オフライン","功能文档":"機能ドキュメント","官网地址":"https://filecat.xiaobaidadada.fun/","远程代理":"リモートプロキシ","系统管理":"システム管理","网址导航":"ウェブサイトナビゲーション","目录快捷命令":"ディレクトリショートカットコマンド","文件快捷命令":"ファイルショートカットコマンド","系统网络":"システムネットワーク","复制名字":"名前をコピー","分享":"共有","复制绝对路径":"絶対パスをコピー","复制相对路径":"相対パスをコピー","切换目录":"ディレクトリを切り替え","统计信息":"統計情報","更新AI知识库":"AIナレッジベースを更新","exp_hr":"残り有効時間(時間)","可以为空":"空でも可","自动加载":"自動読み込み","本地知识库":"ローカルナレッジベース","知识库加载信息":"ナレッジベース読み込み情報","最近一次加载":"直近の読み込み","加载进度":"読み込み進捗","总文件数量":"総ファイル数","总文件字符数量":"総ファイル文字数","总文件大小":"総ファイルサイズ","总耗时":"総所要時間","上一页":"前のページ","目标地址":"ターゲットアドレス","目标端口":"ターゲットポート","连接状态":"接続状態","个人设置":"個人設定","系统设置":"システム設定","文件后缀":"ファイル拡張子","禁止执行的命令":"禁止コマンド","Ai 配置":"AI設定","文件分享":"ファイル共有","输入跳转的目录":"移動先ディレクトリを入力","文件分享列表":"ファイル共有リスト","过期小时":"有効期限(時間)","下载次数":"ダウンロード回数","剩余时间":"残り時間","文件加载方式":"ファイル読み込み方法","全部加载文件":"すべてのファイルを読み込む","scrll_l":"ページスクロールでファイルを読み込む","剩余时间(h)":"残り時間 (h)","网络代理":"ネットワークプロキシ","个人":"個人","安装方式":"インストール方法","是否开启":"有効","系统启动执行":"システム起動時に実行","表达式":"式","用户":"ユーザー","详细信息":"詳細情報","服务器配置":"サーバー設定","客户端列表":"クライアント一覧","更多服务器":"その他のサーバー","端口映射":"ポートマッピング","序号":"番号","服务器端口":"サーバーポート","转发客户端名称":"転送クライアント名","服务端口":"サービスポート","转发ip":"転送IP","转发端口":"転送ポート","客户端代理配置":"クライアントプロキシ設定","客户端桥接配置":"クライアントブリッジ設定","远程地址":"リモートアドレス","在线时长":"オンライン時間","fwd_nm":"転送クライアント名","sv_ntf":"保存してクライアントに最初のキーとポートを通知","br_port":"ブリッジサーバーポート一覧","输入消息":"メッセージを入力","用户权限":"ユーザー権限","系统管理权限":"システム管理権限","网络功能权限":"ネットワーク機能権限","Ai 设置权限":"AI設定権限","系统设置权限":"システム設定権限","系统环境设置":"システム環境設定","sys_env":"システム環境設定ページ","自定义路由页面":"カスタムルートページ","代理功能":"プロキシ機能","其他功能":"その他の機能","ddns":"DDNS","ai_page":"AIチャットページ","pty cmd":"PTYコマンド","wf_run":"ワークフロー実行","wf_user":"ワークフロー実行ユーザー","cmd_rst":"filecat-restart 再起動コマンド","cmd_upg":"filecat-upgrade 更新コマンド","cmd_dwn":"filecat-down メインプロセス終了コマンド","cmd_ai":"AIコマンド(AIチャット)","个性化设置":"個人情報設定","个人环境":"個人環境","系统环境":"システム環境","持久化":"永続化","lgn_usr":"ログイン時にユーザー情報を表示","個人環境設定":"個人環境設定","其他参数":"その他のパラメータ","父编号":"親ID","代理配置":"プロキシ設定","桥接配置":"ブリッジ設定","内网穿透":"イントラネット穿透","fc_pxy":"Filecatプロキシアクセス","fc_pxyw":"サーバーfrontendを使用したFilecatプロキシアクセス","fc_pxyr":"カスタムFilecatプロキシアドレス","原客户端":"元のクライアント","原目录":"元のディレクトリ","目标客户端":"ターゲットクライアント","目标目录":"ターゲットディレクトリ","忽略目录":"無視するディレクトリ","双向同步":"双方向同期","客户端文件同步":"クライアントファイル同期","客户端设置":"クライアント設定","pxy_nln":"ローカル (イントラネット) アドレスにプロキシサーバーを使用しない","忽略ip":"IPを無視","ai_ask":"すべてをサーバーに問い合わせる","本地目录":"ローカルディレクトリ","响应体":"レスポンスボディ","客户端功能":"クライアント機能","全量同步":"全量同期","公钥":"公開鍵","跟随系统":"システム設定に従う","字符消耗统计":"文字消費統計","加载中...":"読み込み中...","对话轮次":"会話ラウンド","AI输入字符":"AI入力文字数","AI输出字符":"AI出力文字数","暂无统计数据":"統計データがありません","会话":"セッション","新会话":"新規セッション","提示词":"プロンプト","llm_pmt":"LLM編集プロンプト","LLM编辑开关":"LLM編集スイッチ","编辑规则":"編集ルール","选择系统提示词":"システムプロンプトを選択","清空全部会话":"すべてのセッションをクリア","cf_all":"すべてのチャットセッションを削除しますか?","cf_msgs":"選択したメッセージを削除しますか?","cf_ses":"選択したセッションを削除しますか?","cf_one":"このメッセージを削除しますか?","批量选择":"一括選択","查看所有用户会话":"全ユーザーの会話","查看全部会话时不可发送消息":"全会話を表示中はメッセージを送信できません","仅看我的会话":"自分の会話のみ","取消批量选择":"一括選択解除","删除选中消息":"選択メッセージを削除","删除选中会话":"選択セッションを削除","切换模型":"モデル切替","添加文件":"ファイルを追加","无描述":"説明なし","暂无工具":"ツールがありません","查看工具":"ツールを表示","加载工具":"ツールを読み込む","系统会话提示词":"システムセッションプロンプト","删除记录":"レコードを削除","手动加载":"手動読み込み","从索引删除":"インデックスから削除","知识库开关":"ナレッジベーススイッチ","文本对话":"テキスト対話","图片生成":"画像生成","向量嵌入":"ベクトル埋め込み","图片参数设置":"画像パラメータ設定","更多属性":"その他の属性","model类型":"モデルタイプ","成为tool":"ツールになる","操作":"操作","查看Git提交":"Gitコミットを表示","Git":"Git","变更":"Changes","提交记录":"Commits","全选":"Select All","没有变更":"No changes","暂无提交记录":"No commits yet","分支":"Branch","git_msg":"Enter commit message...","提交":"コミット","暂存全部":"Stage All","暂存选中":"Stage Selected","取消暂存":"Unstage","已暂存":"Staged","已暂存全部":"All staged","已取消暂存":"Unstaged","请输入提交信息":"Please enter commit message","提交成功":"Commit successful","推送成功":"Push successful","拉取成功":"Pull successful","切换分支成功":"Branch switched","远程操作":"Remote Operations","拉取":"Pull","推送":"Push","强制推送":"Force Push","暂存工作区":"Stash","暂存工作区成功":"Stash successful","恢复工作区":"Stash Pop","恢复工作区成功":"Stash pop successful","刷新":"Refresh","请先选择文件":"Please select files first","提示:":"Tips:","git_stg":"Check files on the left, then use \\"Stage Selected\\" to add them to staging area","git_cmt":"Enter commit message and click \\"Commit\\"","git_cf":"If conflicts occur, please resolve them in shell before committing","git_frc":"\\"Force Push\\" will overwrite the remote branch, use with caution","配置表":"Config Table","自动升级":"自動アップグレード","exe_tpl":"EXE ダウンロードURLテンプレート","offcal":"空のままにすると公式 GitHub Releases を使用","检测频率(秒)":"チェック間隔(秒)","def_180":"デフォルト180秒(3分)","chk_10s":"チェック間隔は10秒未満にできません","ver_url":"バージョンチェックURL","ver_req":"バージョンチェックURLは空にできません","用户配置":"ユーザー設定","邮箱":"メール","代理设置":"プロキシ設定","全局代理":"グローバルプロキシ","仓库代理":"リポジトリプロキシ","修改":"編集","用户配置已保存":"ユーザー設定を保存しました","代理配置已保存":"プロキシ設定を保存しました","pxy_clr":"空欄でプロキシをクリア","pxy_nte":"ユーザー設定とグローバルプロキシはすべてのリポジトリに適用されます","pxy_url":"HTTPプロキシアドレス","pxy_tip":"filecatシステムが発行するHTTPリクエスト(バージョン確認、自動アップグレード、DDNS、コマンドダウンロード、カスタムルーティングなど)に適用されます。注意:macOSでシステムプロキシがすでに有効な場合は、二重プロキシを避けるためにここは空にしてください。","端口扫描":"ポートスキャン","目标主机":"ターゲットホスト","起始端口":"開始ポート","结束端口":"終了ポート","并发数":"同時実行数","超时(ms)":"タイムアウト(ms)","扫描":"スキャン","扫描结果":"スキャン結果","扫描完成":"スキャン完了","扫描失败":"スキャン失敗","正在扫描...":"スキャン中...","未发现开放端口":"オープンポートが見つかりません","scan_in":"パラメータを入力してスキャンをクリック","hostreq":"ホストアドレスは必須です","端口范围无效":"無効なポート範囲","portrng":"開始ポートは終了ポートより大きくできません","开放":"オープン","总计扫描":"スキャン総数","已发现":"発見","当前":"現在","扫描已取消":"スキャンがキャンセルされました","自动换行":"自動改行","不换行":"改行しない","替换":"置換","env编辑":"env編集","命令确认":"コマンド確認","命令检测开启":"コマンド検出を有効化","命令检测关闭":"コマンド検出を無効化","命令检测已开启":"コマンド検出を有効にしました","命令检测已关闭":"コマンド検出を無効にしました","此会话不再询问":"このセッションでは再度確認しない","doc_pxy":"Docker プロキシ設定","HTTP 代理":"HTTP プロキシ","pxy_htt":"HTTPS プロキシ","pxy_nne":"No Proxy","保存失败":"保存に失敗しました","MD编辑器":"MD エディタ","行":"行","列":"列","默认":"既定","删除行":"行を削除","删除列":"列を削除","上方插入行":"上に行を挿入","切换表头行":"ヘッダー行を切り替え","合并单元格":"セルを結合","拆分单元格":"セルを分割","下方插入行":"下に行を挿入","左侧插入列":"左に列を挿入","右侧插入列":"右に列を挿入","插入表格":"表を挿入","加载中":"読み込み中","打开失败":"開けませんでした","重启失败":"再起動に失敗しました","doc_cfg":"Docker 設定","名单视图":"リスト表示","文本视图":"テキスト表示","目标(To)":"宛先(To)","动作":"アクション","fw_from":"送信元(From)","删除规则":"ルールを削除","规则编号":"ルール番号","点击复制":"クリックでコピー","镜像加速":"レジストリミラー","不安全仓库":"安全でないレジストリ","开启调试":"デバッグを有効にする","数据存储目录":"データルート","存储驱动":"ストレージドライバー","日志驱动":"ログドライバー","fw_iptb":"iptables を有効にする","lve_rst":"ライブリストア","添加规则":"ルールを追加","请填写端口号":"ポートを入力してください","方向":"方向","协议":"プロトコル","来源地址":"送信元アドレス","获取失败":"取得失敗","进程环境变量":"プロセス環境変数","端口实例":"ポートインスタンス","srchbln":"空白検索モードでディレクトリを開く","搜索会话":"セッションを検索","sw_mdl":"AI モデルの切り替えを許可","选择模型":"モデルを選択","mv_self":"フォルダを自身の中に移動することはできません","nvdltp":"サイトナビゲーションのお気に入り機能は削除されました。元のデータは .url ファイルに変換されています。filecat で .url ファイルを開くと、同じクイックアクセスを利用できます。","tmplctp":"ファイルの場所:filecat データベースディレクトリ配下の tempfile/temp_delete_sys_tag_name_260926 ディレクトリです。","网站 Logo":"サイトロゴ","lclorur":"ローカルファイルパスまたは http(s) 画像URL","全部":"すべて","源码模式":"ソースモード","实时编辑模式":"ライブ編集モード","编辑器设置":"エディター設定","正文最大宽度":"本文の最大幅","正文左右边距":"本文の左右余白","正文字号":"本文の文字サイズ","行高":"行の高さ","as_iv":"自動保存間隔(秒)","as_num":"0 以上の整数を入力してください","恢复默认":"既定値に戻す","保存中":"保存中","预览":"プレビュー","nprmtp":"この設定を変更する権限がありません。以下は現在の構成です。","md_set":"MDエディター設定","目录挂载":"ディレクトリマウント","总开关":"マスタースイッチ","挂载":"マウント","挂载到网盘":"クラウドにマウント","编辑挂载配置":"マウント設定を編集","取消挂载":"マウント解除","确认取消挂载":"マウント解除の確認","已取消挂载":"マウントを解除しました","该目录尚未挂载":"このディレクトリはマウントされていません","挂载目录":"マウントディレクトリ","只读":"読み取り専用","挂载类型":"マウント種別","显示名称":"表示名","标识色":"識別色","只读模式":"読み取り専用モード","测试连接":"接続テスト","测试中":"テスト中","连接成功":"接続に成功しました","连接失败":"接続に失敗しました","请选择挂载类型":"マウント種別を選択してください","请填写":"入力してください:","未授权":"未認証","服务地址":"サーバーアドレス","起始目录":"開始ディレクトリ","留空表示根目录":"空欄の場合はルートディレクトリ","主机":"ホスト","默认 22":"既定 22","私钥内容":"秘密鍵の内容","与私钥二选一":"秘密鍵といずれか一方を入力","与密码二选一":"パスワードといずれか一方を入力","存储桶":"バケット","区域":"リージョン","强制路径风格":"パス形式を強制","授权账号":"認証アカウント","百度网盘授权":"Baidu ネットディスク認証","去授权":"認証する","完成授权":"認証を完了","授权码":"認証コード","回调地址":"リダイレクト URI","rqappky":"AppKey を入力してください","rq_scrt":"SecretKey を入力してください","请填写授权码":"認証コードを入力してください","svappfr":"先にアプリ設定を保存してください","授权成功":"認証に成功しました","账号可用":"アカウントは利用可能です","账号不可用":"アカウントを利用できません","校验":"検証","已授权账号":"認証済みアカウント","已删除":"削除しました","处理中":"処理中","AppKey":"AppKey","网盘挂载":"クラウドマウント","凭据管理":"認証情報","凭据":"認証情報","新增凭据":"認証情報を追加","凭据已丢失":"認証情報が見つかりません","挂载列表":"マウント一覧","新增挂载":"マウントを追加","munt_rq":"マウントディレクトリは必須です","请选择凭据":"認証情報を選択してください","请选择类型":"タイプを選択してください","启用":"有効","已停用":"無効","确认删除":"削除の確認:","nmuntpr":"現在のアカウントにはディレクトリマウントの権限がありません","百度网盘":"Baidu ネットディスク","应用配置":"アプリ設定","授权":"認証","授权失败":"認証に失敗しました","strtdrt":"開始ディレクトリ","授权检测":"認証チェック","scrtkep":"SecretKey を空にすると変更しません","编辑应用":"アプリを編集","新增授权账号":"認証アカウントを追加","一键授权":"ワンクリック認証","outh_ob":"手動(oob)","pst_cd":"認証コードを貼り付け","确认授权":"認証を確定","授权检测/刷新":"検証/更新","检测完成":"検証が完了しました","导入":"インポート","账号名":"アカウント名","百度账号":"Baidu アカウント","网盘昵称":"ネットディスクのニックネーム","授权状态":"認証状態","过期时间":"有効期限","授权时间":"認証日時","已授权":"認証済み","已过期":"期限切れ","停用":"無効化","已配置":"設定済み","未配置":"未設定","网盘使用":"ネットディスク使用","自动刷新":"自動更新","编辑账号":"アカウントを編集","使用":"使用","当前为挂载目录":"マウントディレクトリ","启用挂载":"マウントを有効化","已启用":"有効","挂载已启用":"マウントを有効化しました","挂载已停用":"マウントを無効化しました","muntont":"マウント有効、クリックで無効化","muntoff":"マウント無効、クリックで有効化","凭证管理":"認証情報","授权方式":"認証方式","去授权(一键)":"認証する(ワンクリック)","去授权(手动)":"認証する(手動)","保存应用配置":"アプリ設定を保存","atathtp":"ワンクリック:認証後は自動的にこのページに戻り、アカウントが自動的に追加されます","atathnt":"ワンクリックには、Baiduコンソールで本サービスの /mount/baidu/callback をリダイレクトURIとして登録する必要があります","pstatht":"手動:リダイレクトURIは不要です。認証後にBaiduのページでコードをコピーし、下に貼り付けて「認証を完了」をクリックしてください","crd_tp":"認証情報はクラウドストレージ/リモートホストへ接続するためのアカウント情報です。複数のマウントで共有でき、一度の変更がすべてに反映されます。","bidacct":"Baidu Netdisk のアカウントはここでは管理しません。下の「Baidu Netdisk」パネルで認証してください。認証後に該当アカウントが自動生成されます。","pwdkept":"編集時、パスワード系の項目を空にすると元の値が維持されます。","tstbfrs":"保存前に「接続テスト」をクリックしてアカウントが使用可能か確認できます。","prtwbdv":"汎用的なファイルプロトコルで、堅果雲・Synology NAS・Nextcloud・Alist などが対応しています。サービスURLとアカウントだけで相手のディレクトリにアクセスできます。","prtsftp":"SSH 経由でリモートサーバーのディレクトリにアクセスし、SFTP サブシステムでファイルを転送します。別の Linux マシンのディレクトリをマウントするのに適しています。","prt_s3":"S3 プロトコルで接続するオブジェクトストレージサービス(MinIO、Alibaba Cloud OSS、Tencent COS、Qiniu、Cloudflare R2 など)。エンドポイント、バケット、キーペアが必要です。","深搜":"深層検索","搜索":"検索","搜索中":"検索中","范围":"範囲","结果过多":"結果が多すぎます。キーワードを絞ってください","已显示":"表示中","搜文件名":"ファイル名を再帰検索","搜到该处":"フォルダへ移動","打开所在目录":"フォルダを開く","输入后搜":"ファイル名を入力して Enter","无匹配":"一致するファイルがありません","结果截断":"結果が多すぎます。先頭 500 件","缩放调整":"ズーム調整","缩放调整成功":"ズーム調整に成功しました","缩放百分比":"ズームパーセント","未加载":"未読み込み","加载成功":"読み込み完了","加载失败":"読み込み失敗","个工具":"個のツール","No share found":"共有が見つかりません","Enter host first":"先にホストを入力してください","下一步":"次へ","上一步":"前へ","共享目录":"共有フォルダ","prt_smb":"Windows 共有フォルダー(SMB/CIFS)。ホストとアカウントを入力すると共有名を選択できます。","prt_bd":"Baidu Netdisk。Baidu 開放プラットフォームでアプリを作成し、AppKey / SecretKey を入力してアカウントを認証します。","没有找到共享":"共有が見つかりません","粘贴授权码 code":"認証コードを貼り付け","重新授权":"再認証","请选择账号":"アカウントを選択してください","请填写备注":"備考を入力してください","账号已丢失":"アカウントが見つかりません","已暂存的更改":"ステージ済みの変更","全部暂存":"すべてステージ","全部取消暂存":"すべてステージ解除","暂存":"ステージ","无差异":"差分なし","二进制文件":"バイナリファイル","单栏":"統合表示","并排":"並べて表示","点击左侧文件查看差异":"左側のファイルをクリックして差分を表示","未跟踪文件无差异":"未追跡ファイルには差分がありません","请先暂存要提交的文件":"先にコミットするファイルをステージしてください","没有已更改的文件":"変更されたファイルはありません","未暂存":"未ステージ","逐行归属":"行の履歴","无法读取该文件的归属信息":"このファイルの履歴を読み取れません","全部文件":"すべてのファイル","新建分支":"新しいブランチ","删除分支":"ブランチを削除","确认删除分支":"ブランチを削除しますか?","合并到此分支":"このブランチにマージ","新分支名":"新しいブランチ名","当前分支":"現在のブランチ","切换到":"切り替え","分支创建成功":"ブランチを作成しました","分支删除成功":"ブランチを削除しました","合并成功":"マージしました","标签":"タグ","新建标签":"新しいタグ","标签名":"タグ名","暂无标签":"タグがありません","标签创建成功":"タグを作成しました","标签删除成功":"タグを削除しました","标签推送成功":"タグをプッシュしました","删除标签":"タグを削除","确认删除标签":"タグを削除しますか?","请输入标签名":"タグ名を入力してください","推送到远程":"リモートにプッシュ","基于提交":"コミットに基づく","基于当前提交":"現在のコミットに基づく","暂存工作区记录":"スタッシュ一覧","暂无记录":"記録がありません","恢复并删除":"適用して削除","已恢复并删除记录":"復元して削除しました","已应用":"適用しました","远程分支":"リモートブランチ","拉取远程信息":"取得","拉取并清理已删除分支":"取得して整理","未配置远程仓库":"リモートが設定されていません","签出到本地":"ローカルにチェックアウト","拉取完成":"取得が完了しました","冲突":"競合","采用我方版本":"自分の変更を採用","采用对方版本":"相手の変更を採用","标记已解决":"解決済みにする","标记全部已解决":"マージを完了","放弃合并":"マージを中止","确认放弃当前合并并恢复到操作前状态":"中止して以前の状態に戻しますか?","已解决冲突":"競合を解決しました","已放弃合并":"マージを中止しました","合并已完成":"マージが完了しました","撤销提交":"コミットを取り消す","将生成一个反向提交来撤销":"取り消し用の逆コミットを作成します","已撤销":"取り消しました","摘取提交":"チェリーピック","将该提交应用到当前分支":"このコミットを現在のブランチに適用","摘取成功":"チェリーピックしました","搜索提交":"コミットを検索","提交信息关键词":"コミットメッセージ","作者":"作成者","请输入搜索条件":"検索条件を入力してください","操作历史":"操作履歴","回退到此处":"ここにリセット","强制回退(丢弃改动)":"強制リセット(変更を破棄)","此操作将永久丢弃未提交的改动":"未コミットの変更が完全に破棄されます","已回退":"リセットしました","已强制回退":"強制リセットしました","子模块":"サブモジュール","无子模块":"サブモジュールがありません","初始化并更新子模块":"サブモジュールを初期化して更新","子模块更新完成":"サブモジュールを更新しました","未初始化":"未初期化","与记录不一致":"記録と一致しません","正常":"正常","当前提交":"現在のコミット","领先上游":"上流より進んでいます","落后上游":"上流より遅れています","钩子":"フック","停用钩子":"フックを無効化","确认删除并停用":"削除して無効化しますか","保存并启用":"保存して有効化","已保存并启用":"保存して有効化しました","与工作区对比":"作業ツリーと比較","仓库":"リポジトリ","初始化仓库":"リポジトリを初期化","克隆仓库":"リポジトリをクローン","仓库初始化成功":"リポジトリを初期化しました","克隆成功":"クローンしました","目录名":"ディレクトリ名","请输入目录名":"ディレクトリ名を入力してください","仓库地址":"リポジトリURL","请输入仓库地址":"リポジトリURLを入力してください","当前目录下没有仓库":"ここにリポジトリがありません","进入":"開く","修改最后一次提交":"最後のコミットを修正","已修改最后一次提交":"最後のコミットを修正しました","分支比较":"ブランチを比較","两个分支没有差异":"ブランチ間に差分はありません","确认删除远程分支":"リモートブランチを削除","该分支会从远程仓库删除":"このブランチはリモートリポジトリから削除されます","删除远程分支":"リモートブランチを削除","将":"マージ","合并到":"に","未推送":"未プッシュ","已到底部":"これ以上なし","没有可提交的更改":"コミットする変更がありません","存在未暂存的改动,是否一并暂存并提交?":"ステージされていない変更があります。まとめてステージしてコミットしますか?","二进制文件无法比较":"バイナリファイルは比較できません","请选择文件查看改动":"ファイルを選択して変更を表示","clk_edt":"クリックして編集","rendering":"レンダリング中…","思维导图":"マインドマップ","新窗口打开":"新しいタブで開く","已选":"選択済み","复制所选":"選択をコピー","删除所选":"選択を削除","全部复制":"すべてコピー","多选":"選択","wbvpn_allow":"WebVPN ターゲット許可リスト","wbvpn_allow_ph":"1 行 1 エントリ: 192.168.1.0/24 (CIDR) / 192.168.1.1 (IP) / router.local (ドメイン、完全一致、サブドメイン不可)","wbvpn_tip":"WebVPN ターゲット許可リスト。1 行に 1 エントリ、3 つの形式があります:\\n · CIDR 範囲: 192.168.1.0/24\\n · 完全な IP: 192.168.1.1 (10.0.0.5、fd00::/8、::1 も可)\\n · 完全なドメイン: router.local、nas.example.com (完全一致、サブドメインは含まれません)\\nパブリックアドレスはデフォルトで許可。プライベート、ループバック、リンクローカル、クラウドメタデータ (169.254.169.254) 等の制限アドレスはデフォルトで禁止です。不正な行は無視されます。","wbvpn_port_range":"プロキシポート範囲","wbvpn_port_tip":"各ターゲットは独立したポートを使用します。アクセス URL を開くとそのサイトを閲覧できます。パスはそのままなので SPA ルーティングが正常に動作し、サイトは Origin ごとに分離されます。","wbvpn_port_tip2":"アクセスにはログインが必要です。ここから開くと一度トークンが付与され、以降は Cookie でセッションを維持します。ターゲットは引き続き許可リスト/アドレスポリシーの対象です。","wbvpn_port_tip3":"ページ内のリンクが【有効なターゲット】を指す場合、そのターゲットのポートに自動で書き換えられ、クリック後もプロキシ内に留まります。ターゲットに設定されていないドメインは変更されません。","网页代理目标":"プロキシ対象","访问地址":"アクセス URL","打开":"開く","已复制":"コピーしました","添加成功":"追加しました","目标地址不能为空":"対象アドレスを入力してください","目标地址例如":"対象アドレス(例: 192.168.1.1:8080)","网页代理":"ウェブプロキシ","当前窗口打开":"現在のタブで開く","修改成功":"更新しました","浏览器代理编辑":"ブラウザプロキシ編集","已禁用":"無効","prt_local":"ローカルディレクトリ。このマシンに既存の絶対パスをソースとして指定すると、マウント後に filecat 内でディレクトリリンクとしてアクセスできます。","移动到最上":"最上部へ移動","移动到最下":"最下部へ移動","会话设置":"セッション設定","服务器工作目录":"サーバーの作業ディレクトリ","服务器工作目录提示":"例:D:\\\\projects\\\\myapp","AI 聊天":"AI チャット","动态域名解析":"ダイナミックDNS","平台":"プロバイダー","账号凭证":"認証情報","域名绑定":"ドメイン紐付け","IP 来源":"IP取得元","域名":"ドメイン","多个域名用空格分隔":"複数のドメインはスペースで区切る","绑定":"紐付け","填写格式":"書式","请填写账号凭证":"認証情報を入力してください","确定删除吗":"削除しますか?","ddns_help_1":"DDNS を設定すると、DNS レコードを現在のグローバル IP に自動更新できます。","ddns_help_2":"IP 取得元はローカルNICとカスタム HTTP エンドポイントに対応しています。","请输入地址":"URLを入力してください","IP 来源管理":"IP取得元の管理","暂无数据":"データなし","http_source_tip":"グローバル IP を返す HTTP エンドポイントを追加します。","同步间隔":"同期間隔","账号状态":"アカウント","上次同步":"最終同期","验证":"検証","未验证":"未検証","失败":"失敗","同步完成":"同期完了","间隔不能小于 10 秒":"間隔は10秒以上必要です","文字":"テキスト","请填写完整的账号凭证":"すべての認証情報を入力してください"}'),a=JSON.parse('{"title":"FileCat","修改密码":"비밀번호 변경","自定义auth":"사용자 정의 인증","tk_exp":"토큰 만료 시간","目标":"대상","目标列表":"대상 목록","被同步的源目录":"동기화할 소스 디렉터리","成功":"성공","已开启":"활성화됨","已关闭":"비활성화됨","sy_tp1":"설정 파일, 코드 파일 등 작은 파일만 지원합니다","sy_tp2":"기본적으로 파일은 수정된 후에만 동기화됩니다. 전체 동기화를 켜면 해당 클라이언트는 접속할 때마다 모든 파일을 재귀 동기화합니다.","sy_tp3":"하나의 작업에 여러 대상을 설정할 수 있으며, 각 대상마다 디렉터리와 전체 동기화를 지정할 수 있습니다.","立即同步":"지금 동기화","已触发同步":"동기화 시작됨","操作失败":"작업 실패","tsk_off":"먼저 작업을 켜고 저장하세요","mnt_type":"마운트 유형","cred_sel":"자격 증명","lcl_abs":"마운트할 로컬 절대 경로","rem_dir":"원격 디렉터리","disp_only":"목록에 표시할 이름","tag_pub":"태그 편집은 모든 사용자에게 표시됩니다","https_s":"HTTPS 설정","ssl_crt":"SSL 인증서 경로","ssl_key":"SSL 개인 키 경로","crt_pth":"인증서 파일 경로 (cert.pem/fullchain.pem)","ky_pth":"개인 키 파일 경로 (privkey.pem)","语言":"언어","文件夹路径":"폴더 경로","编号":"번호","路径":"경로","是否默认":"기본값인가요?","备注":"비고","编辑SQL":"SQL 편집","SQL 预设":"SQL 프리셋","耗时":"경과 시간","确认":"확인","请输入备注":"메모를 입력하세요","查询全部表":"모든 테이블 조회","SQL预设设置":"SQL 프리셋 설정","SQL预设":"SQL 프리셋","更新保存":"업데이트 및 저장","创建新预选项":"새 프리셋 만들기","添加预设":"프리셋 추가","SQL代码":"SQL 코드","保存成功":"저장되었습니다","大纲":"개요","新建主题":"새 테마","编辑主题":"테마 편집","删除主题":"테마 삭제","主题名称":"테마 이름","请输入主题名称":"테마 이름을 입력하세요","主题实时预览":"실시간 미리보기","删除成功":"삭제됨","删除失败":"삭제 실패","cf_thm":"이 테마를 삭제할까요?","导出PDF":"PDF 내보내기","no_head":"아직 제목이 없습니다","未命名标题":"제목 없음","更新成功":"업데이트되었습니다","创建成功":"생성되었습니다","sql_in":"SQL 문을 입력하세요","新密码":"새 비밀번호","新账号":"새 계정","关闭":"닫기","开启":"열기","展开":"펼치기","指定时间":"지정 시간","永不过期":"만료되지 않음","清空token":"토큰 비우기","保存":"저장","确定":"확인","确定修改":"변경 확인","删除":"삭제","添加":"추가","系统":"시스템","follow_sys":"시스템 설정 따르기","no_theme":"테마 없음","自定义页面路由":"사용자 정의 페이지 라우트 ","api_rt":"사용자 정의 API 라우트","跳转路由":"이동 라우트","路由":"라우트","文件":"파일","自定义路由":"사용자 지정 라우트","编辑":"편집","查看":"보기","默认配置":"기본 구성","设置":"설정","退出登录":"로그아웃","虚拟网络":"가상 네트워크","系统信息":"시스템 정보","工具箱":"도구 상자","索引":"색인","文件夹":"폴더","客户端":"클라이언트","服务器":"서버","服务端":"서버 측","基本信息":"기본 정보","系统性能":"시스템 성능","总容量":"총 용량","剩余":"남은","使用率":"사용률","内存":"메모리","系统进程":"시스템 프로세스","doc_ct":"Docker 컨테이너","物理硬盘":"물리적 하드 디스크","文件硬盘":"파일 하드 디스크","容器":"컨테이너","名字":"이름","镜像":"이미지","命令":"명령","状态":"상태","选择":"선택","过滤":"필터링","账号":"계정","密码":"비밀번호","目录":"디렉토리","私钥路径":"개인 키 경로","连接地址":"연결 주소","端口":"포트","port":"포트","host":"호스트","key":"키","代理":"프록시","浏览器":"브라우저","网络唤醒":"네트워크 부팅","时间工具":"시간 도구","切换样式":"스타일 변경","更多":"더 보기","创建文件夹":"폴더 생성","创建文件":"파일 생성","连接":"연결","地址":"주소","目标设备":"대상 기기","发送":"보내기","腾讯":"텐센트","云":"클라우드","厂商":"제조사","名称":"이름","厂商名称":"제조사 이름","类型":"유형","容量":"용량","挂载位置":"마운트 위치","剩余容量":"남은 용량","登录":"로그인","是":"예","否":"아니오","秒":"초","流量转发":"트래픽 전달","点对点":"P2P","模式":"모드","虚拟":"가상","在线状态":"온라인 상태","物理":"물리적","账号设置":"계정 설정","说明":"설명","文件系统类型":"파일 시스템 유형","机械":"기계식","固态":"SSD","复制":"복사","剪切":"잘라내기","压缩":"압축","下载":"다운로드","重命名":"이름 변경","创建文本文件":"텍스트 파일 생성","解压":"압축 해제","转换到":"변환","自定义":"사용자 정의","粘贴到此处":"여기에 붙여넣기","创建":"생성","制造商":"제조사","总内存":"총 메모리","最大":"최대","品牌":"브랜드","逻辑核心":"논리 코어","搜索当前目录":"현재 디렉토리 검색","压缩文件":"파일 압축","取消":"취소","运行":"실행","格式":"형식","压缩到":"압축 위치","进度":"진행 상황","解压到":"압축 해제 위치","当前目录":"현재 디렉토리","解压文件":"파일 압축 해제","视频格式转换":"비디오 형식 변환","gen_dir":"생성된 파일의 대상 파일은 이 디렉토리에 있습니다.","ff_fmt":"ffmpeg에서 지원하는 대상 형식","del_f":"선택한 파일을 삭제하시겠습니까?","输入目录名":"디렉토리 이름 입력","cut_ovr":"잘라내기(덮어쓰기) 확인","cp_ovr":"복사(덮어쓰기) 확인","修改名字":"이름 변경","输入新名字":"새 이름 입력","个文件正在上传":"개의 파일이 업로드 중입니다.","确定删除":"삭제 확인","是否删除":"삭제하시겠습니까?","输入文本名":"텍스트 이름 입력","添加索引":"색인 추가","物理核心":"물리 코어","创建目录":"디렉토리 생성","访问目录":"디렉토리 접근","mac_dst":"대상 기기의 MAC 주소","要代理的url":"프록시할 URL","系统代理端口":"시스템 프로록시 포트","返回":"돌아가기","不允许为空":"비어 있을 수 없습니다.","ff_none":"ffmpeg을 찾을 수 없습니다.","disk":"하드 디스크","part":"파티션","lvm":"논리 볼륨 관리","网址":"웹 주소","环境":"환경","外部软件":"외부 소프트웨어","保护路径":"보호 경로","软件":"소프트웨어","是否安装":"설치되어 있습니까?","角色管理":"역할 관리","用户管理":"사용자 관리","角色id":"역할 ID","角色名":"역할 이름","用户id":"사용자 ID","用户名":"사용자 이름","目录范围":"디렉토리 범위","可执行的命令":"실행 가능한 명령","禁止目录范围":"금지된 디렉토리 범위","可执行命令":"실행 가능한 명령","系统进程关闭":"시스템 프로세스 종료","dc_ctdl":"Docker 컨테이너 정지, 삭제","dc_idl":"Docker 이미지 삭제","tk_time":"토큰 시간 변경","自定义资源路由":"사용자 정의 리소스 라우트","磁盘挂载":"디스크 마운트","ssh_sv":"SSH 키를 디스크에 저장","外部软件路径":"외부 소프트웨어 경로","log_del":"파일 삭제, 잘라내기, 이름 변경","内容更新":"내용 업데이트","标签编辑权限":"태그 편집 권한","ssh代理":"SSH 프록시","http代理":"HTTP 프록시","浏览器代理":"브라우저 프록시","rdp代理":"RDP 프록시","rtsp播放器":"RTSP 플레이어","角色":"역할","文件回收站":"휴지통","个人保护路径":"개인 보호 경로","系统保护路径":"시스템 보호 경로","小于一分钟":"1분 미만","分钟前":"분 전","小时前":"시간 전","天前":"일 전","月前":"달 전","年前":"년 전","挂载位置磁盘":"마운트 위치 디스크","信息":"정보","磁盘剩余":"디스크 남은 용량","文件系统":"파일 시스템","文件夹数":"폴더 수","文件数":"파일 수","当前位置":"현재 위치","输入文件名":"파일 이름 입력","o_stdo":"Studio로 열기","o_img":"이미지 편집기로 열기","预览图片":"이미지 미리보기","运行并实时查看":"실행하고 실시간으로 보기","实时查看":"실시간으로 보기","输入参数运行":"매개변수를 입력하여 실행","以文本打开":"텍스트로 열기","以日志打开":"로그로 열기","上传":"업로드","文件选项":"파일 옵션","添加类目":"카테고리 추가","全部编辑":"전체 편집","输入类目名":"카테고리 이름 입력","折叠":"접기","全部折叠":"모두 접기","(无内容)":"(내용 없음)","请求头":"요청 헤더","请求体":"요청 본문","值":"값","上传文件":"파일 업로드","下载到本地目录":"로컬 디렉토리로 다운로드","本地地址":"로컬 주소","完成":"완료","结束":"종료","响应头":"응답 헤더","正在下载":"다운로드 중","输入标签名":"태그 이름 입력","frm_lm":"양식에 파일이 포함되어 있어 브라우저 제한으로 추가할 수 없습니다.","非对称密钥":"비대칭 키","将覆盖密钥文件":"키 파일을 덮어쓸 것입니다.","加密算法":"암호화 알고리즘","输出格式":"출력 형식","普通PEM":"일반 PEM","生成":"생성","ssh_dir":".ssh 디렉토리에 저장","私钥":"개인 키","时间转换器":"시간 변환기","格式化时间":"시간 형식 지정","毫秒":"밀리초","分秒":"분과 초","实时信息":"실시간 정보","运行用户":"실행 사용자","当前系统":"현재 시스템","进程":"프로세스","ld_wait":"로딩 중, 잠시 기다려 주세요...","选中":"선택됨","创建用户":"사용자 생성","升序":"오름차순","降序":"내림차순","dc_nne":"Docker를 감지할 수 없습니다. 호스트에 Docker가 설치되어 있지 않거나 컨테이너가 비어 있을 수 있습니다.","过滤镜像":"이미지 필터링","列表更新":"목록 업데이트","执行命令":"명령 실행","打印日志":"로그 출력","删除容器":"컨테이너 삭제","删除镜像":"이미지 삭제","doc_img":"Docker 이미지","doc_icf":"선택한 이미지를 삭제하시겠습니까?","系统运行于":"시스템이 실행 중인 위치","全局变量":"전역 변수","up_conc":"파일 업로드 최대 동시 제한","单用户并发数量":"단일 사용자 동시 수","系统并发数量":"시스템 동시 수","big_res":"대용량 파일 중단점을 사용하시겠습니까?","big_sz":"대용량 파일 판단 크기(MB)","大文件并发数量":"대용량 파일 동시 수","big_ck":"대용량 파일 분할 크기(MB)","页面资源路由":"페이지 리소스 라우트","wf_rt":"워크플로 트리거 라우트","过期时间(s)":"만료 시간(초)","文件路径":"파일 경로","path_up":"시스템 보호 경로 업데이트","path_md":"PATH 경로 변경","执行用户":"실행 사용자","执行":"실행","wf_api":"워크플로 트리거 API 변경","up_lim":"디렉토리 파일 업로드 수 제한 변경","功能权限":"기능 권한","角色备注":"역할 비고","pxy_off":"HTTP 프록시 다운로드 비활성화","工具功能":"도구 기능","全局变量设置":"전역 변수 설정","文件回收站修改":"휴지통 수정","文件权限":"파일 권한","log_wr":"파일 생성, 업로드, 내용 업데이트, 압축 해제","只读目录范围":"읽기 전용 디렉토리 범위","更新":"업데이트","use_env":"기본적으로 환경 변수 사용","sync_sv":"선택한 서버에 정보 동기화","add_rot":"HTTP 리소스 루트 디렉토리 추가","dl_here":"이 디렉토리에서 HTTP 리소스 다운로드","文件排序":"파일 정렬","系统默认":"시스템 기본값","修改时间":"수정 시간","时间逆序":"시간 역순","时间顺序":"시간 순서","大小逆序":"크기 역순","大小顺序":"크기 순서","文件大小":"파일 크기","网站标题":"웹사이트 제목","通用设置":"일반 설정","主题":"테마","时区":"시간대","时间":"시간","服务器时间":"서버 시간","在线时间":"온라인 시간","离线时间":"오프라인 시간","在线":"온라인","离线":"오프라인","功能文档":"기능 문서","官网地址":"https://filecat.xiaobaidadada.fun/","远程代理":"원격 프록시","系统管理":"시스템 관리","网址导航":"웹 주소 탐색","目录快捷命令":"디렉터리 바로 가기 명령","文件快捷命令":"파일 바로 가기 명령","系统网络":"시스템 네트워크","复制名字":"이름 복사","分享":"공유","复制绝对路径":"절대 경로 복사","复制相对路径":"상대 경로 복사","切换目录":"디렉터리 전환","统计信息":"통계 정보","更新AI知识库":"AI 지식베이스 업데이트","exp_hr":"남은 만료 시간(시간)","可以为空":"비워도 됩니다","自动加载":"자동 로드","本地知识库":"로컬 지식베이스","知识库加载信息":"지식베이스 로드 정보","最近一次加载":"최근 로드 시각","加载进度":"로드 진행률","总文件数量":"총 파일 수","总文件字符数量":"총 파일 문자 수","总文件大小":"총 파일 크기","总耗时":"총 소요 시간","上一页":"이전 페이지","目标地址":"대상 주소","目标端口":"대상 포트","连接状态":"연결 상태","个人设置":"개인 설정","系统设置":"시스템 설정","文件后缀":"파일 확장자","禁止执行的命令":"실행 금지 명령","Ai 配置":"AI 설정","文件分享":"파일 공유","输入跳转的目录":"이동할 디렉터리 입력","文件分享列表":"파일 공유 목록","过期小时":"만료 시간(시간)","下载次数":"다운로드 횟수","剩余时间":"남은 시간","文件加载方式":"파일 로드 방식","全部加载文件":"모든 파일 로드","scrll_l":"페이지 스크롤로 파일 로드","剩余时间(h)":"남은 시간 (h)","网络代理":"네트워크 프록시","个人":"개인","安装方式":"설치 방식","是否开启":"사용","系统启动执行":"시스템 시작 시 실행","表达式":"식","用户":"사용자","详细信息":"상세 정보","服务器配置":"서버 설정","客户端列表":"클라이언트 목록","更多服务器":"더 많은 서버","端口映射":"포트 매핑","序号":"번호","服务器端口":"서버 포트","转发客户端名称":"전달 클라이언트 이름","服务端口":"서비스 포트","转发ip":"전달 IP","转发端口":"전달 포트","客户端代理配置":"클라이언트 프록시 설정","客户端桥接配置":"클라이언트 브리지 설정","远程地址":"원격 주소","在线时长":"온라인 시간","fwd_nm":"전달 클라이언트 이름","sv_ntf":"저장하고 클라이언트에 첫 번째 키와 포트를 알림","br_port":"브리지 서버 포트 목록","输入消息":"메시지 입력","用户权限":"사용자 권한","系统管理权限":"시스템 관리 권한","网络功能权限":"네트워크 기능 권한","Ai 设置权限":"AI 설정 권한","系统设置权限":"시스템 설정 권한","系统环境设置":"시스템 환경 설정","sys_env":"시스템 환경 설정 페이지","自定义路由页面":"사용자 지정 라우트 페이지","代理功能":"프록시 기능","其他功能":"기타 기능","ddns":"DDNS","ai_page":"AI 채팅 페이지","pty cmd":"PTY 명령","wf_run":"워크플로 실행","wf_user":"워크플로 실행 사용자","cmd_rst":"filecat-restart 재시작 명령","cmd_upg":"filecat-upgrade 업그레이드 명령","cmd_dwn":"filecat-down 메인 프로세스 종료 명령","cmd_ai":"AI 명령(AI 채팅)","个性化设置":"개인화 설정","lgn_usr":"로그인 시 사용자 정보 표시","个人环境":"개인 환경","系统环境":"시스템 환경","持久化":"지속","个人环境设置":"개인 환경 설정","其他参数":"기타 매개변수","父编号":"부모 ID","代理配置":"프록시 구성","桥接配置":"브리지 구성","内网穿透":"내부망 침투","fc_pxy":"Filecat 프록시 액세스","fc_pxyw":"Filecat 프록시 액세스 서버 프론트엔드 사용","fc_pxyr":"사용자 정의 Filecat 프록시 주소","原客户端":"원본 클라이언트","原目录":"원본 디렉토리","目标客户端":"대상 클라이언트","目标目录":"대상 디렉토리","忽略目录":"무시 디렉토리","双向同步":"양방향 동기화","客户端文件同步":"클라이언트 파일 동기화","客户端设置":"클라이언트 설정","pxy_nln":"로컬 (인트라넷) 주소에 프록시 서버 사용 안 함","忽略ip":"IP 무시","ai_ask":"모든 것을 서버에 문의","本地目录":"로컬 디렉토리","响应体":"응답 본문","客户端功能":"클라이언트 기능","全量同步":"전체 동기화","公钥":"공개 키","跟随系统":"시스템 설정 따름","字符消耗统计":"문자 소비 통계","加载中...":"로딩 중...","对话轮次":"대화 라운드","AI输入字符":"AI 입력 문자","AI输出字符":"AI 출력 문자","暂无统计数据":"통계 데이터 없음","会话":"세션","新会话":"새 세션","提示词":"프롬프트","llm_pmt":"LLM 편집 프롬프트","LLM编辑开关":"LLM 편집 스위치","编辑规则":"편집 규칙","选择系统提示词":"시스템 프롬프트 선택","清空全部会话":"모든 세션 지우기","cf_all":"모든 채팅 세션을 삭제하시겠습니까?","cf_msgs":"선택한 메시지를 삭제하시겠습니까?","cf_ses":"선택한 세션을 삭제하시겠습니까?","cf_one":"이 메시지를 삭제하시겠습니까?","批量选择":"일괄 선택","查看所有用户会话":"모든 사용자 세션","查看全部会话时不可发送消息":"모든 세션을 보는 중에는 메시지를 보낼 수 없습니다","仅看我的会话":"내 세션만 보기","取消批量选择":"일괄 선택 취소","删除选中消息":"선택 메시지 삭제","删除选中会话":"선택 세션 삭제","切换模型":"모델 전환","添加文件":"파일 추가","无描述":"설명 없음","暂无工具":"도구 없음","查看工具":"도구 보기","加载工具":"도구 로드","系统会话提示词":"시스템 세션 프롬프트","删除记录":"레코드 삭제","手动加载":"수동 로드","从索引删除":"인덱스에서 삭제","知识库开关":"지식 베이스 스위치","文本对话":"텍스트 대화","图片生成":"이미지 생성","向量嵌入":"벡터 임베딩","图片参数设置":"이미지 매개변수 설정","更多属性":"더 많은 속성","model类型":"모델 유형","成为tool":"도구 되기","操作":"작업","查看Git提交":"Git 커밋 보기","Git":"Git","变更":"Changes","提交记录":"Commits","全选":"Select All","没有变更":"No changes","暂无提交记录":"No commits yet","分支":"Branch","git_msg":"Enter commit message...","提交":"커밋","暂存全部":"Stage All","暂存选中":"Stage Selected","取消暂存":"Unstage","已暂存":"Staged","已暂存全部":"All staged","已取消暂存":"Unstaged","请输入提交信息":"Please enter commit message","提交成功":"Commit successful","推送成功":"Push successful","拉取成功":"Pull successful","切换分支成功":"Branch switched","远程操作":"Remote Operations","拉取":"Pull","推送":"Push","强制推送":"Force Push","暂存工作区":"Stash","暂存工作区成功":"Stash successful","恢复工作区":"Stash Pop","恢复工作区成功":"Stash pop successful","刷新":"Refresh","请先选择文件":"Please select files first","提示:":"Tips:","git_stg":"Check files on the left, then use \\"Stage Selected\\" to add them to staging area","git_cmt":"Enter commit message and click \\"Commit\\"","git_cf":"If conflicts occur, please resolve them in shell before committing","git_frc":"\\"Force Push\\" will overwrite the remote branch, use with caution","配置表":"Config Table","自动升级":"자동 업그레이드","exe_tpl":"EXE 다운로드 URL 템플릿","offcal":"비워두면 공식 GitHub Releases 사용","检测频率(秒)":"확인 간격(초)","def_180":"기본값 180초(3분)","chk_10s":"확인 간격은 10초 미만일 수 없습니다","ver_url":"버전 확인 URL","ver_req":"버전 확인 URL은 비워둘 수 없습니다","用户配置":"사용자 설정","邮箱":"이메일","代理设置":"프록시 설정","全局代理":"전역 프록시","仓库代理":"저장소 프록시","修改":"편집","用户配置已保存":"사용자 설정이 저장되었습니다","代理配置已保存":"프록시 설정이 저장되었습니다","pxy_clr":"비워두면 프록시가 삭제됩니다","pxy_nte":"사용자 설정과 전역 프록시는 모든 저장소에 적용됩니다","pxy_url":"HTTP 프록시 주소","pxy_tip":"filecat 시스템이 발행하는 HTTP 요청(버전 확인, 자동 업그레이드, DDNS, 명령 다운로드, 사용자 지정 라우팅 등)에 적용됩니다. 참고: macOS에서 시스템 프록시가 이미 활성화된 경우 이중 프록시를 피하려면 여기를 비워 두세요.","端口扫描":"포트 스캔","目标主机":"대상 호스트","起始端口":"시작 포트","结束端口":"종료 포트","并发数":"동시 실행 수","超时(ms)":"시간 초과(ms)","扫描":"스캔","扫描结果":"스캔 결과","扫描完成":"스캔 완료","扫描失败":"스캔 실패","正在扫描...":"스캔 중...","未发现开放端口":"열린 포트가 없습니다","scan_in":"매개변수를 입력하고 스캔을 클릭하세요","hostreq":"호스트 주소는 필수입니다","端口范围无效":"잘못된 포트 범위","portrng":"시작 포트는 종료 포트보다 클 수 없습니다","开放":"열림","总计扫描":"총 스캔","已发现":"발견","当前":"현재","扫描已取消":"스캔이 취소되었습니다","自动换行":"자동 들여쓰기","不换行":"감쓰기 안함","替换":"바꾸기","env编辑":"env 편집","命令确认":"명령 확인","命令检测开启":"명령 감지 활성화","命令检测关闭":"명령 감지 비활성화","命令检测已开启":"명령 감지가 켜졌습니다","命令检测已关闭":"명령 감지가 꺼졌습니다","此会话不再询问":"이 세션에서 다시 묻지 않기","doc_pxy":"Docker 프록시 설정","HTTP 代理":"HTTP 프록시","pxy_htt":"HTTPS 프록시","pxy_nne":"No Proxy","保存失败":"저장 실패","MD编辑器":"MD 편집기","行":"행","列":"열","默认":"기본","删除行":"행 삭제","删除列":"열 삭제","上方插入行":"위에 행 삽입","切换表头行":"머리글 행 전환","合并单元格":"셀 병합","拆分单元格":"셀 분할","下方插入行":"아래에 행 삽입","左侧插入列":"왼쪽에 열 삽입","右侧插入列":"오른쪽에 열 삽입","插入表格":"표 삽입","加载中":"로딩 중","打开失败":"열기 실패","重启失败":"다시 시작 실패","doc_cfg":"Docker 설정","名单视图":"목록 보기","文本视图":"텍스트 보기","目标(To)":"대상(To)","动作":"동작","fw_from":"출처(From)","删除规则":"규칙 삭제","规则编号":"규칙 번호","点击复制":"클릭하여 복사","镜像加速":"레지스트리 미러","不安全仓库":"비보안 레지스트리","开启调试":"디버그 활성화","数据存储目录":"데이터 루트","存储驱动":"스토리지 드라이버","日志驱动":"로그 드라이버","fw_iptb":"iptables 활성화","lve_rst":"Live Restore","添加规则":"규칙 추가","请填写端口号":"포트를 입력하세요","方向":"방향","协议":"프로토콜","来源地址":"출발지 주소","获取失败":"가져오기 실패","进程环境变量":"프로세스 환경 변수","端口实例":"포트 인스턴스","srchbln":"빈 검색 모드로 디렉터리 열기","搜索会话":"세션 검색","sw_mdl":"AI 모델 전환 허용","选择模型":"모델 선택","mv_self":"폴더를 자기 자신 안으로 이동할 수 없습니다","nvdltp":"사이트 탐색 즐겨찾기 기능이 삭제되었습니다. 원본 데이터는 .url 파일로 변환되었습니다. filecat으로 .url 파일을 열면 동일한 빠른 접속을 사용할 수 있습니다.","tmplctp":"파일 위치: filecat 데이터베이스 디렉터리 아래의 tempfile/temp_delete_sys_tag_name_260926 디렉터리입니다.","网站 Logo":"웹사이트 로고","lclorur":"로컬 파일 경로 또는 http(s) 이미지 URL","全部":"전체","源码模式":"소스 모드","实时编辑模式":"실시간 편집 모드","编辑器设置":"편집기 설정","正文最大宽度":"본문 최대 너비","正文左右边距":"본문 좌우 여백","正文字号":"본문 글자 크기","行高":"줄 높이","as_iv":"자동 저장 간격(초)","as_num":"0 이상의 정수를 입력하세요","恢复默认":"기본값 복원","保存中":"저장 중","预览":"미리보기","nprmtp":"이 설정을 변경할 권한이 없습니다. 아래는 현재 구성입니다.","md_set":"MD 편집기 설정","目录挂载":"디렉터리 마운트","总开关":"마스터 스위치","挂载":"마운트","挂载到网盘":"클라우드에 마운트","编辑挂载配置":"마운트 설정 편집","取消挂载":"마운트 해제","确认取消挂载":"마운트 해제 확인","已取消挂载":"마운트 해제됨","该目录尚未挂载":"이 디렉터리는 마운트되지 않았습니다","挂载目录":"마운트 디렉터리","只读":"읽기 전용","挂载类型":"마운트 유형","显示名称":"표시 이름","标识色":"표시 색상","只读模式":"읽기 전용 모드","测试连接":"연결 테스트","测试中":"테스트 중","连接成功":"연결 성공","连接失败":"연결 실패","请选择挂载类型":"마운트 유형을 선택하세요","请填写":"입력하세요: ","未授权":"미인증","服务地址":"서버 주소","起始目录":"시작 디렉터리","留空表示根目录":"비워 두면 루트 디렉터리","主机":"호스트","默认 22":"기본 22","私钥内容":"개인 키 내용","与私钥二选一":"개인 키와 둘 중 하나만 입력","与密码二选一":"비밀번호와 둘 중 하나만 입력","存储桶":"버킷","区域":"리전","强制路径风格":"경로 스타일 강제","授权账号":"인증된 계정","百度网盘授权":"Baidu 넷디스크 인증","去授权":"인증하기","完成授权":"인증 완료","授权码":"인증 코드","回调地址":"리디렉션 URI","rqappky":"AppKey를 입력하세요","rq_scrt":"SecretKey를 입력하세요","请填写授权码":"인증 코드를 입력하세요","svappfr":"먼저 앱 설정을 저장하세요","授权成功":"인증 성공","账号可用":"계정을 사용할 수 있습니다","账号不可用":"계정을 사용할 수 없습니다","校验":"검증","已授权账号":"인증된 계정","已删除":"삭제됨","处理中":"처리 중","AppKey":"AppKey","网盘挂载":"클라우드 마운트","凭据管理":"자격 증명","凭据":"자격 증명","新增凭据":"자격 증명 추가","凭据已丢失":"자격 증명 없음","挂载列表":"마운트 목록","新增挂载":"마운트 추가","munt_rq":"마운트 디렉터리는 비워 둘 수 없습니다","请选择凭据":"자격 증명을 선택하세요","请选择类型":"유형을 선택하세요","启用":"활성화","已停用":"비활성화","确认删除":"삭제 확인:","nmuntpr":"현재 계정에 디렉터리 마운트 권한이 없습니다","百度网盘":"Baidu 넷디스크","应用配置":"앱 설정","授权":"인증","授权失败":"인증 실패","strtdrt":"시작 디렉터리","授权检测":"인증 확인","scrtkep":"SecretKey를 비우면 변경하지 않습니다","编辑应用":"앱 편집","新增授权账号":"인증 계정 추가","一键授权":"원클릭 인증","outh_ob":"수동 (oob)","pst_cd":"인증 코드 붙여넣기","确认授权":"인증 확인","授权检测/刷新":"검증/새로 고침","检测完成":"검증 완료","导入":"가져옴","账号名":"계정 이름","百度账号":"Baidu 계정","网盘昵称":"넷디스크 닉네임","授权状态":"인증 상태","过期时间":"만료 시간","授权时间":"인증 시간","已授权":"인증됨","已过期":"만료됨","停用":"비활성화","已配置":"설정됨","未配置":"설정 안 됨","网盘使用":"넷디스크 사용","自动刷新":"자동 새로 고침","编辑账号":"계정 편집","使用":"사용","当前为挂载目录":"마운트된 디렉터리","启用挂载":"마운트 사용","已启用":"사용 중","挂载已启用":"마운트를 사용했습니다","挂载已停用":"마운트를 해제했습니다","muntont":"마운트 사용 중, 클릭하여 해제","muntoff":"마운트 사용 안 함, 클릭하여 사용","凭证管理":"자격 증명","授权方式":"인증 방식","去授权(一键)":"인증하기(원클릭)","去授权(手动)":"인증하기(수동)","保存应用配置":"앱 설정 저장","atathtp":"원클릭: 인증 후 자동으로 이 페이지로 돌아오며 계정이 자동으로 추가됩니다","atathnt":"원클릭은 Baidu 콘솔에 이 서비스의 /mount/baidu/callback 을 리디렉션 URI로 등록해야 합니다","pstatht":"수동: 리디렉션 URI가 필요 없습니다. 인증 후 Baidu 페이지에서 코드를 복사해 아래에 붙여넣고 완료를 클릭하세요","crd_tp":"자격 증명은 클라우드 드라이브/원격 호스트에 연결하기 위한 계정 정보입니다. 여러 마운트에서 공유할 수 있으며 한 번 수정하면 모두 적용됩니다.","bidacct":"Baidu Netdisk 계정은 여기서 관리하지 않습니다. 아래 \\"Baidu Netdisk\\" 패널에서 인증하세요. 인증 후 해당 계정이 자동으로 생성됩니다.","pwdkept":"편집 시 비밀번호 계열 필드를 비워 두면 원래 값이 유지됩니다.","tstbfrs":"저장하기 전에 \\"연결 테스트\\"를 눌러 계정이 사용 가능한지 확인할 수 있습니다.","prtwbdv":"범용 파일 프로토콜로, 지엔궈윈·Synology NAS·Nextcloud·Alist 등이 지원합니다. 서비스 주소와 계정만 있으면 상대 디렉터리에 접근할 수 있습니다.","prtsftp":"SSH로 원격 서버의 디렉터리에 접근하고 SFTP 하위 시스템으로 파일을 전송합니다. 다른 Linux 머신의 디렉터리를 마운트하는 데 적합합니다.","prt_s3":"S3 프로토콜로 연결하는 객체 스토리지 서비스입니다. 예: MinIO, Alibaba Cloud OSS, Tencent COS, Qiniu, Cloudflare R2. 엔드포인트, 버킷, 키 쌍이 필요합니다.","深搜":"심층 검색","搜索":"검색","搜索中":"검색 중","范围":"범위","结果过多":"결과가 너무 많습니다. 키워드를 좁혀 주세요","已显示":"표시","搜文件名":"파일 이름 재귀 검색","搜到该处":"폴더로 이동","打开所在目录":"폴더 열기","输入后搜":"파일 이름 입력 후 Enter","无匹配":"일치하는 파일이 없습니다","结果截断":"결과가 너무 많습니다. 처음 500개","缩放调整":"확대/축소 조정","缩放调整成功":"확대/축소 조정 성공","缩放百分比":"확대/축소 비율","未加载":"미로드","加载成功":"로드 완료","加载失败":"로드 실패","个工具":"개 도구","No share found":"공유를 찾을 수 없습니다","Enter host first":"먼저 호스트를 입력하세요","下一步":"다음","上一步":"이전","共享目录":"공유 폴더","prt_smb":"Windows 공유 폴더(SMB/CIFS). 호스트와 계정을 입력하면 공유 이름을 선택할 수 있습니다.","prt_bd":"Baidu Netdisk. Baidu 오픈 플랫폼에서 앱을 만들고 AppKey / SecretKey를 입력한 뒤 계정을 인증하세요.","没有找到共享":"공유를 찾을 수 없습니다","粘贴授权码 code":"인증 코드 붙여넣기","重新授权":"다시 인증","请选择账号":"계정을 선택하세요","请填写备注":"비고를 입력하세요","账号已丢失":"계정을 찾을 수 없음","已暂存的更改":"스테이지된 변경 사항","全部暂存":"모두 스테이지","全部取消暂存":"모두 스테이지 해제","暂存":"스테이지","无差异":"차이 없음","二进制文件":"바이너리 파일","单栏":"통합 보기","并排":"나란히 보기","点击左侧文件查看差异":"왼쪽 파일을 클릭하여 차이를 확인하세요","未跟踪文件无差异":"추적되지 않은 파일은 차이가 없습니다","请先暂存要提交的文件":"먼저 커밋할 파일을 스테이지하세요","没有已更改的文件":"변경된 파일이 없습니다","未暂存":"스테이지되지 않음","逐行归属":"줄별 이력","无法读取该文件的归属信息":"이 파일의 이력 정보를 읽을 수 없습니다","全部文件":"모든 파일","新建分支":"새 브랜치","删除分支":"브랜치 삭제","确认删除分支":"브랜치를 삭제하시겠습니까?","合并到此分支":"이 브랜치로 병합","新分支名":"새 브랜치 이름","当前分支":"현재 브랜치","切换到":"전환","分支创建成功":"브랜치가 생성되었습니다","分支删除成功":"브랜치가 삭제되었습니다","合并成功":"병합되었습니다","标签":"태그","新建标签":"새 태그","标签名":"태그 이름","暂无标签":"태그 없음","标签创建成功":"태그가 생성되었습니다","标签删除成功":"태그가 삭제되었습니다","标签推送成功":"태그를 푸시했습니다","删除标签":"태그 삭제","确认删除标签":"태그를 삭제하시겠습니까?","请输入标签名":"태그 이름을 입력하세요","推送到远程":"원격으로 푸시","基于提交":"커밋 기준","基于当前提交":"현재 커밋 기준","暂存工作区记录":"스태시 목록","暂无记录":"기록 없음","恢复并删除":"적용 후 삭제","已恢复并删除记录":"복원 후 삭제했습니다","已应用":"적용되었습니다","远程分支":"원격 브랜치","拉取远程信息":"가져오기","拉取并清理已删除分支":"가져오기 및 정리","未配置远程仓库":"원격이 설정되지 않았습니다","签出到本地":"로컬로 체크아웃","拉取完成":"가져오기 완료","冲突":"충돌","采用我方版本":"내 변경 사용","采用对方版本":"상대 변경 사용","标记已解决":"해결됨으로 표시","标记全部已解决":"병합 완료","放弃合并":"병합 중단","确认放弃当前合并并恢复到操作前状态":"중단하고 이전 상태로 복원하시겠습니까?","已解决冲突":"충돌이 해결되었습니다","已放弃合并":"병합이 중단되었습니다","合并已完成":"병합이 완료되었습니다","撤销提交":"커밋 되돌리기","将生成一个反向提交来撤销":"되돌리기 위한 역 커밋을 생성합니다","已撤销":"되돌렸습니다","摘取提交":"체리픽","将该提交应用到当前分支":"이 커밋을 현재 브랜치에 적용","摘取成功":"체리픽 완료","搜索提交":"커밋 검색","提交信息关键词":"커밋 메시지","作者":"작성자","请输入搜索条件":"검색 조건을 입력하세요","操作历史":"작업 이력","回退到此处":"여기로 되돌리기","强制回退(丢弃改动)":"강제 리셋 (변경 버림)","此操作将永久丢弃未提交的改动":"커밋되지 않은 변경 사항이 영구히 삭제됩니다","已回退":"되돌렸습니다","已强制回退":"강제 리셋 완료","子模块":"서브모듈","无子模块":"서브모듈 없음","初始化并更新子模块":"서브모듈 초기화 및 업데이트","子模块更新完成":"서브모듈이 업데이트되었습니다","未初始化":"초기화되지 않음","与记录不一致":"기록과 다름","正常":"정상","当前提交":"현재 커밋","领先上游":"업스트림보다 앞섬","落后上游":"업스트림보다 뒤처짐","钩子":"훅","停用钩子":"훅 비활성화","确认删除并停用":"삭제하고 비활성화하시겠습니까","保存并启用":"저장 후 활성화","已保存并启用":"저장 후 활성화되었습니다","与工作区对比":"작업 트리와 비교","仓库":"저장소","初始化仓库":"저장소 초기화","克隆仓库":"저장소 복제","仓库初始化成功":"저장소가 초기화되었습니다","克隆成功":"복제되었습니다","目录名":"디렉터리 이름","请输入目录名":"디렉터리 이름을 입력하세요","仓库地址":"저장소 주소","请输入仓库地址":"저장소 주소를 입력하세요","当前目录下没有仓库":"여기에 저장소가 없습니다","进入":"열기","修改最后一次提交":"마지막 커밋 수정","已修改最后一次提交":"마지막 커밋이 수정되었습니다","分支比较":"브랜치 비교","两个分支没有差异":"브랜치 간 차이가 없습니다","确认删除远程分支":"원격 브랜치 삭제","该分支会从远程仓库删除":"이 브랜치는 원격 저장소에서 삭제됩니다","删除远程分支":"원격 브랜치 삭제","将":"병합","合并到":"으로","未推送":"푸시되지 않음","已到底部":"더 없음","没有可提交的更改":"커밋할 변경 없음","存在未暂存的改动,是否一并暂存并提交?":"스테이지되지 않은 변경이 있습니다. 함께 스테이지하고 커밋할까요?","二进制文件无法比较":"바이너리 파일은 비교할 수 없습니다","请选择文件查看改动":"변경 사항을 보려면 파일을 선택하세요","clk_edt":"클릭하여 편집","rendering":"렌더링 중…","思维导图":"마인드맵","新窗口打开":"새 탭에서 열기","已选":"선택됨","复制所选":"선택 항목 복사","删除所选":"선택 항목 삭제","全部复制":"전체 복사","多选":"선택","wbvpn_allow":"WebVPN 대상 허용 목록","wbvpn_allow_ph":"한 줄에 하나: 192.168.1.0/24 (CIDR) / 192.168.1.1 (IP) / router.local (도메인, 정확히 일치, 하위 도메인 제외)","wbvpn_tip":"WebVPN 대상 허용 목록. 한 줄에 하나, 세 가지 형식:\\n · CIDR 범위: 192.168.1.0/24\\n · 정확한 IP: 192.168.1.1 (10.0.0.5, fd00::/8, ::1 도 가능)\\n · 정확한 도메인: router.local, nas.example.com (정확히 일치, 하위 도메인 미포함)\\n공인 주소는 기본 허용. 사설, 루프백, 링크 로컬, 클라우드 메타데이터 (169.254.169.254) 등 제한 주소는 기본 차단됩니다. 잘못된 줄은 무시됩니다.","wbvpn_port_range":"프록시 포트 범위","wbvpn_port_tip":"각 대상은 독립적인 포트를 사용합니다. 접속 URL을 열면 해당 사이트를 사용할 수 있으며, 경로가 그대로 유지되어 SPA 라우팅이 정상 동작하고 사이트가 Origin 별로 격리됩니다.","wbvpn_port_tip2":"접속에는 로그인이 필요합니다. 여기서 열면 토큰이 한 번 전달되고 이후에는 쿠키로 세션이 유지됩니다. 대상은 여전히 허용 목록/주소 정책의 적용을 받습니다.","wbvpn_port_tip3":"페이지의 링크가 【활성화된 대상】을 가리키면 해당 대상의 포트로 자동 변환되어 클릭해도 프록시 안에 머뭅니다. 대상으로 설정되지 않은 도메인은 그대로 둡니다.","网页代理目标":"프록시 대상","访问地址":"접속 URL","打开":"열기","已复制":"복사됨","添加成功":"추가됨","目标地址不能为空":"대상 주소를 입력하세요","目标地址例如":"대상 주소, 예: 192.168.1.1:8080","网页代理":"웹 프록시","当前窗口打开":"현재 탭에서 열기","修改成功":"수정되었습니다","浏览器代理编辑":"브라우저 프록시 편집","已禁用":"사용 중지","prt_local":"로컬 디렉토리. 이 컴퓨터에 이미 존재하는 절대 경로를 소스로 지정하면 마운트 후 filecat 내에서 디렉토리 링크로 접근할 수 있습니다.","移动到最上":"맨 위로 이동","移动到最下":"맨 아래로 이동","会话设置":"세션 설정","服务器工作目录":"서버 작업 디렉터리","服务器工作目录提示":"예: D:\\\\projects\\\\myapp","AI 聊天":"AI 채팅","动态域名解析":"동적 DNS","平台":"공급자","账号凭证":"자격 증명","域名绑定":"도메인 바인딩","IP 来源":"IP 소스","域名":"도메인","多个域名用空格分隔":"여러 도메인은 공백으로 구분","绑定":"바인딩","填写格式":"형식","请填写账号凭证":"자격 증명을 입력하세요","确定删除吗":"삭제하시겠습니까?","ddns_help_1":"DDNS를 설정하면 DNS 레코드를 현재 공용 IP로 자동 업데이트합니다.","ddns_help_2":"IP 소스는 로컬 네트워크 인터페이스와 사용자 지정 HTTP 엔드포인트를 지원합니다.","请输入地址":"URL을 입력하세요","IP 来源管理":"IP 소스 관리","暂无数据":"데이터 없음","http_source_tip":"공용 IP를 반환하는 HTTP 엔드포인트를 추가하세요.","同步间隔":"동기화 간격","账号状态":"계정","上次同步":"마지막 동기화","验证":"검증","未验证":"미검증","失败":"실패","同步完成":"동기화 완료","间隔不能小于 10 秒":"간격은 10초 이상이어야 합니다","文字":"텍스트","请填写完整的账号凭证":"모든 자격 증명을 입력하세요"}'),l=JSON.parse('{"title":"FileCat","修改密码":"Изменить пароль","自定义auth":"Пользовательское auth","tk_exp":"Время истечения токена","目标":"Цель","目标列表":"Цели","被同步的源目录":"Исходный каталог для синхр.","成功":"Успешно","已开启":"Включено","已关闭":"Отключено","sy_tp1":"Поддерживаются только небольшие файлы, например конфиги и код","sy_tp2":"По умолчанию файлы синхронизируются только после изменения. При полной синхронизации клиент рекурсивно синхронизирует все файлы при каждом подключении.","sy_tp3":"У одной задачи может быть несколько целей, каждая со своим каталогом и настройкой полной синхр.","立即同步":"Синхронизировать","已触发同步":"Синхронизация запущена","操作失败":"Операция не удалась","tsk_off":"Сначала включите и сохраните задачу","mnt_type":"Тип монтирования","cred_sel":"Учётные данные","lcl_abs":"Локальный абсолютный путь","rem_dir":"Удалённый каталог","disp_only":"Имя в списке","tag_pub":"Изменения тегов видны всем","https_s":"Настройки HTTPS","ssl_crt":"Путь к SSL-сертификату","ssl_key":"Путь к закрытому ключу SSL","crt_pth":"Путь к файлу сертификата (cert.pem/fullchain.pem)","ky_pth":"Путь к файлу ключа (privkey.pem)","语言":"Язык","文件夹路径":"Путь к папке","编号":"Номер","路径":"Путь","是否默认":"По умолчанию?","备注":"Примечание","编辑SQL":"Редактировать SQL","SQL 预设":"Пресет SQL","耗时":"Прошедшее время","确认":"Подтвердить","请输入备注":"Введите примечание","查询全部表":"Запросить все таблицы","SQL预设设置":"Настройки пресетов SQL","SQL预设":"Пресет SQL","更新保存":"Обновить и сохранить","创建新预选项":"Создать новый пресет","添加预设":"Добавить пресет","SQL代码":"SQL-код","保存成功":"Успешно сохранено","大纲":"Структура","新建主题":"Новая тема","编辑主题":"Изменить тему","删除主题":"Удалить тему","主题名称":"Имя темы","请输入主题名称":"Введите имя темы","主题实时预览":"Живой предпросмотр","删除成功":"Удалено","删除失败":"Ошибка удаления","cf_thm":"Удалить эту тему?","导出PDF":"Экспорт в PDF","no_head":"Заголовков пока нет","未命名标题":"Заголовок без названия","更新成功":"Успешно обновлено","创建成功":"Успешно создано","sql_in":"Введите SQL-запрос","新密码":"Новый пароль","新账号":"Новый аккаунт","关闭":"Закрыть","开启":"Открыть","展开":"Развернуть","指定时间":"Указанное время","永不过期":"Не истечать никогда","清空token":"Очистить токен","保存":"Сохранить","确定":"Подтвердить","确定修改":"Подтвердить изменения","删除":"Удалить","添加":"Добавить","系统":"Система","follow_sys":"Следовать настройке системы","no_theme":"Без темы","自定义页面路由":"Пользовательский маршрут страницы ","api_rt":"Пользовательский маршрут API","跳转路由":"Маршрут перенаправления","路由":"Маршрут","文件":"Файл","自定义路由":"Пользовательские маршруты","编辑":"Редактировать","查看":"Просмотр","默认配置":"Настройки по умолчанию","设置":"Настройки","退出登录":"Выйти из аккаунта","虚拟网络":"Виртуальная сеть","系统信息":"Системная информация","工具箱":"Набор инструментов","索引":"Индекс","文件夹":"Папка","客户端":"Клиент","服务器":"Сервер","服务端":"Серверная сторона","基本信息":"Основная информация","系统性能":"Системная производительность","总容量":"Общая емкость","剩余":"Остаток","使用率":"Уровень использования","内存":"Память","系统进程":"Системные процессы","doc_ct":"Контейнер Docker","物理硬盘":"Физический жесткий диск","文件硬盘":"Файловый жесткий диск","容器":"Контейнер","名字":"Имя","镜像":"Изображение","命令":"Команда","状态":"Состояние","选择":"Выбрать","过滤":"Фильтровать","账号":"Аккаунт","密码":"Пароль","目录":"Папка","私钥路径":"Путь к приватному ключу","连接地址":"Адрес подключения","端口":"Порт","port":"порт","host":"хост","key":"ключ","代理":"Прокси","浏览器":"Браузер","网络唤醒":"Пробуждение по сети","时间工具":"Временной инструмент","切换样式":"Сменить стиль","更多":"Еще","创建文件夹":"Создать папку","创建文件":"Создать файл","连接":"Подключить","地址":"Адрес","目标设备":"Целевой устройство","发送":"Отправить","腾讯":"Тенсент","云":"Облако","厂商":"Производитель","名称":"Название","厂商名称":"Название производителя","类型":"Тип","容量":"Емкость","挂载位置":"Место монтирования","剩余容量":"Оставшаяся емкость","登录":"Войти","是":"Да","否":"Нет","秒":"Секунда","流量转发":"Передача трафика","点对点":"P2P","模式":"Режим","虚拟":"Виртуальный","在线状态":"Онлайн-статус","物理":"Физический","账号设置":"Настройки аккаунта","说明":"Описание","文件系统类型":"Тип файловой системы","机械":"Механический","固态":"SSD","复制":"Копировать","剪切":"Вырезать","压缩":"Сжать","下载":"Скачать","重命名":"Переименовать","创建文本文件":"Создать текстовый файл","解压":"Распаковать","转换到":"Преобразовать в","自定义":"Пользовательский","粘贴到此处":"Вставить сюда","创建":"Создать","制造商":"Производитель","总内存":"Общая память","最大":"Максимум","品牌":"Бренд","逻辑核心":"Логические ядра","搜索当前目录":"Поиск в текущей папке","压缩文件":"Сжать файл","取消":"Отменить","运行":"Запустить","格式":"Формат","压缩到":"Сжать в","进度":"Прогресс","解压到":"Распаковать в","当前目录":"Текущая папка","解压文件":"Распаковать файл","视频格式转换":"Конвертация видеоформата","gen_dir":"Целевой файл сгенерированного файла находится в текущей папке","ff_fmt":"Целевые форматы, поддерживаемые ffmpeg","del_f":"Удалить выбранные файлы?","输入目录名":"Введите имя папки","cut_ovr":"Подтвердить вырезание (перезапись)","cp_ovr":"Подтвердить копирование (перезапись)","修改名字":"Изменить имя","输入新名字":"Введите новое имя","个文件正在上传":"файлов загружается","确定删除":"Подтвердить удаление","是否删除":"Удалить?","输入文本名":"Введите имя текста","添加索引":"Добавить индекс","物理核心":"Физические ядра","创建目录":"Создать папку","访问目录":"Доступ к папке","mac_dst":"MAC-адрес целевого устройства","要代理的url":"URL для проксирования","系统代理端口":"Порт системного прокси","返回":"Вернуться","不允许为空":"Не может быть пустым","ff_none":"Не найден ffmpeg","disk":"Жесткий диск","part":"Раздел","lvm":"Логическое томовое управление","网址":"URL-адрес","环境":"Среда","外部软件":"Внешнее ПО","保护路径":"Защищенный путь","软件":"Программное обеспечение","是否安装":"Установлено?","角色管理":"Управление ролями","用户管理":"Управление пользователями","角色id":"ID роли","角色名":"Название роли","用户id":"ID пользователя","用户名":"Имя пользователя","目录范围":"Диапазон папок","可执行的命令":"Выполнимые команды","禁止目录范围":"Запрещенный диапазон папок","可执行命令":"Выполнимые команды","系统进程关闭":"Закрытие системных процессов","dc_ctdl":"Остановка и удаление контейнера Docker","dc_idl":"Удаление образа Docker","tk_time":"Изменить время токена","自定义资源路由":"Пользовательский маршрут ресурсов","磁盘挂载":"Монтирование диска","ssh_sv":"Сохранить SSH-ключ на диск","外部软件路径":"Путь к внешнему ПО","log_del":"Удаление, вырезание, переименование файлов","内容更新":"Обновление содержимого","标签编辑权限":"Права на редактирование меток","ssh代理":"SSH-прокси","http代理":"HTTP-прокси","浏览器代理":"Браузерный прокси","rdp代理":"RDP-прокси","rtsp播放器":"RTSP-плеер","角色":"Роль","文件回收站":"Корзина","个人保护路径":"Персональный защищенный путь","系统保护路径":"Системный защищенный путь","小于一分钟":"Менее минуты","分钟前":"минут назад","小时前":"часов назад","天前":"дней назад","月前":"месяцев назад","年前":"лет назад","挂载位置磁盘":"Диск в месте монтирования","信息":"Информация","磁盘剩余":"Остаток на диске","文件系统":"Файловая система","文件夹数":"Количество папок","文件数":"Количество файлов","当前位置":"Текущее местоположение","输入文件名":"Введите имя файла","o_stdo":"Открыть в Studio","o_img":"Открыть в редакторе изображений","预览图片":"Предпросмотр изображения","运行并实时查看":"Запустить и просматривать в режиме реального времени","实时查看":"Просмотр в режиме реального времени","输入参数运行":"Запустить с параметрами","以文本打开":"Открыть как текст","以日志打开":"Открыть как журнал","上传":"Загрузить","文件选项":"Параметры файла","添加类目":"Добавить категорию","全部编辑":"Редактировать все","输入类目名":"Введите название категории","折叠":"Свернуть","全部折叠":"Свернуть все","(无内容)":"(Нет содержимого)","请求头":"Заголовок запроса","请求体":"Тело запроса","值":"Значение","上传文件":"Загрузить файл","下载到本地目录":"Скачать в локальную папку","本地地址":"Локальный адрес","完成":"Завершено","结束":"Закончить","响应头":"Заголовок ответа","正在下载":"Скачивается","输入标签名":"Введите название метки","frm_lm":"В форме есть файлы. Невозможно добавить из-за ограничений браузера.","非对称密钥":"Асимметричный ключ","将覆盖密钥文件":"Будет перезаписан файл ключа","加密算法":"Алгоритм шифрования","输出格式":"Формат вывода","普通PEM":"Обычный PEM","生成":"Сгенерировать","ssh_dir":"Сохранить в каталог .ssh","私钥":"Приватный ключ","时间转换器":"Конвертер времени","格式化时间":"Отформатированное время","毫秒":"Миллисекунда","分秒":"Минуты и секунды","实时信息":"Информация в режиме реального времени","运行用户":"Пользователь, выполняющий запуск","当前系统":"Текущая система","进程":"Процесс","ld_wait":"Загрузка, пожалуйста, подождите...","选中":"Выбрано","创建用户":"Создать пользователя","升序":"По возрастанию","降序":"По убыванию","dc_nne":"Не удалось обнаружить Docker. Возможно, на хосте не установлен Docker или контейнер пуст.","过滤镜像":"Фильтровать образы","列表更新":"Обновить список","执行命令":"Выполнить команду","打印日志":"Печать журнала","删除容器":"Удалить контейнер","删除镜像":"Удалить образ","doc_img":"Образ Docker","doc_icf":"Подтвердить удаление выбранного образа?","系统运行于":"Система работает на","全局变量":"Глобальные переменные","up_conc":"Максимальное ограничение одновременной загрузки файлов","单用户并发数量":"Количество одновременных сессий для одного пользователя","系统并发数量":"Общее количество одновременных сессий","big_res":"Включить точку восстановления для больших файлов?","big_sz":"Размер для определения больших файлов (МБ)","大文件并发数量":"Количество одновременных загрузок больших файлов","big_ck":"Размер блока для больших файлов (МБ)","页面资源路由":"Маршрут ресурсов страницы","wf_rt":"Маршрут триггера рабочего процесса","过期时间(s)":"Время истечения (сек)","文件路径":"Путь к файлу","path_up":"Обновление системного защищенного пути","path_md":"Изменение пути PATH","执行用户":"Пользователь, выполняющий команду","执行":"Выполнить","wf_api":"Изменение API-триггера рабочего процесса","up_lim":"Изменение ограничения на количество загружаемых файлов в папку","功能权限":"Права доступа к функциям","角色备注":"Примечание к роли","pxy_off":"Закрыть загрузку через HTTP-прокси","工具功能":"Функции инструмента","全局变量设置":"Настройка глобальных переменных","文件回收站修改":"Изменение корзины файлов","文件权限":"Права доступа к файлам","log_wr":"Создание, загрузка, обновление содержимого файлов, распаковка","只读目录范围":"Диапазон папок только для чтения","更新":"Обновить","use_env":"По умолчанию использовать переменные окружения","sync_sv":"Синхронизировать информацию с выбранным сервером","add_rot":"Добавить корневую папку HTTP-ресурсов","dl_here":"Скачать HTTP-ресурсы в эту папку","文件排序":"Сортировка файлов","系统默认":"По умолчанию в системе","修改时间":"Время изменения","时间逆序":"Обратный порядок времени","时间顺序":"Прямой порядок времени","大小逆序":"Обратный порядок размера","大小顺序":"Прямой порядок размера","文件大小":"Размер файла","网站标题":"Заголовок сайта","通用设置":"Общие настройки","主题":"Тема","时区":"Часовой пояс","时间":"Время","服务器时间":"Время на сервере","在线时间":"Время онлайн","离线时间":"Время офлайн","在线":"Онлайн","离线":"Оффлайн","功能文档":"Документация по функциям","官网地址":"https://filecat.xiaobaidadada.fun/","远程代理":"Удаленный прокси","系统管理":"Системное управление","网址导航":"Навигация по сайтам","目录快捷命令":"Команда ярлыка каталога","文件快捷命令":"Команда ярлыка файла","系统网络":"Системная сеть","复制名字":"Копировать имя","分享":"Поделиться","复制绝对路径":"Копировать абсолютный путь","复制相对路径":"Копировать относительный путь","切换目录":"Переключить каталог","统计信息":"Статистика","更新AI知识库":"Обновить базу знаний ИИ","exp_hr":"Оставшееся время до истечения (часы)","可以为空":"Можно оставить пустым","自动加载":"Автозагрузка","本地知识库":"Локальная база знаний","知识库加载信息":"Информация о загрузке базы знаний","最近一次加载":"Последняя загрузка","加载进度":"Прогресс загрузки","总文件数量":"Общее количество файлов","总文件字符数量":"Общее количество символов файлов","总文件大小":"Общий размер файлов","总耗时":"Общее затраченное время","上一页":"Предыдущая страница","目标地址":"Целевой адрес","目标端口":"Целевой порт","连接状态":"Состояние соединения","个人设置":"Личные настройки","系统设置":"Системные настройки","文件后缀":"Суффикс файла","禁止执行的命令":"Запрещённые команды","Ai 配置":"Настройки ИИ","文件分享":"Обмен файлами","输入跳转的目录":"Введите каталог для перехода","文件分享列表":"Список расшаренных файлов","过期小时":"Время до истечения (часы)","下载次数":"Количество загрузок","剩余时间":"Оставшееся время","文件加载方式":"Способ загрузки файлов","全部加载文件":"Загружать все файлы","scrll_l":"Загружать файлы постранично при прокрутке","剩余时间(h)":"Оставшееся время (ч)","网络代理":"Сетевой прокси","个人":"Личное","安装方式":"Способ установки","是否开启":"Включено","系统启动执行":"Выполнять при запуске системы","表达式":"Выражение","用户":"Пользователь","详细信息":"Подробности","服务器配置":"Конфигурация сервера","客户端列表":"Список клиентов","更多服务器":"Дополнительные серверы","端口映射":"Сопоставление портов","序号":"№","服务器端口":"Порт сервера","转发客户端名称":"Имя клиента переадресации","服务端口":"Порт службы","转发ip":"IP переадресации","转发端口":"Порт переадресации","客户端代理配置":"Конфигурация прокси клиента","客户端桥接配置":"Конфигурация моста клиента","远程地址":"Удаленный адрес","在线时长":"Время в сети","fwd_nm":"Имя клиента переадресации","sv_ntf":"Сохранить и уведомить клиента о первом ключе и порте","br_port":"Список портов мостового сервера","输入消息":"Введите сообщение","用户权限":"Права пользователя","系统管理权限":"Права управления системой","网络功能权限":"Права сетевых функций","Ai 设置权限":"Права настроек ИИ","系统设置权限":"Права настроек системы","系统环境设置":"Настройки системной среды","sys_env":"Страница настроек системной среды","自定义路由页面":"Страница пользовательского маршрута","代理功能":"Функции прокси","其他功能":"Другие функции","ddns":"DDNS","ai_page":"Страница чата ИИ","pty cmd":"PTY-команда","wf_run":"Выполнение workflow","wf_user":"Пользователь выполнения workflow","cmd_rst":"Команда перезапуска filecat-restart","cmd_upg":"Команда обновления filecat-upgrade","cmd_dwn":"Команда закрытия главного процесса filecat-down","cmd_ai":"Команда ИИ (чат ИИ)","个性化设置":"Персонализированные настройки","lgn_usr":"Показать информацию о пользователе при входе","个人环境":"Личная среда","系统环境":"Системная среда","持久化":"Сохранять","个人环境设置":"Настройки личного окружения","其他参数":"Другие параметры","父编号":"Родительский ID","代理配置":"Конфигурация прокси","桥接配置":"Конфигурация моста","内网穿透":"Проникновение во внутреннюю сеть","fc_pxy":"Прокси-доступ Filecat","fc_pxyw":"Прокси-доступ Filecat через интерфейс сервера","fc_pxyr":"Пользовательский адрес прокси Filecat","原客户端":"Исходный клиент","原目录":"Исходный каталог","目标客户端":"Целевой клиент","目标目录":"Целевой каталог","忽略目录":"Игнорируемый каталог","双向同步":"Двунаправленная синхронизация","客户端文件同步":"Синхронизация файлов клиента","客户端设置":"Настройки клиента","pxy_nln":"Не использовать прокси для локальных (интранет) адресов","忽略ip":"Игнорировать IP","ai_ask":"Запрашивать у сервера всё","本地目录":"Локальная папка","响应体":"Тело ответа","客户端功能":"Функции клиента","全量同步":"Полная синхронизация","公钥":"Открытый ключ","跟随系统":"Системная настройка","字符消耗统计":"Статистика потребления символов","加载中...":"Загрузка...","对话轮次":"Раунды диалога","AI输入字符":"Входные символы ИИ","AI输出字符":"Выходные символы ИИ","暂无统计数据":"Нет статистических данных","会话":"Сессии","新会话":"Новая сессия","提示词":"Промпт","llm_pmt":"Редактируемый LLM промпт","LLM编辑开关":"Переключатель редактирования LLM","编辑规则":"Правила редактирования","选择系统提示词":"Выбрать системный промпт","清空全部会话":"Очистить все сессии","cf_all":"Подтвердить удаление всех чат-сессий?","cf_msgs":"Подтвердить удаление выбранных сообщений?","cf_ses":"Подтвердить удаление выбранных сессий?","cf_one":"Подтвердить удаление этого сообщения?","批量选择":"Групповой выбор","查看所有用户会话":"Сессии всех пользователей","查看全部会话时不可发送消息":"Нельзя отправлять сообщения при просмотре всех сессий","仅看我的会话":"Только мои сессии","取消批量选择":"Отменить выбор","删除选中消息":"Удалить сообщения","删除选中会话":"Удалить сессии","切换模型":"Сменить модель","添加文件":"Добавить файл","无描述":"Нет описания","暂无工具":"Нет инструментов","查看工具":"Просмотр инструментов","加载工具":"Загрузить инструменты","系统会话提示词":"Системные промпты сессий","删除记录":"Удалить запись","手动加载":"Ручная загрузка","从索引删除":"Удалить из индекса","知识库开关":"Переключатель базы знаний","文本对话":"Текстовый диалог","图片生成":"Генерация изображений","向量嵌入":"Векторное внедрение","图片参数设置":"Настройки параметров изображения","更多属性":"Больше атрибутов","model类型":"Тип модели","成为tool":"Стать инструментом","操作":"Действия","查看Git提交":"Просмотр Git коммитов","Git":"Git","变更":"Changes","提交记录":"Commits","全选":"Select All","没有变更":"No changes","暂无提交记录":"No commits yet","分支":"Branch","git_msg":"Enter commit message...","提交":"Коммит","暂存全部":"Stage All","暂存选中":"Stage Selected","取消暂存":"Unstage","已暂存":"Staged","已暂存全部":"All staged","已取消暂存":"Unstaged","请输入提交信息":"Please enter commit message","提交成功":"Commit successful","推送成功":"Push successful","拉取成功":"Pull successful","切换分支成功":"Branch switched","远程操作":"Remote Operations","拉取":"Pull","推送":"Push","强制推送":"Force Push","暂存工作区":"Stash","暂存工作区成功":"Stash successful","恢复工作区":"Stash Pop","恢复工作区成功":"Stash pop successful","刷新":"Refresh","请先选择文件":"Please select files first","提示:":"Tips:","git_stg":"Check files on the left, then use \\"Stage Selected\\" to add them to staging area","git_cmt":"Enter commit message and click \\"Commit\\"","git_cf":"If conflicts occur, please resolve them in shell before committing","git_frc":"\\"Force Push\\" will overwrite the remote branch, use with caution","配置表":"Config Table","自动升级":"Автообновление","exe_tpl":"Шаблон URL загрузки EXE","offcal":"Оставьте пустым для использования официальных GitHub Releases","检测频率(秒)":"Интервал проверки (секунды)","def_180":"По умолчанию 180с (3 минуты)","chk_10s":"Интервал проверки не может быть менее 10 секунд","ver_url":"URL проверки версии","ver_req":"URL проверки версии не может быть пустым","用户配置":"Конфигурация пользователя","邮箱":"Почта","代理设置":"Настройки прокси","全局代理":"Глобальный прокси","仓库代理":"Прокси репозитория","修改":"Изменить","用户配置已保存":"Конфигурация пользователя сохранена","代理配置已保存":"Настройки прокси сохранены","pxy_clr":"Оставьте пустым для удаления прокси","pxy_nte":"Конфигурация пользователя и глобальный прокси применяются ко всем репозиториям","pxy_url":"Адрес HTTP-прокси","pxy_tip":"Применяется к HTTP-запросам, отправляемым системой filecat (проверка версии, автоматическое обновление, DDNS, загрузка команд, пользовательская маршрутизация и т. д.). Примечание: на macOS, если системный прокси уже включен, оставьте поле пустым, чтобы избежать двойного проксирования.","端口扫描":"Сканирование портов","目标主机":"Целевой хост","起始端口":"Начальный порт","结束端口":"Конечный порт","并发数":"Параллельность","超时(ms)":"Тайм-аут (мс)","扫描":"Сканировать","扫描结果":"Результаты сканирования","扫描完成":"Сканирование завершено","扫描失败":"Сканирование не удалось","正在扫描...":"Сканирование...","未发现开放端口":"Открытые порты не найдены","scan_in":"Введите параметры и нажмите «Сканировать»","hostreq":"Адрес хоста не может быть пустым","端口范围无效":"Недопустимый диапазон портов","portrng":"Начальный порт не может быть больше конечного","开放":"Открыт","总计扫描":"Всего просканировано","已发现":"Найдено","当前":"Текущий","扫描已取消":"Сканирование отменено","自动换行":"Авто перенос","不换行":"Без переноса","替换":"Заменить","env编辑":"Редактировать env","命令确认":"Подтверждение команды","命令检测开启":"Включить обнаружение команд","命令检测关闭":"Отключить обнаружение команд","命令检测已开启":"Обнаружение команд включено","命令检测已关闭":"Обнаружение команд отключено","此会话不再询问":"Больше не спрашивать для этой сессии","doc_pxy":"Конфигурация прокси Docker","HTTP 代理":"HTTP-прокси","pxy_htt":"HTTPS-прокси","pxy_nne":"No Proxy","保存失败":"Не удалось сохранить","MD编辑器":"Редактор MD","行":"Строка","列":"Столбец","默认":"По умолчанию","删除行":"Удалить строку","删除列":"Удалить столбец","上方插入行":"Вставить строку выше","切换表头行":"Переключить строку заголовка","合并单元格":"Объединить ячейки","拆分单元格":"Разделить ячейку","下方插入行":"Вставить строку ниже","左侧插入列":"Вставить столбец слева","右侧插入列":"Вставить столбец справа","插入表格":"Вставить таблицу","加载中":"Загрузка","打开失败":"Не удалось открыть","重启失败":"Не удалось перезапустить","doc_cfg":"Конфигурация Docker","名单视图":"Список","文本视图":"Текст","目标(To)":"Цель (To)","动作":"Действие","fw_from":"Источник (From)","删除规则":"Удалить правило","规则编号":"Номер правила","点击复制":"Нажмите, чтобы скопировать","镜像加速":"Зеркала реестра","不安全仓库":"Небезопасные реестры","开启调试":"Включить отладку","数据存储目录":"Корневой каталог данных","存储驱动":"Драйвер хранилища","日志驱动":"Драйвер журналов","fw_iptb":"Включить iptables","lve_rst":"Live Restore","添加规则":"Добавить правило","请填写端口号":"Укажите порт","方向":"Направление","协议":"Протокол","来源地址":"Адрес источника","获取失败":"Не удалось получить","进程环境变量":"Переменные окружения процесса","端口实例":"Экземпляр порта","srchbln":"Открыть каталог в режиме пустого поиска","搜索会话":"Поиск сеансов","sw_mdl":"Разрешить переключение ИИ-моделей","选择模型":"Выбрать модель","mv_self":"Нельзя переместить папку внутрь себя","nvdltp":"Функция закладок навигации по сайтам была удалена. Исходные данные преобразованы в файлы .url. Откройте файл .url с помощью filecat, чтобы получить такой же быстрый доступ.","tmplctp":"Расположение файлов: каталог tempfile/temp_delete_sys_tag_name_260926 в каталоге базы данных filecat.","网站 Logo":"Логотип сайта","lclorur":"Путь к локальному файлу или URL изображения http(s)","全部":"Все","源码模式":"Режим исходника","实时编辑模式":"Режим live-редактирования","编辑器设置":"Настройки редактора","正文最大宽度":"Макс. ширина содержимого","正文左右边距":"Боковые отступы содержимого","正文字号":"Размер шрифта содержимого","行高":"Высота строки","as_iv":"Интервал автосохранения (сек)","as_num":"Введите целое число от 0","恢复默认":"Сбросить по умолчанию","保存中":"Сохранение","预览":"Предпросмотр","nprmtp":"У вас нет прав на изменение этой настройки. Ниже показана текущая конфигурация.","md_set":"Настройки редактора MD","目录挂载":"Монтирование каталога","总开关":"Главный переключатель","挂载":"Смонтировать","挂载到网盘":"Смонтировать в облако","编辑挂载配置":"Изменить настройки монтирования","取消挂载":"Размонтировать","确认取消挂载":"Подтвердите размонтирование","已取消挂载":"Размонтировано","该目录尚未挂载":"Этот каталог не смонтирован","挂载目录":"Каталог монтирования","只读":"Только чтение","挂载类型":"Тип монтирования","显示名称":"Отображаемое имя","标识色":"Цвет метки","只读模式":"Режим только чтения","测试连接":"Проверить подключение","测试中":"Проверка","连接成功":"Подключение успешно","连接失败":"Не удалось подключиться","请选择挂载类型":"Выберите тип монтирования","请填写":"Заполните: ","未授权":"Не авторизовано","服务地址":"Адрес сервера","起始目录":"Начальный каталог","留空表示根目录":"Оставьте пустым для корневого каталога","主机":"Хост","默认 22":"По умолчанию 22","私钥内容":"Содержимое закрытого ключа","与私钥二选一":"Выберите это или закрытый ключ","与密码二选一":"Выберите это или пароль","存储桶":"Бакет","区域":"Регион","强制路径风格":"Принудительный стиль пути","授权账号":"Авторизованный аккаунт","百度网盘授权":"Авторизация Baidu Netdisk","去授权":"Авторизовать","完成授权":"Завершить авторизацию","授权码":"Код авторизации","回调地址":"URI перенаправления","rqappky":"Введите AppKey","rq_scrt":"Введите SecretKey","请填写授权码":"Введите код авторизации","svappfr":"Сначала сохраните конфигурацию приложения","授权成功":"Авторизация успешна","账号可用":"Аккаунт доступен","账号不可用":"Аккаунт недоступен","校验":"Проверить","已授权账号":"Авторизованные аккаунты","已删除":"Удалено","处理中":"Обработка","AppKey":"AppKey","网盘挂载":"Монтирование облака","凭据管理":"Учётные данные","凭据":"Учётные данные","新增凭据":"Добавить учётные данные","凭据已丢失":"Учётные данные отсутствуют","挂载列表":"Список монтирований","新增挂载":"Добавить монтирование","munt_rq":"Каталог монтирования не может быть пустым","请选择凭据":"Выберите учётные данные","请选择类型":"Выберите тип","启用":"Включено","已停用":"Отключено","确认删除":"Подтвердите удаление","nmuntpr":"У текущего аккаунта нет прав на монтирование каталогов","百度网盘":"Baidu Netdisk","应用配置":"Настройки приложения","授权":"Авторизация","授权失败":"Ошибка авторизации","strtdrt":"Начальный каталог","授权检测":"Проверка авторизации","scrtkep":"Оставьте SecretKey пустым, чтобы не менять","编辑应用":"Изменить приложение","新增授权账号":"Добавить авторизованный аккаунт","一键授权":"Авторизация в один клик","outh_ob":"Вручную (oob)","pst_cd":"Вставьте код авторизации","确认授权":"Подтвердить авторизацию","授权检测/刷新":"Проверить / обновить","检测完成":"Проверка завершена","导入":"импортировано","账号名":"Имя аккаунта","百度账号":"Аккаунт Baidu","网盘昵称":"Никнейм Netdisk","授权状态":"Статус авторизации","过期时间":"Истекает","授权时间":"Авторизовано","已授权":"Авторизовано","已过期":"Истекло","停用":"Отключить","已配置":"Настроено","未配置":"Не настроено","网盘使用":"Использование Netdisk","自动刷新":"Автообновление","编辑账号":"Изменить аккаунт","使用":"Использование","当前为挂载目录":"Смонтированный каталог","启用挂载":"Включить монтирование","已启用":"Включено","挂载已启用":"Монтирование включено","挂载已停用":"Монтирование отключено","muntont":"Монтирование включено, нажмите для отключения","muntoff":"Монтирование отключено, нажмите для включения","凭证管理":"Учётные данные","授权方式":"Способ авторизации","去授权(一键)":"Авторизоваться (в один клик)","去授权(手动)":"Авторизоваться (вручную)","保存应用配置":"Сохранить настройки приложения","atathtp":"В один клик: после авторизации вы вернётесь на эту страницу, аккаунт добавится автоматически","atathnt":"Для авторизации в один клик нужно зарегистрировать /mount/baidu/callback этого сервиса как redirect URI в консоли Baidu","pstatht":"Вручную: redirect URI не нужен. После авторизации скопируйте код на странице Baidu, вставьте его ниже и нажмите «Завершить»","crd_tp":"Учётные данные — это информация об аккаунте для подключения к облаку или удалённому хосту. Их можно использовать в нескольких точках монтирования; изменение применяется сразу везде.","bidacct":"Аккаунты Baidu Netdisk здесь не ведутся. Авторизуйте их в панели \\"Baidu Netdisk\\" ниже — соответствующая учётная запись создастся автоматически.","pwdkept":"При редактировании пустое поле пароля означает, что исходное значение сохраняется.","tstbfrs":"Перед сохранением можно нажать \\"Проверить соединение\\", чтобы убедиться, что аккаунт работает.","prtwbdv":"Универсальный файловый протокол, поддерживаемый Jianguoyun, Synology NAS, Nextcloud, Alist и другими. Достаточно адреса сервиса и учётной записи, чтобы работать с удалённым каталогом.","prtsftp":"Доступ к каталогу на удалённом сервере по SSH с передачей файлов через подсистему SFTP. Подходит для монтирования каталога с другой Linux-машины.","prt_s3":"Сервисы объектного хранилища, доступные по протоколу S3, например MinIO, Alibaba Cloud OSS, Tencent COS, Qiniu и Cloudflare R2. Требуются адрес сервиса, бакет и пара ключей.","深搜":"Глубокий поиск","搜索":"Поиск","搜索中":"Поиск...","范围":"Область","结果过多":"Слишком много результатов, уточните запрос","已显示":"Показано","搜文件名":"Рекурсивный поиск по имени","搜到该处":"Перейти в папку","打开所在目录":"Открыть папку","输入后搜":"Введите имя и нажмите Enter","无匹配":"Файлы не найдены","结果截断":"Слишком много результатов, первые 500","缩放调整":"Настройка масштаба","缩放调整成功":"Масштаб успешно изменён","缩放百分比":"Процент масштаба","未加载":"Не загружено","加载成功":"Загружено","加载失败":"Ошибка загрузки","个工具":"инструментов","No share found":"Общие ресурсы не найдены","Enter host first":"Сначала укажите хост","下一步":"Далее","上一步":"Назад","共享目录":"Общий ресурс","prt_smb":"Общая папка Windows (SMB/CIFS). Укажите хост и учётную запись, затем выберите ресурс.","prt_bd":"Baidu Netdisk. Создайте приложение на открытой платформе Baidu, укажите AppKey / SecretKey и авторизуйте аккаунт.","没有找到共享":"Общие ресурсы не найдены","粘贴授权码 code":"Вставьте код авторизации","重新授权":"Авторизовать заново","请选择账号":"Пожалуйста, выберите аккаунт","请填写备注":"Введите примечание","账号已丢失":"Аккаунт не найден","已暂存的更改":"Проиндексированные изменения","全部暂存":"Индексировать все","全部取消暂存":"Снять индекс со всех","暂存":"Индексировать","无差异":"Нет различий","二进制文件":"Бинарный файл","单栏":"Объединённый","并排":"Рядом","点击左侧文件查看差异":"Нажмите файл слева, чтобы увидеть различия","未跟踪文件无差异":"У неотслеживаемых файлов нет различий","请先暂存要提交的文件":"Сначала проиндексируйте файлы для коммита","没有已更改的文件":"Нет изменённых файлов","未暂存":"Не проиндексировано","逐行归属":"Авторство строк","无法读取该文件的归属信息":"Не удалось прочитать информацию об авторстве файла","全部文件":"Все файлы","新建分支":"Новая ветка","删除分支":"Удалить ветку","确认删除分支":"Удалить ветку?","合并到此分支":"Слить в эту ветку","新分支名":"Имя новой ветки","当前分支":"Текущая ветка","切换到":"Переключиться на","分支创建成功":"Ветка создана","分支删除成功":"Ветка удалена","合并成功":"Слияние выполнено","标签":"Теги","新建标签":"Новый тег","标签名":"Имя тега","暂无标签":"Нет тегов","标签创建成功":"Тег создан","标签删除成功":"Тег удалён","标签推送成功":"Тег отправлен","删除标签":"Удалить тег","确认删除标签":"Удалить тег?","请输入标签名":"Введите имя тега","推送到远程":"Отправить в удалённый","基于提交":"На основе коммита","基于当前提交":"На основе текущего коммита","暂存工作区记录":"Записи stash","暂无记录":"Нет записей","恢复并删除":"Извлечь","已恢复并删除记录":"Восстановлено и удалено","已应用":"Применено","远程分支":"Удалённые ветки","拉取远程信息":"Получить","拉取并清理已删除分支":"Получить и очистить","未配置远程仓库":"Удалённый репозиторий не настроен","签出到本地":"Извлечь локально","拉取完成":"Получение завершено","冲突":"Конфликты","采用我方版本":"Использовать свою версию","采用对方版本":"Использовать их версию","标记已解决":"Отметить как решённый","标记全部已解决":"Завершить слияние","放弃合并":"Прервать слияние","确认放弃当前合并并恢复到操作前状态":"Прервать и вернуть предыдущее состояние?","已解决冲突":"Конфликт разрешён","已放弃合并":"Слияние прервано","合并已完成":"Слияние завершено","撤销提交":"Отменить коммит","将生成一个反向提交来撤销":"Будет создан обратный коммит","已撤销":"Отменено","摘取提交":"Cherry-pick","将该提交应用到当前分支":"Применить коммит к текущей ветке","摘取成功":"Cherry-pick выполнен","搜索提交":"Поиск коммитов","提交信息关键词":"Сообщение коммита","作者":"Автор","请输入搜索条件":"Введите условия поиска","操作历史":"История операций","回退到此处":"Сбросить сюда","强制回退(丢弃改动)":"Жёсткий сброс (потеря изменений)","此操作将永久丢弃未提交的改动":"Незакоммиченные изменения будут безвозвратно удалены","已回退":"Сброшено","已强制回退":"Жёсткий сброс выполнен","子模块":"Подмодули","无子模块":"Нет подмодулей","初始化并更新子模块":"Инициализировать и обновить подмодули","子模块更新完成":"Подмодули обновлены","未初始化":"Не инициализирован","与记录不一致":"Отличается от записи","正常":"В норме","当前提交":"Текущий коммит","领先上游":"Опережает upstream","落后上游":"Отстаёт от upstream","钩子":"Хуки","停用钩子":"Отключить хук","确认删除并停用":"Удалить и отключить","保存并启用":"Сохранить и включить","已保存并启用":"Сохранено и включено","与工作区对比":"Сравнить с рабочим деревом","仓库":"Репозитории","初始化仓库":"Инициализировать репозиторий","克隆仓库":"Клонировать репозиторий","仓库初始化成功":"Репозиторий инициализирован","克隆成功":"Клонировано","目录名":"Имя каталога","请输入目录名":"Введите имя каталога","仓库地址":"Адрес репозитория","请输入仓库地址":"Введите адрес репозитория","当前目录下没有仓库":"Здесь нет репозиториев","进入":"Открыть","修改最后一次提交":"Изменить последний коммит","已修改最后一次提交":"Последний коммит изменён","分支比较":"Сравнить ветки","两个分支没有差异":"Нет различий между ветками","确认删除远程分支":"Удалить удалённую ветку","该分支会从远程仓库删除":"Эта ветка будет удалена из удалённого репозитория","删除远程分支":"Удалить удалённую ветку","将":"Слить","合并到":"в","未推送":"Не отправлено","已到底部":"Больше нет","没有可提交的更改":"Нет изменений","存在未暂存的改动,是否一并暂存并提交?":"Есть неиндексированные изменения. Добавить и закоммитить вместе?","二进制文件无法比较":"Двоичный файл нельзя сравнить","请选择文件查看改动":"Выберите файл для просмотра изменений","clk_edt":"Нажмите для редактирования","rendering":"Отрисовка…","思维导图":"Интеллект-карта","新窗口打开":"Открыть в новой вкладке","已选":"Выбрано","复制所选":"Копировать выбранное","删除所选":"Удалить выбранное","全部复制":"Копировать всё","多选":"Выбрать","wbvpn_allow":"Белый список целей WebVPN","wbvpn_allow_ph":"По одному в строке: 192.168.1.0/24 (CIDR) / 192.168.1.1 (IP) / router.local (домен, точное совпадение, без поддоменов)","wbvpn_tip":"Белый список целей WebVPN. По одному в строке, три формата:\\n · Диапазон CIDR: 192.168.1.0/24\\n · Точный IP: 192.168.1.1 (также 10.0.0.5, fd00::/8, ::1)\\n · Точный домен: router.local, nas.example.com (точное совпадение, поддомены НЕ включаются)\\nПубличные адреса разрешены по умолчанию. Частные, петлевые, link-local, облачные метаданные (169.254.169.254) и прочие зарезервированные адреса запрещены. Некорректные строки игнорируются.","wbvpn_port_range":"Диапазон портов прокси","wbvpn_port_tip":"Каждая цель занимает отдельный порт. Откройте URL доступа, чтобы просмотреть сайт; путь остаётся чистым, работает маршрутизация SPA, сайты изолированы по Origin.","wbvpn_port_tip2":"Для доступа нужен вход: открытие отсюда один раз передаёт токен, далее сессия поддерживается cookie. Цели по-прежнему подчиняются белому списку / политике адресов.","wbvpn_port_tip3":"Ссылки на странице, ведущие на включённую цель, автоматически переписываются на порт этой цели, поэтому переход остаётся внутри прокси; домены, не настроенные как цели, не изменяются.","网页代理目标":"Цели прокси","访问地址":"URL доступа","打开":"Открыть","已复制":"Скопировано","添加成功":"Добавлено","目标地址不能为空":"Адрес цели не может быть пустым","目标地址例如":"Адрес цели, напр. 192.168.1.1:8080","网页代理":"Веб-прокси","当前窗口打开":"Открыть в текущей вкладке","修改成功":"Изменено","浏览器代理编辑":"Редактирование браузерного прокси","已禁用":"Отключено","prt_local":"Локальная папка. Укажите существующий абсолютный путь на этой машине как источник; после монтирования к нему можно обращаться как к ссылке на папку внутри filecat.","移动到最上":"Переместить вверх","移动到最下":"Переместить вниз","会话设置":"Настройки сессии","服务器工作目录":"Рабочий каталог на сервере","服务器工作目录提示":"например: D:\\\\projects\\\\myapp","AI 聊天":"ИИ-чат","动态域名解析":"Динамический DNS","平台":"Провайдер","账号凭证":"Учётные данные","域名绑定":"Привязка домена","IP 来源":"Источник IP","域名":"Домен","多个域名用空格分隔":"Несколько доменов через пробел","绑定":"Привязка","填写格式":"Формат","请填写账号凭证":"Введите учётные данные","确定删除吗":"Удалить?","ddns_help_1":"Настройте DDNS для автоматического обновления DNS-записей вашим текущим публичным IP.","ddns_help_2":"Источники IP включают локальные интерфейсы и пользовательские HTTP-адреса.","请输入地址":"Введите URL","IP 来源管理":"Управление источниками IP","暂无数据":"Нет данных","http_source_tip":"Добавьте HTTP-адрес, возвращающий ваш публичный IP.","同步间隔":"Интервал синхронизации","账号状态":"Аккаунт","上次同步":"Последняя синхронизация","验证":"Проверить","未验证":"Не проверено","失败":"Ошибка","同步完成":"Синхронизация завершена","间隔不能小于 10 秒":"Интервал не менее 10 секунд","文字":"Текст","请填写完整的账号凭证":"Заполните все поля учётных данных"}'),c=JSON.parse('{"title":"FileCat","修改密码":"Changer le mot de passe","自定义auth":"Authentification personnalisée","tk_exp":"Date d\'expiration du jeton","目标":"Cible","目标列表":"Cibles","被同步的源目录":"Dossier source à synchroniser","成功":"Succès","已开启":"Activé","已关闭":"Désactivé","sy_tp1":"Seuls les petits fichiers sont pris en charge, comme les configs et le code","sy_tp2":"Les fichiers ne sont pas synchronisés immédiatement par défaut, seulement après modification. Avec la synchro complète, le client synchronise récursivement tous les fichiers à chaque connexion.","sy_tp3":"Une tâche peut avoir plusieurs cibles, chacune avec son dossier et l\'option de synchro complète.","立即同步":"Synchroniser","已触发同步":"Sync déclenchée","操作失败":"Opération échouée","tsk_off":"Activez et enregistrez d\'abord la tâche","mnt_type":"Type de montage","cred_sel":"Identifiant","lcl_abs":"Chemin local absolu","rem_dir":"Dossier distant","disp_only":"Nom affiché dans la liste","tag_pub":"Les modifications de tags sont visibles par tous","https_s":"Paramètres HTTPS","ssl_crt":"Chemin du certificat SSL","ssl_key":"Chemin de la clé privée SSL","crt_pth":"Chemin du certificat (cert.pem/fullchain.pem)","ky_pth":"Chemin de la clé privée (privkey.pem)","语言":"Langue","文件夹路径":"Chemin du dossier","编号":"Numéro","路径":"Chemin","是否默认":"Est-ce par défaut?","备注":"Remarque","编辑SQL":"Modifier SQL","SQL 预设":"Préréglage SQL","耗时":"Temps écoulé","确认":"Confirmer","请输入备注":"Veuillez saisir une note","查询全部表":"Interroger toutes les tables","SQL预设设置":"Paramètres des préréglages SQL","SQL预设":"Préréglage SQL","更新保存":"Mettre à jour et enregistrer","创建新预选项":"Créer un nouveau préréglage","添加预设":"Ajouter un préréglage","SQL代码":"Code SQL","保存成功":"Enregistré avec succès","大纲":"Plan","新建主题":"Nouveau thème","编辑主题":"Modifier le thème","删除主题":"Supprimer le thème","主题名称":"Nom du thème","请输入主题名称":"Saisissez le nom du thème","主题实时预览":"Aperçu en direct","删除成功":"Supprimé","删除失败":"Échec de la suppression","cf_thm":"Supprimer ce thème ?","导出PDF":"Exporter en PDF","no_head":"Pas encore de titres","未命名标题":"Titre sans nom","更新成功":"Mis à jour avec succès","创建成功":"Créé avec succès","sql_in":"Veuillez saisir la requête SQL","新密码":"Nouveau mot de passe","新账号":"Nouveau compte","关闭":"Fermer","开启":"Ouvrir","展开":"Déplier","指定时间":"Heure spécifiée","永不过期":"Jamais expiré","清空token":"Vider le jeton","保存":"Enregistrer","确定":"Confirmer","确定修改":"Confirmer la modification","删除":"Supprimer","添加":"Ajouter","系统":"Système","follow_sys":"Suivre le réglage système","no_theme":"Aucun thème","自定义页面路由":"Itinéraire de page personnalisé","api_rt":"Itinéraire API personnalisé","跳转路由":"Itinéraire de redirection","路由":"Itinéraire","文件":"Fichier","自定义路由":"Routes personnalisées","编辑":"Éditer","查看":"Voir","默认配置":"Configuration par défaut","设置":"Paramètres","退出登录":"Se déconnecter","虚拟网络":"Réseau virtuel","系统信息":"Informations système","工具箱":"Boîte à outils","索引":"Index","文件夹":"Dossier","客户端":"Client","服务器":"Serveur","服务端":"Serveur","基本信息":"Informations de base","系统性能":"Performances système","总容量":"Capacité totale","剩余":"Restant","使用率":"Taux d\'utilisation","内存":"Mémoire","系统进程":"Processus système","doc_ct":"Conteneur Docker","物理硬盘":"Disque dur physique","文件硬盘":"Disque dur de fichiers","容器":"Conteneur","名字":"Nom","镜像":"Image","命令":"Commande","状态":"État","选择":"Sélectionner","过滤":"Filtrer","账号":"Compte","密码":"Mot de passe","目录":"Répertoire","私钥路径":"Chemin de la clé privée","连接地址":"Adresse de connexion","端口":"Port","port":"port","host":"hôte","key":"clé","代理":"Proxy","浏览器":"Navigateur","网络唤醒":"Réveil réseau","时间工具":"Outil de temps","切换样式":"Changer de style","更多":"Plus","创建文件夹":"Créer un dossier","创建文件":"Créer un fichier","连接":"Connexion","地址":"Adresse","目标设备":"Appareil cible","发送":"Envoyer","腾讯":"Tencent","云":"Cloud","厂商":"Fabricant","名称":"Nom","厂商名称":"Nom du fabricant","类型":"Type","容量":"Capacité","挂载位置":"Point de montage","剩余容量":"Capacité restante","登录":"Se connecter","是":"Oui","否":"Non","秒":"Seconde","流量转发":"Transfert de trafic","点对点":"Point à point","模式":"Mode","虚拟":"Virtuel","在线状态":"État en ligne","物理":"Physique","账号设置":"Paramètres du compte","说明":"Description","文件系统类型":"Type de système de fichiers","机械":"Mécanique","固态":"Solide","复制":"Copier","剪切":"Couper","压缩":"Compresser","下载":"Télécharger","重命名":"Renommer","创建文本文件":"Créer un fichier texte","解压":"Décompresser","转换到":"Convertir en","自定义":"Personnalisé","粘贴到此处":"Coller ici","创建":"Créer","制造商":"Fabricant","总内存":"Mémoire totale","最大":"Maximum","品牌":"Marque","逻辑核心":"Cœur logique","搜索当前目录":"Rechercher dans le répertoire actuel","压缩文件":"Fichier compressé","取消":"Annuler","运行":"Exécuter","格式":"Format","压缩到":"Compresser dans","进度":"Progression","解压到":"Décompresser dans","当前目录":"Répertoire actuel","解压文件":"Décompresser le fichier","视频格式转换":"Conversion de format vidéo","gen_dir":"Le fichier cible généré se trouve dans ce répertoire","ff_fmt":"Formats cibles pris en charge par ffmpeg","del_f":"Voulez-vous supprimer le fichier sélectionné?","输入目录名":"Entrez le nom du répertoire","cut_ovr":"Confirmer la coupe (écrasement)","cp_ovr":"Confirmer la copie (écrasement)","修改名字":"Modifier le nom","输入新名字":"Entrez le nouveau nom","个文件正在上传":"fichiers en cours de téléchargement","确定删除":"Confirmer la suppression","是否删除":"Voulez-vous supprimer?","输入文本名":"Entrez le nom du texte","添加索引":"Ajouter un index","物理核心":"Cœur physique","创建目录":"Créer un répertoire","访问目录":"Accéder au répertoire","mac_dst":"Adresse MAC de l\'appareil cible","要代理的url":"URL à proxyfier","系统代理端口":"Port de proxy système","返回":"Retourner","不允许为空":"Ne peut pas être vide","ff_none":"Impossible de trouver ffmpeg","disk":"Disque","part":"Partition","lvm":"Volume logique","网址":"URL","环境":"Environnement","外部软件":"Logiciel externe","保护路径":"Chemin protégé","软件":"Logiciel","是否安装":"Est-ce installé?","角色管理":"Gestion des rôles","用户管理":"Gestion des utilisateurs","角色id":"ID du rôle","角色名":"Nom du rôle","用户id":"ID de l\'utilisateur","用户名":"Nom d\'utilisateur","目录范围":"Portée du répertoire","可执行的命令":"Commandes exécutables","禁止目录范围":"Portée du répertoire interdit","可执行命令":"Commandes exécutables","系统进程关闭":"Arrêt des processus système","dc_ctdl":"Arrêt et suppression des conteneurs Docker","dc_idl":"Suppression des images Docker","tk_time":"Modification de la durée du jeton","自定义资源路由":"Itinéraire de ressources personnalisé","磁盘挂载":"Montage du disque","ssh_sv":"Enregistrement de la clé SSH sur le disque","外部软件路径":"Chemin du logiciel externe","log_del":"Suppression, coupe et renommage de fichiers","内容更新":"Mise à jour du contenu","标签编辑权限":"Droits d\'édition des étiquettes","ssh代理":"Proxy SSH","http代理":"Proxy HTTP","浏览器代理":"Proxy de navigateur","rdp代理":"Proxy RDP","rtsp播放器":"Lecteur RTSP","角色":"Rôle","文件回收站":"Corbeille de fichiers","个人保护路径":"Chemin protégé personnel","系统保护路径":"Chemin protégé système","小于一分钟":"Moins d\'une minute","分钟前":"il y a quelques minutes","小时前":"il y a quelques heures","天前":"il y a quelques jours","月前":"il y a quelques mois","年前":"il y a quelques années","挂载位置磁盘":"Disque du point de montage","信息":"Informations","磁盘剩余":"Espace restant sur le disque","文件系统":"Système de fichiers","文件夹数":"Nombre de dossiers","文件数":"Nombre de fichiers","当前位置":"Position actuelle","输入文件名":"Entrez le nom du fichier","o_stdo":"Ouvrir avec studio","o_img":"Ouvrir avec l\'éditeur d\'images","预览图片":"Aperçu de l\'image","运行并实时查看":"Exécuter et voir en temps réel","实时查看":"Voir en temps réel","输入参数运行":"Exécuter avec des paramètres","以文本打开":"Ouvrir en tant que texte","以日志打开":"Ouvrir en tant que journal","上传":"Téléverser","文件选项":"Options de fichier","添加类目":"Ajouter une catégorie","全部编辑":"Tout éditer","输入类目名":"Entrez le nom de la catégorie","折叠":"Plier","全部折叠":"Tout plier","(无内容)":"(Aucun contenu)","请求头":"En-tête de demande","请求体":"Corps de la demande","值":"Valeur","上传文件":"Téléverser un fichier","下载到本地目录":"Télécharger dans le répertoire local","本地地址":"Adresse locale","完成":"Terminé","结束":"Fin","响应头":"En-tête de réponse","正在下载":"En cours de téléchargement","输入标签名":"Entrez le nom de l\'étiquette","frm_lm":"Le formulaire contient des fichiers, le navigateur ne permet pas d\'ajouter","非对称密钥":"Clé asymétrique","将覆盖密钥文件":"Écrasera le fichier de clé","加密算法":"Algorithme de cryptage","输出格式":"Format de sortie","普通PEM":"PEM ordinaire","生成":"Générer","ssh_dir":"Enregistrer dans le répertoire .ssh","私钥":"Clé privée","时间转换器":"Convertisseur de temps","格式化时间":"Formater le temps","毫秒":"Milliseconde","分秒":"Minute et seconde","实时信息":"Informations en temps réel","运行用户":"Utilisateur en cours d\'exécution","当前系统":"Système actuel","进程":"Processus","ld_wait":"Chargement en cours, veuillez patienter...","选中":"Sélectionné","创建用户":"Créer un utilisateur","升序":"Ordre croissant","降序":"Ordre décroissant","dc_nne":"Impossible de détecter Docker, le serveur hôte n\'a peut-être pas Docker installé ou les conteneurs sont vides","过滤镜像":"Filtrer les images","列表更新":"Mise à jour de la liste","执行命令":"Exécuter une commande","打印日志":"Imprimer le journal","删除容器":"Supprimer le conteneur","删除镜像":"Supprimer l\'image","doc_img":"Image Docker","doc_icf":"Êtes-vous sûr de vouloir supprimer l\'image sélectionnée?","系统运行于":"Le système fonctionne sur","全局变量":"Variable globale","up_conc":"Limite maximale de téléversement de fichiers en parallèle","单用户并发数量":"Nombre de connexions simultanées par utilisateur","系统并发数量":"Nombre de connexions simultanées du système","big_res":"Activer la reprise de téléversement de gros fichiers?","big_sz":"Taille de jugement pour les gros fichiers (MB)","大文件并发数量":"Nombre de téléversements simultanés de gros fichiers","big_ck":"Taille de bloc pour les gros fichiers (MB)","页面资源路由":"Itinéraire des ressources de page","wf_rt":"Itinéraire de déclenchement de workflow","过期时间(s)":"Temps d\'expiration (s)","文件路径":"Chemin du fichier","path_up":"Mise à jour du chemin protégé système","path_md":"Modification du chemin PATH","执行用户":"Utilisateur d\'exécution","执行":"Exécuter","wf_api":"Modification de l\'API de déclenchement de workflow","up_lim":"Modification de la limite du nombre de fichiers téléversés dans le répertoire","功能权限":"Droits de fonctionnalité","角色备注":"Remarque sur le rôle","pxy_off":"Téléchargement via proxy HTTP désactivé","工具功能":"Fonctionnalités de l\'outil","全局变量设置":"Paramètres des variables globales","文件回收站修改":"Modification de la corbeille de fichiers","文件权限":"Droits de fichier","log_wr":"Création, téléversement, mise à jour de contenu et décompression de fichiers","只读目录范围":"Portée du répertoire en lecture seule","更新":"Mettre à jour","use_env":"Utiliser les variables d\'environnement par défaut","sync_sv":"Synchroniser les informations avec le serveur sélectionné","add_rot":"Ajouter le répertoire racine des ressources HTTP","dl_here":"Télécharger les ressources HTTP dans ce répertoire","文件排序":"Tri de fichiers","系统默认":"Par défaut du système","修改时间":"Heure de modification","时间逆序":"Ordre inverse du temps","时间顺序":"Ordre chronologique","大小逆序":"Ordre inverse de la taille","大小顺序":"Ordre de la taille","文件大小":"Taille du fichier","网站标题":"Titre du site web","通用设置":"Paramètres généraux","主题":"Thème","时区":"Fuseau horaire","时间":"Heure","服务器时间":"Heure du serveur","在线时间":"Heure en ligne","离线时间":"Heure hors ligne","在线":"En ligne","离线":"Hors ligne","功能文档":"Documentation fonctionnelle","官网地址":"https://filecat.xiaobaidadada.fun/","远程代理":"Proxy distant","系统管理":"Gestion du système","网址导航":"Navigation des URL","目录快捷命令":"Commande de raccourci de répertoire","文件快捷命令":"Commande de raccourci de fichier","系统网络":"Réseau du système","复制名字":"Copier le nom","分享":"Partager","复制绝对路径":"Copier le chemin absolu","复制相对路径":"Copier le chemin relatif","切换目录":"Changer de répertoire","统计信息":"Statistiques","更新AI知识库":"Mettre à jour la base de connaissances IA","exp_hr":"Temps restant avant expiration (heures)","可以为空":"Peut être vide","自动加载":"Chargement automatique","本地知识库":"Base de connaissances locale","知识库加载信息":"Informations de chargement de la base de connaissances","最近一次加载":"Dernier chargement","加载进度":"Progression du chargement","总文件数量":"Nombre total de fichiers","总文件字符数量":"Nombre total de caractères des fichiers","总文件大小":"Taille totale des fichiers","总耗时":"Temps total écoulé","上一页":"Page précédente","目标地址":"Adresse cible","目标端口":"Port cible","连接状态":"État de la connexion","个人设置":"Paramètres personnels","系统设置":"Paramètres système","文件后缀":"Suffixe de fichier","禁止执行的命令":"Commandes interdites","Ai 配置":"Configuration IA","文件分享":"Partage de fichiers","输入跳转的目录":"Saisir le répertoire de destination","文件分享列表":"Liste de partage de fichiers","过期小时":"Heures avant expiration","下载次数":"Nombre de téléchargements","剩余时间":"Temps restant","文件加载方式":"Mode de chargement des fichiers","全部加载文件":"Charger tous les fichiers","scrll_l":"Charger les fichiers avec défilement paginé","剩余时间(h)":"Temps restant (h)","网络代理":"Proxy réseau","个人":"Personnel","安装方式":"Méthode d\'installation","是否开启":"Activé","系统启动执行":"Exécuter au démarrage du système","表达式":"Expression","用户":"Utilisateur","详细信息":"Détails","服务器配置":"Configuration du serveur","客户端列表":"Liste des clients","更多服务器":"Plus de serveurs","端口映射":"Mappage de ports","序号":"N°","服务器端口":"Port du serveur","转发客户端名称":"Nom du client de transfert","服务端口":"Port du service","转发ip":"IP de transfert","转发端口":"Port de transfert","客户端代理配置":"Configuration du proxy client","客户端桥接配置":"Configuration du pont client","远程地址":"Adresse distante","在线时长":"Durée en ligne","fwd_nm":"Nom du client de transfert","sv_ntf":"Enregistrer et notifier au client la première clé et le port","br_port":"Liste des ports du serveur pont","输入消息":"Saisir un message","用户权限":"Autorisations utilisateur","系统管理权限":"Autorisations de gestion système","网络功能权限":"Autorisations des fonctions réseau","Ai 设置权限":"Autorisations des paramètres IA","系统设置权限":"Autorisations des paramètres système","系统环境设置":"Paramètres d\'environnement système","sys_env":"Page des paramètres d\'environnement système","自定义路由页面":"Page de route personnalisée","代理功能":"Fonctions de proxy","其他功能":"Autres fonctions","ddns":"DDNS","ai_page":"Page de chat IA","pty cmd":"Commande PTY","wf_run":"Exécution du workflow","wf_user":"Utilisateur d\'exécution du workflow","cmd_rst":"Commande de redémarrage filecat-restart","cmd_upg":"Commande de mise à niveau filecat-upgrade","cmd_dwn":"Commande pour fermer le processus principal filecat-down","cmd_ai":"Commande IA (chat IA)","个性化设置":"Paramètres personnalisés","lgn_usr":"Afficher les informations utilisateur à la connexion","个人环境":"Environnement Personnel","系统环境":"Environnement Système","持久化":"Persister","个人环境设置":"Paramètres d\'environnement personnel","其他参数":"Autres paramètres","父编号":"ID parent","代理配置":"Configuration du proxy","桥接配置":"Configuration du pont","内网穿透":"Pénétration intranet","fc_pxy":"Accès proxy Filecat","fc_pxyw":"Accès proxy Filecat via frontend serveur","fc_pxyr":"Adresse proxy Filecat personnalisée","原客户端":"Client source","原目录":"Répertoire source","目标客户端":"Client cible","目标目录":"Répertoire cible","忽略目录":"Répertoire ignoré","双向同步":"Synchronisation bidirectionnelle","客户端文件同步":"Synchronisation de fichiers client","客户端设置":"Paramètres du client","pxy_nln":"Ne pas utiliser de serveur proxy pour les adresses locales (Intranet)","忽略ip":"Ignorer l\'IP","ai_ask":"Tout demander au serveur","本地目录":"Répertoire local","响应体":"Corps de la réponse","客户端功能":"Fonctionnalités client","全量同步":"Synchronisation complète","公钥":"Clé publique","跟随系统":"Suivre le système","字符消耗统计":"Statistiques de consommation de caractères","加载中...":"Chargement...","对话轮次":"Tours de conversation","AI输入字符":"Caractères d\'entrée IA","AI输出字符":"Caractères de sortie IA","暂无统计数据":"Aucune statistique disponible","会话":"Sessions","新会话":"Nouvelle session","提示词":"Prompt","llm_pmt":"Prompt modifiable par LLM","LLM编辑开关":"Commutateur d\'édition LLM","编辑规则":"Règles d\'édition","选择系统提示词":"Sélectionner le Prompt Système","清空全部会话":"Effacer toutes les sessions","cf_all":"Confirmer la suppression de toutes les sessions de chat ?","cf_msgs":"Confirmer la suppression des messages sélectionnés ?","cf_ses":"Confirmer la suppression des sessions sélectionnées ?","cf_one":"Confirmer la suppression de ce message ?","批量选择":"Sélection groupée","查看所有用户会话":"Sessions de tous les utilisateurs","查看全部会话时不可发送消息":"Impossible d\'envoyer des messages en consultant toutes les sessions","仅看我的会话":"Mes sessions uniquement","取消批量选择":"Annuler la sélection","删除选中消息":"Supprimer les messages","删除选中会话":"Supprimer les sessions","切换模型":"Changer de modèle","添加文件":"Ajouter un fichier","无描述":"Aucune description","暂无工具":"Aucun outil","查看工具":"Voir les outils","加载工具":"Charger les outils","系统会话提示词":"Prompts de session système","删除记录":"Supprimer l\'enregistrement","手动加载":"Chargement manuel","从索引删除":"Supprimer de l\'index","知识库开关":"Interrupteur de base de connaissances","文本对话":"Dialogue textuel","图片生成":"Génération d\'images","向量嵌入":"Plongement vectoriel","图片参数设置":"Paramètres d\'image","更多属性":"Plus d\'attributs","model类型":"Type de modèle","成为tool":"Devenir un outil","操作":"Opérations","查看Git提交":"Voir les commits Git","Git":"Git","变更":"Changes","提交记录":"Commits","全选":"Select All","没有变更":"No changes","暂无提交记录":"No commits yet","分支":"Branch","git_msg":"Enter commit message...","提交":"Commit","暂存全部":"Stage All","暂存选中":"Stage Selected","取消暂存":"Unstage","已暂存":"Staged","已暂存全部":"All staged","已取消暂存":"Unstaged","请输入提交信息":"Please enter commit message","提交成功":"Commit successful","推送成功":"Push successful","拉取成功":"Pull successful","切换分支成功":"Branch switched","远程操作":"Remote Operations","拉取":"Pull","推送":"Push","强制推送":"Force Push","暂存工作区":"Stash","暂存工作区成功":"Stash successful","恢复工作区":"Stash Pop","恢复工作区成功":"Stash pop successful","刷新":"Refresh","请先选择文件":"Please select files first","提示:":"Tips:","git_stg":"Check files on the left, then use \\"Stage Selected\\" to add them to staging area","git_cmt":"Enter commit message and click \\"Commit\\"","git_cf":"If conflicts occur, please resolve them in shell before committing","git_frc":"\\"Force Push\\" will overwrite the remote branch, use with caution","配置表":"Config Table","自动升级":"Mise à jour automatique","exe_tpl":"Modèle d\'URL de téléchargement EXE","offcal":"Laisser vide pour utiliser les GitHub Releases officiels","检测频率(秒)":"Intervalle de vérification (secondes)","def_180":"Défaut 180s (3 minutes)","chk_10s":"L\'intervalle de vérification ne peut pas être inférieur à 10 secondes","ver_url":"URL de vérification de version","ver_req":"L\'URL de vérification ne peut pas être vide","用户配置":"Configuration utilisateur","邮箱":"E-mail","代理设置":"Paramètres proxy","全局代理":"Proxy global","仓库代理":"Proxy du dépôt","修改":"Modifier","用户配置已保存":"Configuration utilisateur enregistrée","代理配置已保存":"Paramètres proxy enregistrés","pxy_clr":"Laisser vide pour effacer le proxy","pxy_nte":"La configuration utilisateur et le proxy global s\'appliquent à tous les dépôts","pxy_url":"Adresse du proxy HTTP","pxy_tip":"S\'applique aux requêtes HTTP émises par le système filecat (vérification de version, mise à jour automatique, DDNS, téléchargement de commandes, retransmission personnalisée, etc.). Remarque : sur macOS, si le proxy système est déjà activé, laissez ce champ vide pour éviter un double proxy.","端口扫描":"Scan de Ports","目标主机":"Hôte Cible","起始端口":"Port de Début","结束端口":"Port de Fin","并发数":"Concurrence","超时(ms)":"Délai d\'Attente (ms)","扫描":"Scanner","扫描结果":"Résultats du Scan","扫描完成":"Scan terminé","扫描失败":"Scan échoué","正在扫描...":"Analyse en cours...","未发现开放端口":"Aucun port ouvert trouvé","scan_in":"Saisissez les paramètres et cliquez sur Scanner","hostreq":"L\'adresse hôte ne peut pas être vide","端口范围无效":"Plage de ports invalide","portrng":"Le port de début ne peut pas être supérieur au port de fin","开放":"Ouvert","总计扫描":"Total Scanné","已发现":"Trouvé","当前":"Actuel","扫描已取消":"Scan annulé","自动换行":"Retour à la ligne automatique","不换行":"Pas de retour","替换":"Remplacer","env编辑":"Modifier env","命令确认":"Confirmation de commande","命令检测开启":"Activer la détection de commandes","命令检测关闭":"Désactiver la détection de commandes","命令检测已开启":"Détection de commandes activée","命令检测已关闭":"Détection de commandes désactivée","此会话不再询问":"Ne plus demander pour cette session","doc_pxy":"Configuration du proxy Docker","HTTP 代理":"Proxy HTTP","pxy_htt":"Proxy HTTPS","pxy_nne":"No Proxy","保存失败":"Échec de l\'enregistrement","MD编辑器":"Éditeur MD","行":"Ligne","列":"Colonne","默认":"Par défaut","删除行":"Supprimer la ligne","删除列":"Supprimer la colonne","上方插入行":"Insérer une ligne au-dessus","切换表头行":"Basculer la ligne d\'en-tête","合并单元格":"Fusionner les cellules","拆分单元格":"Diviser la cellule","下方插入行":"Insérer une ligne en dessous","左侧插入列":"Insérer une colonne à gauche","右侧插入列":"Insérer une colonne à droite","插入表格":"Insérer un tableau","加载中":"Chargement","打开失败":"Échec de l\'ouverture","重启失败":"Échec du redémarrage","doc_cfg":"Config Docker","名单视图":"Vue liste","文本视图":"Vue texte","目标(To)":"Cible (To)","动作":"Action","fw_from":"Source (From)","删除规则":"Supprimer la règle","规则编号":"Numéro de règle","点击复制":"Cliquer pour copier","镜像加速":"Miroirs de registre","不安全仓库":"Registres non sécurisés","开启调试":"Activer le débogage","数据存储目录":"Répertoire de données","存储驱动":"Pilote de stockage","日志驱动":"Pilote de journaux","fw_iptb":"Activer iptables","lve_rst":"Restauration en direct","添加规则":"Ajouter une règle","请填写端口号":"Veuillez saisir un port","方向":"Direction","协议":"Protocole","来源地址":"Adresse source","获取失败":"Échec de la récupération","进程环境变量":"Variables d\'environnement du processus","端口实例":"Instance de port","srchbln":"Ouvrir le répertoire en mode de recherche vide","搜索会话":"Rechercher des sessions","sw_mdl":"Autoriser le changement de modèle IA","选择模型":"Sélectionner un modèle","mv_self":"Impossible de déplacer un dossier dans lui-même","nvdltp":"La fonction de favoris de navigation de sites a été supprimée. Les données d\'origine ont été converties en fichiers .url. Ouvrez un fichier .url avec filecat pour obtenir le même accès rapide.","tmplctp":"Emplacement des fichiers : le répertoire tempfile/temp_delete_sys_tag_name_260926 dans le répertoire de base de données de filecat.","网站 Logo":"Logo du site","lclorur":"Chemin de fichier local ou URL d\'image http(s)","全部":"Tout","源码模式":"Mode source","实时编辑模式":"Mode édition en direct","编辑器设置":"Paramètres de l\'éditeur","正文最大宽度":"Largeur max du contenu","正文左右边距":"Marge latérale du contenu","正文字号":"Taille de police du contenu","行高":"Hauteur de ligne","as_iv":"Intervalle de sauvegarde auto (s)","as_num":"Saisissez un entier supérieur ou égal à 0","恢复默认":"Rétablir les valeurs par défaut","保存中":"Enregistrement","预览":"Aperçu","nprmtp":"Vous n\'êtes pas autorisé à modifier ce paramètre. La configuration actuelle est affichée ci-dessous.","md_set":"Paramètres de l\'éditeur MD","目录挂载":"Montage de répertoire","总开关":"Interrupteur principal","挂载":"Monter","挂载到网盘":"Monter vers le cloud","编辑挂载配置":"Modifier le montage","取消挂载":"Démonter","确认取消挂载":"Confirmer le démontage","已取消挂载":"Démonté","该目录尚未挂载":"Ce répertoire n\'est pas monté","挂载目录":"Répertoire de montage","只读":"Lecture seule","挂载类型":"Type de montage","显示名称":"Nom affiché","标识色":"Couleur du marqueur","只读模式":"Mode lecture seule","测试连接":"Tester la connexion","测试中":"Test en cours","连接成功":"Connexion réussie","连接失败":"Échec de la connexion","请选择挂载类型":"Veuillez sélectionner un type de montage","请填写":"Veuillez renseigner : ","未授权":"Non autorisé","服务地址":"Adresse du serveur","起始目录":"Répertoire de départ","留空表示根目录":"Laisser vide pour le répertoire racine","主机":"Hôte","默认 22":"Par défaut 22","私钥内容":"Contenu de la clé privée","与私钥二选一":"Choisissez ceci ou la clé privée","与密码二选一":"Choisissez ceci ou le mot de passe","存储桶":"Bucket","区域":"Région","强制路径风格":"Forcer le style de chemin","授权账号":"Compte autorisé","百度网盘授权":"Autorisation Baidu Netdisk","去授权":"Autoriser","完成授权":"Terminer l\'autorisation","授权码":"Code d\'autorisation","回调地址":"URI de redirection","rqappky":"Veuillez saisir l\'AppKey","rq_scrt":"Veuillez saisir le SecretKey","请填写授权码":"Veuillez saisir le code d\'autorisation","svappfr":"Veuillez d\'abord enregistrer la configuration de l\'app","授权成功":"Autorisation réussie","账号可用":"Compte disponible","账号不可用":"Compte indisponible","校验":"Vérifier","已授权账号":"Comptes autorisés","已删除":"Supprimé","处理中":"Traitement","AppKey":"AppKey","网盘挂载":"Montage cloud","凭据管理":"Identifiants","凭据":"Identifiant","新增凭据":"Ajouter un identifiant","凭据已丢失":"Identifiant manquant","挂载列表":"Montages","新增挂载":"Ajouter un montage","munt_rq":"Le répertoire de montage ne peut pas être vide","请选择凭据":"Veuillez sélectionner un identifiant","请选择类型":"Veuillez sélectionner un type","启用":"Activé","已停用":"Désactivé","确认删除":"Confirmer la suppression de","nmuntpr":"Le compte actuel n\'a pas la permission de montage de répertoire","百度网盘":"Baidu Netdisk","应用配置":"Paramètres de l\'app","授权":"Autoriser","授权失败":"Échec de l\'autorisation","strtdrt":"Dossier de départ","授权检测":"Vérifier l\'autorisation","scrtkep":"Laisser SecretKey vide pour ne pas modifier","编辑应用":"Modifier l\'app","新增授权账号":"Ajouter un compte autorisé","一键授权":"Autorisation en un clic","outh_ob":"Manuel (oob)","pst_cd":"Coller le code d\'autorisation","确认授权":"Confirmer l\'autorisation","授权检测/刷新":"Vérifier / rafraîchir","检测完成":"Vérification terminée","导入":"importés","账号名":"Nom du compte","百度账号":"Compte Baidu","网盘昵称":"Pseudo Netdisk","授权状态":"Statut d\'autorisation","过期时间":"Expire le","授权时间":"Autorisé le","已授权":"Autorisé","已过期":"Expiré","停用":"Désactiver","已配置":"Configuré","未配置":"Non configuré","网盘使用":"Cloud activé","自动刷新":"Rafraîchissement auto","编辑账号":"Modifier le compte","使用":"Utiliser","当前为挂载目录":"Répertoire monté","启用挂载":"Activer les montages","已启用":"Activé","挂载已启用":"Montages activés","挂载已停用":"Montages désactivés","muntont":"Montages activés, cliquez pour désactiver","muntoff":"Montages désactivés, cliquez pour activer","凭证管理":"Identifiants","授权方式":"Mode d\'autorisation","去授权(一键)":"Autoriser (un clic)","去授权(手动)":"Autoriser (manuel)","保存应用配置":"Enregistrer la config","atathtp":"En un clic : vous serez redirigé ici après l\'autorisation et le compte sera ajouté automatiquement","atathnt":"L\'autorisation en un clic nécessite d\'enregistrer /mount/baidu/callback de ce service comme URI de redirection dans la console Baidu","pstatht":"Manuel : aucune URI de redirection requise. Après autorisation, copiez le code sur la page Baidu, collez-le ci-dessous et cliquez sur Terminer","crd_tp":"Un identifiant est l\'information de compte permettant de se connecter à un cloud ou à un hôte distant. Il peut être partagé par plusieurs points de montage ; une modification s\'applique partout immédiatement.","bidacct":"Les comptes Baidu Netdisk ne sont pas gérés ici. Autorisez-les dans le panneau \\"Baidu Netdisk\\" ci-dessous ; le compte correspondant est créé automatiquement après l\'autorisation.","pwdkept":"Lors de l\'édition, laisser vide un champ de type mot de passe conserve la valeur d\'origine.","tstbfrs":"Avant d\'enregistrer, vous pouvez cliquer sur \\"Tester la connexion\\" pour vérifier le compte.","prtwbdv":"Un protocole de fichiers universel pris en charge par Jianguoyun, Synology NAS, Nextcloud, Alist, etc. Une URL de service et un compte suffisent pour parcourir le dossier distant.","prtsftp":"Accédez à un dossier d\'un serveur distant via SSH, avec transfert de fichiers par le sous-système SFTP. Idéal pour monter un dossier d\'une autre machine Linux.","prt_s3":"Services de stockage objet accessibles via le protocole S3, comme MinIO, Alibaba Cloud OSS, Tencent COS, Qiniu et Cloudflare R2. Nécessite une URL de service, un bucket et une paire de clés.","深搜":"Rech. prof.","搜索":"Rechercher","搜索中":"Recherche","范围":"Portée","结果过多":"Trop de résultats, affinez le mot-clé","已显示":"Affichés","搜文件名":"Rechercher le nom de fichier","搜到该处":"Aller au dossier","打开所在目录":"Ouvrir le dossier","输入后搜":"Saisissez un nom puis Entrée","无匹配":"Aucun fichier correspondant","结果截断":"Trop de résultats, 500 premiers","缩放调整":"Ajuster le zoom","缩放调整成功":"Zoom ajusté avec succès","缩放百分比":"Pourcentage de zoom","未加载":"Non chargé","加载成功":"Chargé","加载失败":"Échec du chargement","个工具":"outils","No share found":"Aucun partage trouvé","Enter host first":"Saisissez d\'abord l\'hôte","下一步":"Suivant","上一步":"Précédent","共享目录":"Dossier partagé","prt_smb":"Dossier partagé Windows (SMB/CIFS). Renseignez l\'hôte et le compte, puis choisissez un partage.","prt_bd":"Baidu Netdisk. Créez une app sur la plateforme ouverte de Baidu, saisissez AppKey / SecretKey, puis autorisez un compte.","没有找到共享":"Aucun partage trouvé","粘贴授权码 code":"Collez le code d\'autorisation","重新授权":"Réautoriser","请选择账号":"Veuillez sélectionner un compte","请填写备注":"Veuillez saisir une note","账号已丢失":"Compte introuvable","已暂存的更改":"Modifications indexées","全部暂存":"Tout indexer","全部取消暂存":"Tout désindexer","暂存":"Indexer","无差异":"Aucune différence","二进制文件":"Fichier binaire","单栏":"Unifiée","并排":"Côte à côte","点击左侧文件查看差异":"Cliquez sur un fichier à gauche pour voir les différences","未跟踪文件无差异":"Les fichiers non suivis n\'ont pas de différence","请先暂存要提交的文件":"Indexez d\'abord les fichiers à valider","没有已更改的文件":"Aucun fichier modifié","未暂存":"Non indexé","逐行归属":"Annoter","无法读取该文件的归属信息":"Impossible de lire les annotations de ce fichier","全部文件":"Tous les fichiers","新建分支":"Nouvelle branche","删除分支":"Supprimer la branche","确认删除分支":"Supprimer la branche ?","合并到此分支":"Fusionner dans cette branche","新分支名":"Nom de la nouvelle branche","当前分支":"Branche actuelle","切换到":"Basculer vers","分支创建成功":"Branche créée","分支删除成功":"Branche supprimée","合并成功":"Fusionné","标签":"Étiquettes","新建标签":"Nouvelle étiquette","标签名":"Nom de l\'étiquette","暂无标签":"Aucune étiquette","标签创建成功":"Étiquette créée","标签删除成功":"Étiquette supprimée","标签推送成功":"Étiquette poussée","删除标签":"Supprimer l\'étiquette","确认删除标签":"Supprimer l\'étiquette ?","请输入标签名":"Saisissez un nom d\'étiquette","推送到远程":"Pousser vers le distant","基于提交":"Basé sur le commit","基于当前提交":"Basé sur le commit actuel","暂存工作区记录":"Entrées de remisage","暂无记录":"Aucune entrée","恢复并删除":"Extraire","已恢复并删除记录":"Restauré et supprimé","已应用":"Appliqué","远程分支":"Branches distantes","拉取远程信息":"Récupérer","拉取并清理已删除分支":"Récupérer et élaguer","未配置远程仓库":"Aucun distant configuré","签出到本地":"Extraire localement","拉取完成":"Récupération terminée","冲突":"Conflits","采用我方版本":"Utiliser la nôtre","采用对方版本":"Utiliser la leur","标记已解决":"Marquer comme résolu","标记全部已解决":"Terminer la fusion","放弃合并":"Abandonner la fusion","确认放弃当前合并并恢复到操作前状态":"Abandonner et restaurer l\'état précédent ?","已解决冲突":"Conflit résolu","已放弃合并":"Fusion abandonnée","合并已完成":"Fusion terminée","撤销提交":"Annuler le commit","将生成一个反向提交来撤销":"Créera un commit inverse pour annuler","已撤销":"Annulé","摘取提交":"Cherry-pick","将该提交应用到当前分支":"Appliquer ce commit à la branche actuelle","摘取成功":"Cherry-pick appliqué","搜索提交":"Rechercher des commits","提交信息关键词":"Message du commit","作者":"Auteur","请输入搜索条件":"Saisissez des critères","操作历史":"Historique","回退到此处":"Réinitialiser ici","强制回退(丢弃改动)":"Reset dur (perdre les modifications)","此操作将永久丢弃未提交的改动":"Cela supprime définitivement les modifications non validées","已回退":"Réinitialisé","已强制回退":"Reset dur effectué","子模块":"Sous-modules","无子模块":"Aucun sous-module","初始化并更新子模块":"Initialiser et mettre à jour les sous-modules","子模块更新完成":"Sous-modules mis à jour","未初始化":"Non initialisé","与记录不一致":"Diffère de l\'enregistrement","正常":"Normal","当前提交":"Commit actuel","领先上游":"En avance sur le distant","落后上游":"En retard sur le distant","钩子":"Hooks","停用钩子":"Désactiver le hook","确认删除并停用":"Supprimer et désactiver","保存并启用":"Enregistrer et activer","已保存并启用":"Enregistré et activé","与工作区对比":"Comparer avec le répertoire de travail","仓库":"Dépôts","初始化仓库":"Initialiser le dépôt","克隆仓库":"Cloner le dépôt","仓库初始化成功":"Dépôt initialisé","克隆成功":"Cloné","目录名":"Nom du répertoire","请输入目录名":"Saisissez un nom de répertoire","仓库地址":"URL du dépôt","请输入仓库地址":"Saisissez l\'URL du dépôt","当前目录下没有仓库":"Aucun dépôt ici","进入":"Ouvrir","修改最后一次提交":"Modifier le dernier commit","已修改最后一次提交":"Dernier commit modifié","分支比较":"Comparer les branches","两个分支没有差异":"Aucune différence entre les branches","确认删除远程分支":"Supprimer la branche distante","该分支会从远程仓库删除":"Cette branche sera supprimée du dépôt distant","删除远程分支":"Supprimer la branche distante","将":"Fusionner","合并到":"dans","未推送":"Non poussé","已到底部":"Plus rien","没有可提交的更改":"Rien à valider","存在未暂存的改动,是否一并暂存并提交?":"Des modifications ne sont pas indexées. Les indexer et valider ensemble ?","二进制文件无法比较":"Impossible de comparer un fichier binaire","请选择文件查看改动":"Sélectionnez un fichier pour voir les modifications","clk_edt":"Cliquer pour modifier","rendering":"Rendu en cours…","思维导图":"Carte mentale","新窗口打开":"Ouvrir dans un nouvel onglet","已选":"Sélectionnés","复制所选":"Copier la sélection","删除所选":"Supprimer la sélection","全部复制":"Tout copier","多选":"Sélectionner","wbvpn_allow":"Liste blanche des cibles WebVPN","wbvpn_allow_ph":"Une entrée par ligne : 192.168.1.0/24 (CIDR) / 192.168.1.1 (IP) / router.local (domaine, correspondance exacte, sans sous-domaines)","wbvpn_tip":"Liste blanche des cibles WebVPN. Une entrée par ligne, trois formats :\\n · Plage CIDR : 192.168.1.0/24\\n · IP exacte : 192.168.1.1 (aussi 10.0.0.5, fd00::/8, ::1)\\n · Domaine exact : router.local, nas.example.com (correspondance exacte, sous-domaines NON inclus)\\nLes adresses publiques sont autorisées par défaut. Les adresses privées, loopback, link-local, métadonnées cloud (169.254.169.254) et réservées sont interdites. Les lignes mal formées sont ignorées.","wbvpn_port_range":"Plage de ports proxy","wbvpn_port_tip":"Chaque cible occupe un port indépendant. Ouvrez l\'URL d\'accès pour naviguer ; le chemin reste propre, le routage SPA fonctionne et les sites sont isolés par origine.","wbvpn_port_tip2":"L\'accès nécessite une connexion : l\'ouverture d\'ici transmet un jeton une fois, ensuite un cookie maintient la session. Les cibles restent soumises à la liste blanche / politique d\'adresses.","wbvpn_port_tip3":"Les liens de la page pointant vers une cible active sont automatiquement réécrits vers le port de cette cible, de sorte que le clic reste dans le proxy ; les domaines non configurés comme cibles ne sont pas modifiés.","网页代理目标":"Cibles proxy","访问地址":"URL d\'accès","打开":"Ouvrir","已复制":"Copié","添加成功":"Ajouté","目标地址不能为空":"L\'adresse cible ne peut pas être vide","目标地址例如":"Adresse cible, ex. 192.168.1.1:8080","网页代理":"Proxy Web","当前窗口打开":"Ouvrir dans l\'onglet actuel","修改成功":"Modifié","浏览器代理编辑":"Édition du proxy de navigateur","已禁用":"Désactivé","prt_local":"Répertoire local. Indiquez un chemin absolu existant sur cette machine comme source ; après le montage, vous pourrez y accéder comme un lien de répertoire dans filecat.","移动到最上":"Déplacer en haut","移动到最下":"Déplacer en bas","会话设置":"Paramètres de session","服务器工作目录":"Répertoire de travail du serveur","服务器工作目录提示":"ex. : D:\\\\projects\\\\myapp","AI 聊天":"Chat IA","动态域名解析":"DNS dynamique","平台":"Fournisseur","账号凭证":"Identifiants","域名绑定":"Liaison de domaine","IP 来源":"Source IP","域名":"Domaine","多个域名用空格分隔":"Séparez les domaines par des espaces","绑定":"Liaison","填写格式":"Format","请填写账号凭证":"Veuillez saisir les identifiants","确定删除吗":"Confirmer la suppression ?","ddns_help_1":"Configurez le DDNS pour mettre à jour automatiquement les enregistrements DNS avec votre IP publique actuelle.","ddns_help_2":"Les sources IP incluent les interfaces locales et des URL HTTP personnalisées.","请输入地址":"Veuillez saisir l\'URL","IP 来源管理":"Gérer les sources IP","暂无数据":"Aucune donnée","http_source_tip":"Ajoutez une URL HTTP renvoyant votre IP publique.","同步间隔":"Intervalle de synchro","账号状态":"Compte","上次同步":"Dernière synchro","验证":"Vérifier","未验证":"Non vérifié","失败":"Échec","同步完成":"Synchronisation terminée","间隔不能小于 10 秒":"L\'intervalle doit être d\'au moins 10 secondes","文字":"Texte","请填写完整的账号凭证":"Veuillez remplir tous les champs d\'identifiants"}'),u=JSON.parse('{"title":"FileCat","修改密码":"Cambiar contraseña","自定义auth":"Autenticación personalizada","tk_exp":"Tiempo de expiración del token","目标":"Destino","目标列表":"Destinos","被同步的源目录":"Dir origen a sincronizar","成功":"Éxito","已开启":"Activado","已关闭":"Desactivado","sy_tp1":"Solo se admiten archivos pequeños, como configs y código","sy_tp2":"Los archivos no se sincronizan de inmediato por defecto, solo tras modificarse. Con sincronización completa activada, ese cliente sincroniza todos los archivos de forma recursiva en cada conexión.","sy_tp3":"Una tarea puede tener varios destinos, cada uno con su directorio y opción de sincronización completa.","立即同步":"Sincronizar ahora","已触发同步":"Sincronización iniciada","操作失败":"Operación fallida","tsk_off":"Activa y guarda la tarea primero","mnt_type":"Tipo de montaje","cred_sel":"Credencial","lcl_abs":"Ruta local absoluta","rem_dir":"Dir remoto","disp_only":"Nombre en la lista","tag_pub":"Las ediciones de etiquetas son visibles para todos","https_s":"Ajustes HTTPS","ssl_crt":"Ruta del certificado SSL","ssl_key":"Ruta de la clave privada SSL","crt_pth":"Ruta del certificado (cert.pem/fullchain.pem)","ky_pth":"Ruta de la clave privada (privkey.pem)","语言":"Idioma","文件夹路径":"Ruta de la carpeta","编号":"Número","路径":"Ruta","是否默认":"¿Es el predeterminado?","备注":"Nota","编辑SQL":"Editar SQL","SQL 预设":"Preajuste SQL","耗时":"Duración","确认":"Confirmar","请输入备注":"Ingrese una nota","查询全部表":"Consultar todas las tablas","SQL预设设置":"Configuración de preajustes SQL","SQL预设":"Preajuste SQL","更新保存":"Actualizar y guardar","创建新预选项":"Crear nuevo preajuste","添加预设":"Agregar preajuste","SQL代码":"Código SQL","保存成功":"Guardado correctamente","大纲":"Esquema","新建主题":"Nuevo tema","编辑主题":"Editar tema","删除主题":"Eliminar tema","主题名称":"Nombre del tema","请输入主题名称":"Introduce el nombre del tema","主题实时预览":"Vista previa en vivo","删除成功":"Eliminado","删除失败":"Error al eliminar","cf_thm":"¿Eliminar este tema?","导出PDF":"Exportar PDF","no_head":"Aún no hay títulos","未命名标题":"Título sin nombre","更新成功":"Actualizado correctamente","创建成功":"Creado correctamente","sql_in":"Ingrese la sentencia SQL","新密码":"Nueva contraseña","新账号":"Nueva cuenta","关闭":"Cerrar","开启":"Abrir","展开":"Expandir","指定时间":"Hora especificada","永不过期":"Nunca expira","清空token":"Vaciar el token","保存":"Guardar","确定":"Confirmar","确定修改":"Confirmar la modificación","删除":"Eliminar","添加":"Agregar","系统":"Sistema","follow_sys":"Seguir ajuste del sistema","no_theme":"Sin tema","自定义页面路由":"Ruta de página personalizada","api_rt":"Ruta de API personalizada","跳转路由":"Ruta de redirección","路由":"Ruta","文件":"Archivo","自定义路由":"Rutas personalizadas","编辑":"Editar","查看":"Ver","默认配置":"Configuración predeterminada","设置":"Configuración","退出登录":"Cerrar sesión","虚拟网络":"Red virtual","系统信息":"Información del sistema","工具箱":"Caja de herramientas","索引":"Índice","文件夹":"Carpeta","客户端":"Cliente","服务器":"Servidor","服务端":"Servidor","基本信息":"Información básica","系统性能":"Rendimiento del sistema","总容量":"Capacidad total","剩余":"Restante","使用率":"Tasa de uso","内存":"Memoria","系统进程":"Proceso del sistema","doc_ct":"Contenedor Docker","物理硬盘":"Disco duro físico","文件硬盘":"Disco duro de archivos","容器":"Contenedor","名字":"Nombre","镜像":"Imagen","命令":"Comando","状态":"Estado","选择":"Seleccionar","过滤":"Filtrar","账号":"Cuenta","密码":"Contraseña","目录":"Directorio","私钥路径":"Ruta de la clave privada","连接地址":"Dirección de conexión","端口":"Puerto","port":"puerto","host":"host","key":"clave","代理":"Proxy","浏览器":"Navegador","网络唤醒":"Despertar por red","时间工具":"Herramienta de tiempo","切换样式":"Cambiar estilo","更多":"Más","创建文件夹":"Crear carpeta","创建文件":"Crear archivo","连接":"Conectar","地址":"Dirección","目标设备":"Dispositivo objetivo","发送":"Enviar","腾讯":"Tencent","云":"Nube","厂商":"Fabricante","名称":"Nombre","厂商名称":"Nombre del fabricante","类型":"Tipo","容量":"Capacidad","挂载位置":"Punto de montaje","剩余容量":"Capacidad restante","登录":"Iniciar sesión","是":"Sí","否":"No","秒":"Segundo","流量转发":"Reenvío de tráfico","点对点":"Punto a punto","模式":"Modo","虚拟":"Virtual","在线状态":"Estado en línea","物理":"Físico","账号设置":"Configuración de la cuenta","说明":"Descripción","文件系统类型":"Tipo de sistema de archivos","机械":"Mecánico","固态":"Sólido","复制":"Copiar","剪切":"Cortar","压缩":"Comprimir","下载":"Descargar","重命名":"Renombrar","创建文本文件":"Crear archivo de texto","解压":"Descomprimir","转换到":"Convertir a","自定义":"Personalizado","粘贴到此处":"Pegar aquí","创建":"Crear","制造商":"Fabricante","总内存":"Memoria total","最大":"Máximo","品牌":"Marca","逻辑核心":"Núcleo lógico","搜索当前目录":"Buscar en el directorio actual","压缩文件":"Archivo comprimido","取消":"Cancelar","运行":"Ejecutar","格式":"Formato","压缩到":"Comprimir a","进度":"Progreso","解压到":"Descomprimir a","当前目录":"Directorio actual","解压文件":"Descomprimir archivo","视频格式转换":"Conversión de formato de video","gen_dir":"El archivo objetivo generado está en este directorio","ff_fmt":"Formatos objetivo admitidos por ffmpeg","del_f":"¿Desea eliminar el archivo seleccionado?","输入目录名":"Ingrese el nombre del directorio","cut_ovr":"Confirmar corte (sobrescribir)","cp_ovr":"Confirmar copia (sobrescribir)","修改名字":"Cambiar nombre","输入新名字":"Ingrese el nuevo nombre","个文件正在上传":"archivos se están cargando","确定删除":"Confirmar eliminación","是否删除":"¿Desea eliminar?","输入文本名":"Ingrese el nombre del texto","添加索引":"Agregar índice","物理核心":"Núcleo físico","创建目录":"Crear directorio","访问目录":"Acceder al directorio","mac_dst":"Dirección MAC del dispositivo objetivo","要代理的url":"URL a proxy","系统代理端口":"Puerto de proxy del sistema","返回":"Volver","不允许为空":"No puede estar vacío","ff_none":"No se encontró ffmpeg","disk":"Disco","part":"Partición","lvm":"Volumen lógico","网址":"URL","环境":"Entorno","外部软件":"Software externo","保护路径":"Ruta protegida","软件":"Software","是否安装":"¿Está instalado?","角色管理":"Gestión de roles","用户管理":"Gestión de usuarios","角色id":"ID de rol","角色名":"Nombre de rol","用户id":"ID de usuario","用户名":"Nombre de usuario","目录范围":"Alcance del directorio","可执行的命令":"Comandos ejecutables","禁止目录范围":"Alcance del directorio prohibido","可执行命令":"Comandos ejecutables","系统进程关闭":"Cierre de procesos del sistema","dc_ctdl":"Detener y eliminar contenedores Docker","dc_idl":"Eliminar imágenes Docker","tk_time":"Modificar tiempo del token","自定义资源路由":"Ruta de recursos personalizada","磁盘挂载":"Montaje de disco","ssh_sv":"Guardar clave SSH en disco","外部软件路径":"Ruta del software externo","log_del":"Eliminar, cortar y renombrar archivos","内容更新":"Actualizar contenido","标签编辑权限":"Permisos de edición de etiquetas","ssh代理":"Proxy SSH","http代理":"Proxy HTTP","浏览器代理":"Proxy de navegador","rdp代理":"Proxy RDP","rtsp播放器":"Reproductor RTSP","角色":"Rol","文件回收站":"Papelera de reciclaje de archivos","个人保护路径":"Ruta protegida personal","系统保护路径":"Ruta protegida del sistema","小于一分钟":"Menos de un minuto","分钟前":"hace minutos","小时前":"hace horas","天前":"hace días","月前":"hace meses","年前":"hace años","挂载位置磁盘":"Disco del punto de montaje","信息":"Información","磁盘剩余":"Espacio restante en el disco","文件系统":"Sistema de archivos","文件夹数":"Cantidad de carpetas","文件数":"Cantidad de archivos","当前位置":"Ubicación actual","输入文件名":"Ingrese el nombre del archivo","o_stdo":"Abrir con studio","o_img":"Abrir con el editor de imágenes","预览图片":"Vista previa de la imagen","运行并实时查看":"Ejecutar y ver en tiempo real","实时查看":"Ver en tiempo real","输入参数运行":"Ejecutar con parámetros","以文本打开":"Abrir como texto","以日志打开":"Abrir como registro","上传":"Cargar","文件选项":"Opciones de archivo","添加类目":"Agregar categoría","全部编辑":"Editar todo","输入类目名":"Ingrese el nombre de la categoría","折叠":"Plegar","全部折叠":"Plegar todo","(无内容)":"(Sin contenido)","请求头":"Encabezado de solicitud","请求体":"Cuerpo de la solicitud","值":"Valor","上传文件":"Cargar archivo","下载到本地目录":"Descargar al directorio local","本地地址":"Dirección local","完成":"Completado","结束":"Fin","响应头":"Encabezado de respuesta","正在下载":"Descargando","输入标签名":"Ingrese el nombre de la etiqueta","frm_lm":"El formulario contiene archivos, el navegador no permite agregar","非对称密钥":"Clave asimétrica","将覆盖密钥文件":"Sobrescribirá el archivo de clave","加密算法":"Algoritmo de cifrado","输出格式":"Formato de salida","普通PEM":"PEM normal","生成":"Generar","ssh_dir":"Guardar en el directorio .ssh","私钥":"Clave privada","时间转换器":"Convertidor de tiempo","格式化时间":"Formatear tiempo","毫秒":"Milisegundo","分秒":"Minuto y segundo","实时信息":"Información en tiempo real","运行用户":"Usuario en ejecución","当前系统":"Sistema actual","进程":"Proceso","ld_wait":"Cargando, por favor espere...","选中":"Seleccionado","创建用户":"Crear usuario","升序":"Ascendente","降序":"Descendente","dc_nne":"No se detectó Docker, es posible que el host no tenga Docker instalado o los contenedores estén vacíos","过滤镜像":"Filtrar imágenes","列表更新":"Actualizar lista","执行命令":"Ejecutar comando","打印日志":"Imprimir registro","删除容器":"Eliminar contenedor","删除镜像":"Eliminar imagen","doc_img":"Imagen Docker","doc_icf":"¿Está seguro de que desea eliminar la imagen seleccionada?","系统运行于":"El sistema se ejecuta en","全局变量":"Variable global","up_conc":"Límite máximo de carga de archivos concurrentes","单用户并发数量":"Cantidad de conexiones concurrentes por usuario","系统并发数量":"Cantidad de conexiones concurrentes del sistema","big_res":"¿Habilitar reanudación de carga de archivos grandes?","big_sz":"Tamaño de juicio para archivos grandes (MB)","大文件并发数量":"Cantidad de cargas concurrentes de archivos grandes","big_ck":"Tamaño de bloque de archivos grandes (MB)","页面资源路由":"Ruta de recursos de página","wf_rt":"Ruta de activación de flujo de trabajo","过期时间(s)":"Tiempo de expiración (s)","文件路径":"Ruta del archivo","path_up":"Actualizar ruta protegida del sistema","path_md":"Modificar ruta PATH","执行用户":"Usuario de ejecución","执行":"Ejecutar","wf_api":"Modificar API de activación de flujo de trabajo","up_lim":"Modificar límite de cantidad de archivos cargados en el directorio","功能权限":"Permisos de funcionalidad","角色备注":"Nota del rol","pxy_off":"Descarga a través de proxy HTTP desactivada","工具功能":"Funciones de la herramienta","全局变量设置":"Configuración de variables globales","文件回收站修改":"Modificar papelera de reciclaje de archivos","文件权限":"Permisos de archivo","log_wr":"Crear, cargar, actualizar contenido y descomprimir archivos","只读目录范围":"Alcance del directorio de solo lectura","更新":"Actualizar","use_env":"Usar variables de entorno por defecto","sync_sv":"Sincronizar información con el servidor seleccionado","add_rot":"Agregar directorio raíz de recursos HTTP","dl_here":"Descargar recursos HTTP en este directorio","文件排序":"Ordenar archivos","系统默认":"Predeterminado del sistema","修改时间":"Hora de modificación","时间逆序":"Orden inverso de tiempo","时间顺序":"Orden cronológico","大小逆序":"Orden inverso de tamaño","大小顺序":"Orden de tamaño","文件大小":"Tamaño del archivo","网站标题":"Título del sitio web","通用设置":"Configuración general","主题":"Tema","时区":"Zona horaria","时间":"Hora","服务器时间":"Hora del servidor","在线时间":"Tiempo en línea","离线时间":"Tiempo sin conexión","在线":"En línea","离线":"Fuera de línea","功能文档":"Documentación de funciones","官网地址":"https://filecat.xiaobaidadada.fun/","远程代理":"Proxy remoto","系统管理":"Administración del sistema","网址导航":"Navegación de direcciones web","目录快捷命令":"Comando de acceso directo de directorio","文件快捷命令":"Comando de acceso directo de archivo","系统网络":"Red del sistema","复制名字":"Copiar nombre","分享":"Compartir","复制绝对路径":"Copiar ruta absoluta","复制相对路径":"Copiar ruta relativa","切换目录":"Cambiar directorio","统计信息":"Estadísticas","更新AI知识库":"Actualizar base de conocimientos de IA","exp_hr":"Tiempo restante hasta la expiración (horas)","可以为空":"Puede estar vacío","自动加载":"Carga automática","本地知识库":"Base de conocimientos local","知识库加载信息":"Información de carga de la base de conocimientos","最近一次加载":"Última carga","加载进度":"Progreso de carga","总文件数量":"Número total de archivos","总文件字符数量":"Número total de caracteres de archivos","总文件大小":"Tamaño total de archivos","总耗时":"Tiempo total consumido","上一页":"Página anterior","目标地址":"Dirección de destino","目标端口":"Puerto de destino","连接状态":"Estado de la conexión","个人设置":"Configuración personal","系统设置":"Configuración del sistema","文件后缀":"Sufijo de archivo","禁止执行的命令":"Comandos prohibidos","Ai 配置":"Configuración de IA","文件分享":"Compartir archivos","输入跳转的目录":"Ingrese el directorio al que desea saltar","文件分享列表":"Lista de archivos compartidos","过期小时":"Horas hasta la expiración","下载次数":"Número de descargas","剩余时间":"Tiempo restante","文件加载方式":"Modo de carga de archivos","全部加载文件":"Cargar todos los archivos","scrll_l":"Cargar archivos con desplazamiento paginado","剩余时间(h)":"Tiempo restante (h)","网络代理":"Proxy de red","个人":"Personal","安装方式":"Método de instalación","是否开启":"Activado","系统启动执行":"Ejecutar al iniciar el sistema","表达式":"Expresión","用户":"Usuario","详细信息":"Detalles","服务器配置":"Configuración del servidor","客户端列表":"Lista de clientes","更多服务器":"Más servidores","端口映射":"Asignación de puertos","序号":"N.º","服务器端口":"Puerto del servidor","转发客户端名称":"Nombre del cliente de reenvío","服务端口":"Puerto del servicio","转发ip":"IP de reenvío","转发端口":"Puerto de reenvío","客户端代理配置":"Configuración del proxy del cliente","客户端桥接配置":"Configuración del puente del cliente","远程地址":"Dirección remota","在线时长":"Duración en línea","fwd_nm":"Nombre del cliente de reenvío","sv_ntf":"Guardar y notificar al cliente la primera clave y el puerto","br_port":"Lista de puertos del servidor puente","输入消息":"Introducir mensaje","用户权限":"Permisos de usuario","系统管理权限":"Permisos de administración del sistema","网络功能权限":"Permisos de funciones de red","Ai 设置权限":"Permisos de configuración de IA","系统设置权限":"Permisos de configuración del sistema","系统环境设置":"Configuración del entorno del sistema","sys_env":"Página de configuración del entorno del sistema","自定义路由页面":"Página de ruta personalizada","代理功能":"Funciones de proxy","其他功能":"Otras funciones","ddns":"DDNS","ai_page":"Página de chat de IA","pty cmd":"Comando PTY","wf_run":"Ejecución de flujo de trabajo","wf_user":"Usuario de ejecución del flujo de trabajo","cmd_rst":"Comando de reinicio filecat-restart","cmd_upg":"Comando de actualización filecat-upgrade","cmd_dwn":"Comando para cerrar el proceso principal filecat-down","cmd_ai":"Comando de IA (chat de IA)","个性化设置":"Configuración personalizada","lgn_usr":"Mostrar información del usuario al iniciar sesión","个人环境":"Entorno Personal","系统环境":"Entorno del Sistema","持久化":"Persistir","个人环境设置":"Configuración del entorno personal","其他参数":"Otros parámetros","父编号":"ID padre","代理配置":"Configuración de proxy","桥接配置":"Configuración del puente","内网穿透":"Penetración de intranet","fc_pxy":"Acceso proxy Filecat","fc_pxyw":"Acceso proxy Filecat mediante frontend de servidor","fc_pxyr":"Dirección de proxy Filecat personalizada","原客户端":"Cliente de origen","原目录":"Directorio de origen","目标客户端":"Cliente de destino","目标目录":"Directorio de destino","忽略目录":"Directorio ignorado","双向同步":"Sincronización bidireccional","客户端文件同步":"Sincronización de archivos del cliente","客户端设置":"Configuración del cliente","pxy_nln":"No usar servidor proxy para direcciones locales (Intranet)","忽略ip":"Ignorar IP","ai_ask":"Preguntar todo al servidor","本地目录":"Directorio local","响应体":"Cuerpo de la respuesta","客户端功能":"Funciones del cliente","全量同步":"Sincronización completa","公钥":"Clave pública","跟随系统":"Seguir el sistema","字符消耗统计":"Estadísticas de consumo de caracteres","加载中...":"Cargando...","对话轮次":"Turnos de conversación","AI输入字符":"Caracteres de entrada IA","AI输出字符":"Caracteres de salida IA","暂无统计数据":"No hay estadísticas disponibles","会话":"Sesiones","新会话":"Nueva sesión","提示词":"Prompt","llm_pmt":"Prompt editable por LLM","LLM编辑开关":"Interruptor de edición LLM","编辑规则":"Reglas de edición","选择系统提示词":"Seleccionar Prompt del Sistema","清空全部会话":"Borrar todas las sesiones","cf_all":"¿Confirmar eliminar todas las sesiones de chat?","cf_msgs":"¿Confirmar eliminar mensajes seleccionados?","cf_ses":"¿Confirmar eliminar sesiones seleccionadas?","cf_one":"¿Confirmar eliminar este mensaje?","批量选择":"Selección por lotes","查看所有用户会话":"Sesiones de todos los usuarios","查看全部会话时不可发送消息":"No se pueden enviar mensajes mientras se ven todas las sesiones","仅看我的会话":"Solo mis sesiones","取消批量选择":"Cancelar selección","删除选中消息":"Eliminar mensajes seleccionados","删除选中会话":"Eliminar sesiones seleccionadas","切换模型":"Cambiar modelo","添加文件":"Agregar archivo","无描述":"Sin descripción","暂无工具":"Sin herramientas","查看工具":"Ver herramientas","加载工具":"Cargar herramientas","系统会话提示词":"Prompts de sesión del sistema","删除记录":"Eliminar registro","手动加载":"Carga manual","从索引删除":"Eliminar del índice","知识库开关":"Interruptor de base de conocimientos","文本对话":"Diálogo de texto","图片生成":"Generación de imágenes","向量嵌入":"Incrustación vectorial","图片参数设置":"Configuración de parámetros de imagen","更多属性":"Más atributos","model类型":"Tipo de modelo","成为tool":"Convertirse en herramienta","操作":"Operaciones","查看Git提交":"Ver commits Git","Git":"Git","变更":"Changes","提交记录":"Commits","全选":"Select All","没有变更":"No changes","暂无提交记录":"No commits yet","分支":"Branch","git_msg":"Enter commit message...","提交":"Commit","暂存全部":"Stage All","暂存选中":"Stage Selected","取消暂存":"Unstage","已暂存":"Staged","已暂存全部":"All staged","已取消暂存":"Unstaged","请输入提交信息":"Please enter commit message","提交成功":"Commit successful","推送成功":"Push successful","拉取成功":"Pull successful","切换分支成功":"Branch switched","远程操作":"Remote Operations","拉取":"Pull","推送":"Push","强制推送":"Force Push","暂存工作区":"Stash","暂存工作区成功":"Stash successful","恢复工作区":"Stash Pop","恢复工作区成功":"Stash pop successful","刷新":"Refresh","请先选择文件":"Please select files first","提示:":"Tips:","git_stg":"Check files on the left, then use \\"Stage Selected\\" to add them to staging area","git_cmt":"Enter commit message and click \\"Commit\\"","git_cf":"If conflicts occur, please resolve them in shell before committing","git_frc":"\\"Force Push\\" will overwrite the remote branch, use with caution","配置表":"Config Table","自动升级":"Actualización Automática","exe_tpl":"Plantilla de URL de descarga EXE","offcal":"Dejar vacío para usar GitHub Releases oficial","检测频率(秒)":"Intervalo de verificación (segundos)","def_180":"Predeterminado 180s (3 minutos)","chk_10s":"El intervalo de verificación no puede ser menor de 10 segundos","ver_url":"URL de verificación de versión","ver_req":"La URL de verificación no puede estar vacía","用户配置":"Configuración de usuario","邮箱":"Correo","代理设置":"Configuración de proxy","全局代理":"Proxy global","仓库代理":"Proxy del repositorio","修改":"Editar","用户配置已保存":"Configuración de usuario guardada","代理配置已保存":"Configuración de proxy guardada","pxy_clr":"Dejar vacío para borrar el proxy","pxy_nte":"La configuración de usuario y el proxy global se aplican a todos los repositorios","pxy_url":"Dirección del proxy HTTP","pxy_tip":"Se aplica a las solicitudes HTTP emitidas por el sistema filecat (verificación de versión, actualización automática, DDNS, descarga de comandos, reenvío personalizado, etc.). Nota: en macOS, si el proxy del sistema ya está activado, déjelo en blanco para evitar un doble proxy.","端口扫描":"Escaneo de Puertos","目标主机":"Host Destino","起始端口":"Puerto Inicial","结束端口":"Puerto Final","并发数":"Concurrencia","超时(ms)":"Tiempo de Espera (ms)","扫描":"Escanear","扫描结果":"Resultados del Escaneo","扫描完成":"Escaneo completado","扫描失败":"Escaneo fallido","正在扫描...":"Escaneando...","未发现开放端口":"No se encontraron puertos abiertos","scan_in":"Ingrese los parámetros y haga clic en Escanear","hostreq":"La dirección del host no puede estar vacía","端口范围无效":"Rango de puertos no válido","portrng":"El puerto inicial no puede ser mayor que el puerto final","开放":"Abierto","总计扫描":"Total Escaneado","已发现":"Encontrado","当前":"Actual","扫描已取消":"Escaneo cancelado","自动换行":"Ajuste automático","不换行":"Sin ajuste","替换":"Reemplazar","env编辑":"Editar env","命令确认":"Confirmación de comando","命令检测开启":"Habilitar detección de comandos","命令检测关闭":"Deshabilitar detección de comandos","命令检测已开启":"Detección de comandos habilitada","命令检测已关闭":"Detección de comandos deshabilitada","此会话不再询问":"No preguntar más en esta sesión","doc_pxy":"Configuración de proxy de Docker","HTTP 代理":"Proxy HTTP","pxy_htt":"Proxy HTTPS","pxy_nne":"No Proxy","保存失败":"Error al guardar","MD编辑器":"Editor MD","行":"Fila","列":"Columna","默认":"Predeterminado","删除行":"Eliminar fila","删除列":"Eliminar columna","上方插入行":"Insertar fila arriba","切换表头行":"Alternar fila de encabezado","合并单元格":"Combinar celdas","拆分单元格":"Dividir celda","下方插入行":"Insertar fila abajo","左侧插入列":"Insertar columna a la izquierda","右侧插入列":"Insertar columna a la derecha","插入表格":"Insertar tabla","加载中":"Cargando","打开失败":"Error al abrir","重启失败":"Error al reiniciar","doc_cfg":"Configuración de Docker","名单视图":"Vista de lista","文本视图":"Vista de texto","目标(To)":"Destino (To)","动作":"Acción","fw_from":"Origen (From)","删除规则":"Eliminar regla","规则编号":"Número de regla","点击复制":"Clic para copiar","镜像加速":"Espejos de registro","不安全仓库":"Registros inseguros","开启调试":"Activar depuración","数据存储目录":"Directorio de datos","存储驱动":"Controlador de almacenamiento","日志驱动":"Controlador de registros","fw_iptb":"Habilitar iptables","lve_rst":"Restauración en vivo","添加规则":"Agregar regla","请填写端口号":"Introduzca un puerto","方向":"Dirección","协议":"Protocolo","来源地址":"Dirección de origen","获取失败":"Error al obtener","进程环境变量":"Variables de entorno del proceso","端口实例":"Instancia de puerto","srchbln":"Abrir directorio en modo de búsqueda en blanco","搜索会话":"Buscar sesiones","sw_mdl":"Permitir cambiar de modelo de IA","选择模型":"Seleccionar modelo","mv_self":"No se puede mover una carpeta dentro de sí misma","nvdltp":"La función de marcadores de navegación de sitios se ha eliminado. Los datos originales se han convertido en archivos .url. Abra un archivo .url con filecat para lograr el mismo acceso rápido.","tmplctp":"Ubicación de los archivos: el directorio tempfile/temp_delete_sys_tag_name_260926 dentro del directorio de base de datos de filecat.","网站 Logo":"Logotipo del sitio","lclorur":"Ruta de archivo local o URL de imagen http(s)","全部":"Todo","源码模式":"Modo código fuente","实时编辑模式":"Modo de edición en vivo","编辑器设置":"Configuración del editor","正文最大宽度":"Ancho máximo del contenido","正文左右边距":"Margen lateral del contenido","正文字号":"Tamaño de fuente del contenido","行高":"Altura de línea","as_iv":"Intervalo de guardado automático (seg)","as_num":"Introduce un entero mayor o igual que 0","恢复默认":"Restaurar valores predeterminados","保存中":"Guardando","预览":"Vista previa","nprmtp":"No tiene permiso para cambiar esta configuración. A continuación se muestra la configuración actual.","md_set":"Configuración del editor MD","目录挂载":"Montaje de directorio","总开关":"Interruptor general","挂载":"Montar","挂载到网盘":"Montar en la nube","编辑挂载配置":"Editar montaje","取消挂载":"Desmontar","确认取消挂载":"Confirmar desmontaje","已取消挂载":"Desmontado","该目录尚未挂载":"Este directorio no está montado","挂载目录":"Directorio de montaje","只读":"Solo lectura","挂载类型":"Tipo de montaje","显示名称":"Nombre visible","标识色":"Color del marcador","只读模式":"Modo de solo lectura","测试连接":"Probar conexión","测试中":"Probando","连接成功":"Conexión correcta","连接失败":"Error de conexión","请选择挂载类型":"Seleccione un tipo de montaje","请填写":"Rellene: ","未授权":"No autorizado","服务地址":"Dirección del servidor","起始目录":"Directorio inicial","留空表示根目录":"Dejar vacío para el directorio raíz","主机":"Host","默认 22":"Por defecto 22","私钥内容":"Contenido de la clave privada","与私钥二选一":"Elija esto o la clave privada","与密码二选一":"Elija esto o la contraseña","存储桶":"Bucket","区域":"Región","强制路径风格":"Forzar estilo de ruta","授权账号":"Cuenta autorizada","百度网盘授权":"Autorización de Baidu Netdisk","去授权":"Autorizar","完成授权":"Completar autorización","授权码":"Código de autorización","回调地址":"URI de redirección","rqappky":"Introduzca el AppKey","rq_scrt":"Introduzca el SecretKey","请填写授权码":"Introduzca el código de autorización","svappfr":"Guarde primero la configuración de la app","授权成功":"Autorización correcta","账号可用":"La cuenta está disponible","账号不可用":"La cuenta no está disponible","校验":"Verificar","已授权账号":"Cuentas autorizadas","已删除":"Eliminado","处理中":"Procesando","AppKey":"AppKey","网盘挂载":"Montaje en la nube","凭据管理":"Credenciales","凭据":"Credencial","新增凭据":"Añadir credencial","凭据已丢失":"Credencial perdida","挂载列表":"Montajes","新增挂载":"Añadir montaje","munt_rq":"El directorio de montaje no puede estar vacío","请选择凭据":"Seleccione una credencial","请选择类型":"Seleccione un tipo","启用":"Activado","已停用":"Desactivado","确认删除":"Confirmar eliminación de","nmuntpr":"La cuenta actual no tiene permiso para montar directorios","百度网盘":"Baidu Netdisk","应用配置":"Ajustes de la app","授权":"Autorizar","授权失败":"Autorización fallida","strtdrt":"Dir inicial","授权检测":"Comprobar autorización","scrtkep":"Deja SecretKey vacío para no modificarlo","编辑应用":"Editar app","新增授权账号":"Añadir cuenta autorizada","一键授权":"Autorizar con un clic","outh_ob":"Manual (oob)","pst_cd":"Pegue el código de autorización","确认授权":"Confirmar autorización","授权检测/刷新":"Verificar / actualizar","检测完成":"Comprobación completada","导入":"importados","账号名":"Nombre de la cuenta","百度账号":"Cuenta de Baidu","网盘昵称":"Apodo de Netdisk","授权状态":"Estado de autorización","过期时间":"Caduca el","授权时间":"Autorizado el","已授权":"Autorizado","已过期":"Caducado","停用":"Desactivar","已配置":"Configurado","未配置":"Sin configurar","网盘使用":"Uso de Netdisk","自动刷新":"Actualización automática","编辑账号":"Editar cuenta","使用":"Uso","当前为挂载目录":"Directorio montado","启用挂载":"Habilitar montajes","已启用":"Habilitado","挂载已启用":"Montajes habilitados","挂载已停用":"Montajes deshabilitados","muntont":"Montajes habilitados, clic para deshabilitar","muntoff":"Montajes deshabilitados, clic para habilitar","凭证管理":"Credenciales","授权方式":"Modo de autorización","去授权(一键)":"Autorizar (un clic)","去授权(手动)":"Autorizar (manual)","保存应用配置":"Guardar configuración","atathtp":"Un clic: volverá aquí tras la autorización y la cuenta se añadirá automáticamente","atathnt":"El modo de un clic requiere registrar /mount/baidu/callback de este servicio como URI de redirección en la consola de Baidu","pstatht":"Manual: no requiere URI de redirección. Tras autorizar, copie el código de la página de Baidu, péguelo abajo y pulse Completar","crd_tp":"Una credencial es la información de la cuenta para conectarse a un disco en la nube o a un host remoto. Puede ser compartida por varios puntos de montaje; al editarla se aplica en todos a la vez.","bidacct":"Las cuentas de Baidu Netdisk no se gestionan aquí. Autorícelas en el panel \\"Baidu Netdisk\\" de abajo; la cuenta correspondiente se crea automáticamente tras la autorización.","pwdkept":"Al editar, dejar vacío un campo de tipo contraseña mantiene el valor original.","tstbfrs":"Antes de guardar, puede pulsar \\"Probar conexión\\" para verificar que la cuenta funciona.","prtwbdv":"Un protocolo de archivos genérico compatible con Jianguoyun, Synology NAS, Nextcloud, Alist, etc. Basta una URL de servicio y una cuenta para acceder al directorio remoto.","prtsftp":"Accede a un directorio de un servidor remoto por SSH, transfiriendo archivos mediante el subsistema SFTP. Ideal para montar un directorio de otra máquina Linux.","prt_s3":"Servicios de almacenamiento de objetos accesibles por el protocolo S3, como MinIO, Alibaba Cloud OSS, Tencent COS, Qiniu y Cloudflare R2. Requiere URL de servicio, bucket y un par de claves.","深搜":"Búsqueda prof.","搜索":"Buscar","搜索中":"Buscando","范围":"Ámbito","结果过多":"Demasiados resultados, refine la palabra clave","已显示":"Mostrado","搜文件名":"Buscar nombre de archivo recursivamente","搜到该处":"Ir a su carpeta","打开所在目录":"Abrir carpeta contenedora","输入后搜":"Escribe un nombre y pulsa Enter","无匹配":"No se encontraron archivos","结果截断":"Demasiados resultados, mostrando 500","缩放调整":"Ajustar zoom","缩放调整成功":"Zoom ajustado correctamente","缩放百分比":"Porcentaje de zoom","未加载":"Sin cargar","加载成功":"Cargado","加载失败":"Error al cargar","个工具":"herramientas","No share found":"No se encontró ningún recurso compartido","Enter host first":"Introduce el host primero","下一步":"Siguiente","上一步":"Atrás","共享目录":"Carpeta compartida","prt_smb":"Carpeta compartida de Windows (SMB/CIFS). Rellena el host y la cuenta y elige el nombre del recurso.","prt_bd":"Baidu Netdisk. Crea una app en la plataforma abierta de Baidu, rellena AppKey / SecretKey y autoriza una cuenta.","没有找到共享":"No se encontraron recursos compartidos","粘贴授权码 code":"Pega el código de autorización","重新授权":"Autorizar de nuevo","请选择账号":"Seleccione una cuenta","请填写备注":"Introduzca una nota","账号已丢失":"Cuenta no encontrada","已暂存的更改":"Cambios preparados","全部暂存":"Preparar todo","全部取消暂存":"Quitar todo","暂存":"Preparar","无差异":"Sin diferencias","二进制文件":"Archivo binario","单栏":"Unificada","并排":"Lado a lado","点击左侧文件查看差异":"Haga clic en un archivo de la izquierda para ver los cambios","未跟踪文件无差异":"Los archivos sin seguimiento no tienen diferencias","请先暂存要提交的文件":"Prepare primero los archivos que desea confirmar","没有已更改的文件":"No hay archivos modificados","未暂存":"Sin preparar","逐行归属":"Autoría por línea","无法读取该文件的归属信息":"No se puede leer la autoría de este archivo","全部文件":"Todos los archivos","新建分支":"Nueva rama","删除分支":"Eliminar rama","确认删除分支":"¿Eliminar la rama?","合并到此分支":"Fusionar en esta rama","新分支名":"Nombre de la nueva rama","当前分支":"Rama actual","切换到":"Cambiar a","分支创建成功":"Rama creada","分支删除成功":"Rama eliminada","合并成功":"Fusionado","标签":"Etiquetas","新建标签":"Nueva etiqueta","标签名":"Nombre de etiqueta","暂无标签":"Sin etiquetas","标签创建成功":"Etiqueta creada","标签删除成功":"Etiqueta eliminada","标签推送成功":"Etiqueta enviada","删除标签":"Eliminar etiqueta","确认删除标签":"¿Eliminar etiqueta?","请输入标签名":"Introduce el nombre de la etiqueta","推送到远程":"Enviar al remoto","基于提交":"Basado en el commit","基于当前提交":"Basado en el commit actual","暂存工作区记录":"Registros de stash","暂无记录":"Sin registros","恢复并删除":"Aplicar y eliminar","已恢复并删除记录":"Restaurado y eliminado","已应用":"Aplicado","远程分支":"Ramas remotas","拉取远程信息":"Obtener","拉取并清理已删除分支":"Obtener y limpiar","未配置远程仓库":"Sin remoto configurado","签出到本地":"Extraer en local","拉取完成":"Obtención completada","冲突":"Conflictos","采用我方版本":"Usar la nuestra","采用对方版本":"Usar la suya","标记已解决":"Marcar como resuelto","标记全部已解决":"Finalizar fusión","放弃合并":"Abortar fusión","确认放弃当前合并并恢复到操作前状态":"¿Abortar y restaurar el estado anterior?","已解决冲突":"Conflicto resuelto","已放弃合并":"Fusión abortada","合并已完成":"Fusión finalizada","撤销提交":"Revertir commit","将生成一个反向提交来撤销":"Se creará un commit inverso para revertir","已撤销":"Revertido","摘取提交":"Cherry-pick","将该提交应用到当前分支":"Aplicar este commit a la rama actual","摘取成功":"Cherry-pick aplicado","搜索提交":"Buscar commits","提交信息关键词":"Mensaje del commit","作者":"Autor","请输入搜索条件":"Introduce criterios de búsqueda","操作历史":"Historial","回退到此处":"Restablecer aquí","强制回退(丢弃改动)":"Reset duro (descartar cambios)","此操作将永久丢弃未提交的改动":"Esto descarta permanentemente los cambios sin confirmar","已回退":"Restablecido","已强制回退":"Reset duro aplicado","子模块":"Submódulos","无子模块":"Sin submódulos","初始化并更新子模块":"Inicializar y actualizar submódulos","子模块更新完成":"Submódulos actualizados","未初始化":"No inicializado","与记录不一致":"Difiere del registro","正常":"Normal","当前提交":"Commit actual","领先上游":"Por delante del remoto","落后上游":"Por detrás del remoto","钩子":"Ganchos","停用钩子":"Desactivar gancho","确认删除并停用":"Eliminar y desactivar","保存并启用":"Guardar y activar","已保存并启用":"Guardado y activado","与工作区对比":"Comparar con el área de trabajo","仓库":"Repositorios","初始化仓库":"Inicializar repositorio","克隆仓库":"Clonar repositorio","仓库初始化成功":"Repositorio inicializado","克隆成功":"Clonado","目录名":"Nombre del directorio","请输入目录名":"Introduce el nombre del directorio","仓库地址":"URL del repositorio","请输入仓库地址":"Introduce la URL del repositorio","当前目录下没有仓库":"No hay repositorios aquí","进入":"Abrir","修改最后一次提交":"Modificar el último commit","已修改最后一次提交":"Último commit modificado","分支比较":"Comparar ramas","两个分支没有差异":"No hay diferencias entre ramas","确认删除远程分支":"Eliminar rama remota","该分支会从远程仓库删除":"Esta rama se eliminará del repositorio remoto","删除远程分支":"Eliminar rama remota","将":"Fusionar","合并到":"en","未推送":"Sin enviar","已到底部":"No hay más","没有可提交的更改":"Nada que confirmar","存在未暂存的改动,是否一并暂存并提交?":"Hay cambios sin preparar. ¿Prepararlos y confirmarlos juntos?","二进制文件无法比较":"No se puede comparar un archivo binario","请选择文件查看改动":"Selecciona un archivo para ver los cambios","clk_edt":"Clic para editar","rendering":"Renderizando…","思维导图":"Mapa mental","新窗口打开":"Abrir en nueva pestaña","已选":"Seleccionados","复制所选":"Copiar selección","删除所选":"Eliminar selección","全部复制":"Copiar todo","多选":"Seleccionar","wbvpn_allow":"Lista blanca de destinos WebVPN","wbvpn_allow_ph":"Una entrada por línea: 192.168.1.0/24 (CIDR) / 192.168.1.1 (IP) / router.local (dominio, coincidencia exacta, sin subdominios)","wbvpn_tip":"Lista blanca de destinos WebVPN. Una entrada por línea, tres formatos:\\n · Rango CIDR: 192.168.1.0/24\\n · IP exacta: 192.168.1.1 (también 10.0.0.5, fd00::/8, ::1)\\n · Dominio exacto: router.local, nas.example.com (coincidencia exacta, NO incluye subdominios)\\nLas direcciones públicas se permiten por defecto. Las privadas, loopback, link-local, metadatos en la nube (169.254.169.254) y reservadas se deniegan. Las líneas mal formadas se ignoran.","wbvpn_port_range":"Rango de puertos proxy","wbvpn_port_tip":"Cada destino ocupa un puerto independiente. Abra la URL de acceso para navegar; la ruta se mantiene limpia, el enrutado SPA funciona y los sitios quedan aislados por origen.","wbvpn_port_tip2":"El acceso requiere iniciar sesión: abrir desde aquí envía un token una vez y luego una cookie mantiene la sesión. Los destinos siguen sujetos a la lista blanca / política de direcciones.","wbvpn_port_tip3":"Los enlaces de la página que apuntan a un destino activo se reescriben automáticamente al puerto de ese destino, de modo que el clic permanece dentro del proxy; los dominios no configurados como destino no se modifican.","网页代理目标":"Destinos proxy","访问地址":"URL de acceso","打开":"Abrir","已复制":"Copiado","添加成功":"Añadido","目标地址不能为空":"La dirección de destino no puede estar vacía","目标地址例如":"Dirección de destino, ej. 192.168.1.1:8080","网页代理":"Proxy web","当前窗口打开":"Abrir en pestaña actual","修改成功":"Modificado","浏览器代理编辑":"Edición del proxy de navegador","已禁用":"Deshabilitado","prt_local":"Directorio local. Indica una ruta absoluta existente en esta máquina como origen; tras montarlo podrás acceder a él como un enlace de directorio dentro de filecat.","移动到最上":"Mover arriba","移动到最下":"Mover abajo","会话设置":"Configuración de sesión","服务器工作目录":"Directorio de trabajo del servidor","服务器工作目录提示":"p. ej.: D:\\\\projects\\\\myapp","AI 聊天":"Chat IA","动态域名解析":"DNS dinámico","平台":"Proveedor","账号凭证":"Credenciales","域名绑定":"Vinculación de dominio","IP 来源":"Origen de IP","域名":"Dominio","多个域名用空格分隔":"Separe varios dominios con espacios","绑定":"Vinculación","填写格式":"Formato","请填写账号凭证":"Introduzca las credenciales","确定删除吗":"¿Confirmar eliminación?","ddns_help_1":"Configure DDNS para actualizar automáticamente los registros DNS con su IP pública actual.","ddns_help_2":"Los orígenes de IP incluyen interfaces locales y URL HTTP personalizadas.","请输入地址":"Introduzca la URL","IP 来源管理":"Gestionar orígenes de IP","暂无数据":"Sin datos","http_source_tip":"Añada una URL HTTP que devuelva su IP pública.","同步间隔":"Intervalo de sincronización","账号状态":"Cuenta","上次同步":"Última sincronización","验证":"Verificar","未验证":"Sin verificar","失败":"Fallo","同步完成":"Sincronización completada","间隔不能小于 10 秒":"El intervalo debe ser de al menos 10 segundos","文字":"Texto","请填写完整的账号凭证":"Complete todos los campos de credenciales"}');var d=n(72635),h=n(22022);const p={en:{translation:i},zh:{translation:r},"zh-CH":{translation:r},de:{translation:o},ja:{translation:s},ko:{translation:a},ru:{translation:l},fr:{translation:c},es:{translation:u}};let f;try{const e=localStorage.getItem("user_base_info");e?f=JSON.parse(e).user_data.language:p[navigator.language]&&(f=navigator.language)}catch(e){}d.Ay.use(h.r9).init({resources:p,fallbackLng:"zh",lng:f,interpolation:{escapeValue:!1}});const g=d.Ay},62042(e,t,n){"use strict";n.d(t,{N9:()=>a,SK:()=>o,vs:()=>l,zN:()=>s});var i=n(93413),r=n.n(i);Date.now();function o(e){return new(r())({type:"success",text:e,timeout:1e3,layout:"bottomLeft"}).show()}function s(e){new(r())({type:"error",text:e,timeout:1e3,layout:"bottomLeft"}).show()}function a(e){new(r())({type:"warning",text:e,timeout:1e3,layout:"topLeft"}).show()}function l(e,t,n="warning"){const i=new(r())({type:n,text:e,timeout:!1,layout:"topLeft",closeWith:["button"],callbacks:{onClose:()=>{t&&t()}}});return i.show(),i}},82893(e,t,n){"use strict";n.d(t,{AG:()=>d});var i=n(52035),r=(n(47022),n(23430)),o=n(18840);n(34251),n(89824);const s=Symbol("RESET");const a=e=>"function"==typeof(null==e?void 0:e.then);const l=function(e=()=>{try{return window.localStorage}catch(e){return void("undefined"!=typeof window&&console.warn(e))}},t){var n;let i,r;const o={getItem:(n,o)=>{var s,l;const c=e=>{if(i!==(e=e||"")){try{r=JSON.parse(e,null==t?void 0:t.reviver)}catch(e){return o}i=e}return r},u=null!=(l=null==(s=e())?void 0:s.getItem(n))?l:null;return a(u)?u.then(c):c(u)},setItem:(n,i)=>{var r;return null==(r=e())?void 0:r.setItem(n,JSON.stringify(i,null==t?void 0:t.replacer))},removeItem:t=>{var n;return null==(n=e())?void 0:n.removeItem(t)}};let s;try{s=null==(n=e())?void 0:n.subscribe}catch(e){}var l;return!s&&"undefined"!=typeof window&&"function"==typeof window.addEventListener&&window.Storage&&(s=(t,n)=>{if(!(e()instanceof window.Storage))return()=>{};const i=i=>{i.storageArea===e()&&i.key===t&&n(i.newValue)};return window.addEventListener("storage",i),()=>{window.removeEventListener("storage",i)}}),s&&(o.subscribe=(l=s,(e,n,i)=>l(e,e=>{let r;try{r=JSON.parse(e||"",null==t?void 0:t.reviver)}catch(e){r=i}n(r)}))),o}();function c(e,t){return function(e,t,n=l,r){const o=null==r?void 0:r.getOnInit,c=(0,i.eU)(o?n.getItem(e,t):t);return c.debugPrivate=!0,c.onMount=i=>{var r;return i(n.getItem(e,t)),null==(r=n.subscribe)?void 0:r.call(n,e,i,t)},(0,i.eU)(e=>e(c),(i,r,o)=>{const l="function"==typeof o?o(i(c)):o;return l===s?(r(c,t),n.removeItem(e)):a(l)?l.then(t=>(r(c,t),n.setItem(e,t))):(r(c,l),n.setItem(e,l))})}(e,((e,t)=>{try{const n=localStorage.getItem(e);return n?JSON.parse(n):t}catch{return t}})(e,t))}const u=null;const d={nowFileList:(0,i.eU)({folders:[],files:[]}),to_running_files:(0,i.eU)(new Set),file_list_refresh:(0,i.eU)(0),mount_enabled:(0,i.eU)(null),md_editor_setting:(0,i.eU)({...o.FG}),md_theme_css:(0,i.eU)(""),current_mount:(0,i.eU)(null),enterKey:(0,i.eU)(""),selectedFileList:(0,i.eU)([]),copyedFileList:(0,i.eU)([]),cutedFileList:(0,i.eU)([]),clickFileList:(0,i.eU)([]),shellNowDir:(0,i.eU)([]),uploadFiles:(0,i.eU)([]),nowProgress:(0,i.eU)({name:"",value:1,index:0}),showPrompt:(0,i.eU)(new class{show;type;overlay;data}),confirm:(0,i.eU)({open:!1,handle:null}),prompt_card:(0,i.eU)({open:!1}),editorSetting:(0,i.eU)({model:"text",open:!1,fileName:"",save:null,can_format:!1}),windows_width:(0,i.eU)({width:"undefined"!=typeof window?window.innerWidth:1200,is_mobile:"undefined"!=typeof window&&window.innerWidth<=736}),fileShellShow:(0,i.eU)({show:!1,path:"",cmd:""}),file_shell_hidden:(0,i.eU)(u),remoteShellShow:(0,i.eU)({show:!1,path:""}),dockerShellShow:(0,i.eU)({type:"",show:!1,dockerId:""}),systemd_shell_show:(0,i.eU)({show:!1,unit_name:""}),log_viewer:(0,i.eU)({show:!1}),sshInfo:c("linux_key",{}),file_root_index:c("file_root_index",u),file_root_list:c("file_root_list",[]),user_base_info:c("user_base_info",{user_data:new r.E0,sysSoftWare:{}}),custom_fun_opt:c("custom_fun_opt",u),header_min:(0,i.eU)(!1),file_preview:(0,i.eU)({open:!1}),share_sort_type:(0,i.eU)(r.t8.time_max_min),markdown:(0,i.eU)({}),md_editor:(0,i.eU)({}),md_editor_mode:c("md_editor_mode","wysiwyg"),md_editor_show_outline:c("md_editor_show_outline",!1),md_editor_last_context:(0,i.eU)(""),sqlite_query_context:c("sqlite_query_context",new class{open=!1;path="";name=""}),studio:(0,i.eU)({}),image_editor:(0,i.eU)({}),excalidraw_editor:(0,i.eU)({}),mind_editor:(0,i.eU)({}),disk:(0,i.eU)({type:""}),nav_index_add_item_by_now_list:(0,i.eU)(u),workflow_show:(0,i.eU)(!1),workflow_realtime_show:(0,i.eU)({open:!1}),nav_style:c("nav_style",{mobile_open:!1,pc_collapsed:!1}),router_jump:(0,i.eU)({}),folder_info_list_data:(0,i.eU)([0,0]),file_page:(0,i.eU)({page_size:200,page_num:1}),work_flow_show:(0,i.eU)(!1),file_item_width_atom:(0,i.eU)(0),zoom_style_by_percent:(0,i.eU)(100),ai_chat_zoom:(0,i.eU)(100),ai_session_collapsed:c("ai_session_collapsed",!1),ai_bg_expanded:c("ai_bg_expanded",!1),blank_search_mode:c("blank_search_mode",!1),blank_search_mode_for_temp:(0,i.eU)(!1),ai_request_type:c("ai_request_type","completions"),ai_chat_input_height:c("ai_chat_input_height",5),studio_chat_width:c("studio_chat_width",33)}},78247(e,t,n){"use strict";n.d(t,{MH:()=>a,Q0:()=>s,WO:()=>u,hg:()=>l,xK:()=>c});var i=n(34843),r=n(82893),o=(n(80952),n(23430));const s=new Map,a=()=>{const[e,t]=(0,i.fp)(r.AG.user_base_info);return{check_user_auth:t=>{const n=s.get(t);if(void 0!==n)return n;if(e?.user_data?.is_root)return!0;for(const n of e.user_data?.auth_list??[])if(n===t)return s.set(t,!0),!0;return s.set(t,!1),!1}}},l=()=>{const[e,t]=(0,i.fp)(r.AG.to_running_files);return{file_is_running:t=>e.has(t)}};class c{static cache_str_map=new Map;static editor_map=new Map;static set_value_temp(e,t){c.cache_str_map.set(void 0===t?0:t,e)}static get_value_temp(e){return c.cache_str_map.get(void 0===e?0:e)}static set_editor_temp(e,t){c.editor_map.set(void 0===t?0:t,e)}static delete_editor_temp(e){c.editor_map.delete(void 0===e?0:e)}static get_editor_value(e){return c.editor_map.get(void 0===e?0:e).getValue()}static get_editor(e){return this.editor_map.get(void 0===e?0:e)}}function u(){const{check_user_auth:e}=a();return!!e(o.oV.http_proxy)||(!!e(o.oV.ssh_proxy)||(!!e(o.oV.browser_proxy)||(!!e(o.oV.rdp_proxy)||!!e(o.oV.rtsp_proxy))))}},14944(e,t,n){"use strict";var i=n(76559),r=(n(92275),n(14284));const o=new i.I(`${window.location.host}${r.Ho.baseUrl}${window.location.pathname}`,"全局");n.d(t,["ws",0,o])},81028(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,'.awesomplete [hidden] {\n display: none;\n}\n\n.awesomplete .visually-hidden {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n}\n\n.awesomplete {\n display: inline-block;\n position: relative;\n}\n\n.awesomplete > input {\n display: block;\n}\n\n.awesomplete > ul {\n position: absolute;\n left: 0;\n z-index: 1;\n min-width: 100%;\n box-sizing: border-box;\n list-style: none;\n padding: 0;\n margin: 0;\n background: #fff;\n}\n\n.awesomplete > ul:empty {\n display: none;\n}\n\n.awesomplete > ul {\n\tborder-radius: .3em;\n\tmargin: .2em 0 0;\n\tbackground: hsla(0,0%,100%,.9);\n\tbackground: linear-gradient(to bottom right, white, hsla(0,0%,100%,.8));\n\tborder: 1px solid rgba(0,0,0,.3);\n\tbox-shadow: .05em .2em .6em rgba(0,0,0,.2);\n\ttext-shadow: none;\n}\n\n@supports (transform: scale(0)) {\n\t.awesomplete > ul {\n\t\ttransition: .3s cubic-bezier(.4,.2,.5,1.4);\n\t\ttransform-origin: 1.43em -.43em;\n\t}\n\t\n\t.awesomplete > ul[hidden],\n\t.awesomplete > ul:empty {\n\t\topacity: 0;\n\t\ttransform: scale(0);\n\t\tdisplay: block;\n\t\tvisibility: hidden;\n\t\ttransition-timing-function: ease;\n\t}\n}\n\n\t/* Pointer */\n\t.awesomplete > ul:before {\n\t\tcontent: "";\n\t\tposition: absolute;\n\t\ttop: -.43em;\n\t\tleft: 1em;\n\t\twidth: 0; height: 0;\n\t\tpadding: .4em;\n\t\tbackground: white;\n\t\tborder: inherit;\n\t\tborder-right: 0;\n\t\tborder-bottom: 0;\n\t\t-webkit-transform: rotate(45deg);\n\t\ttransform: rotate(45deg);\n\t}\n\n\t.awesomplete > ul > li {\n\t\tposition: relative;\n\t\tpadding: .2em .5em;\n\t\tcursor: pointer;\n\t}\n\t\n\t.awesomplete > ul > li:hover {\n\t\tbackground: hsl(200, 40%, 80%);\n\t\tcolor: black;\n\t}\n\t\n\t.awesomplete > ul > li[aria-selected="true"] {\n\t\tbackground: hsl(205, 40%, 40%);\n\t\tcolor: white;\n\t}\n\t\n\t\t.awesomplete mark {\n\t\t\tbackground: hsl(65, 100%, 50%);\n\t\t}\n\t\t\n\t\t.awesomplete li:hover mark {\n\t\t\tbackground: hsl(68, 100%, 41%);\n\t\t}\n\t\t\n\t\t.awesomplete li[aria-selected="true"] mark {\n\t\t\tbackground: hsl(86, 100%, 21%);\n\t\t\tcolor: inherit;\n\t\t}\n',""]);const a=s;n.d(t,["A",0,a])},14913(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o),a=n(4417),l=n.n(a),c=new URL(n(30574),n.b),u=new URL(n(54564),n.b),d=s()(r()),h=l()(c),p=l()(u);d.push([e.id,`@font-face {\n font-family: "Material Icons";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(${h}) format("woff2"), url(${p}) format("woff");\n}\n.material-icons {\n font-family: "Material Icons";\n font-weight: normal;\n font-style: normal;\n font-size: 24px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n font-feature-settings: "liga";\n}\n`,""]);const f=d;n.d(t,["A",0,f])},93911(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o),a=n(4417),l=n.n(a),c=new URL(n(30574),n.b),u=new URL(n(54564),n.b),d=new URL(n(64429),n.b),h=new URL(n(43957),n.b),p=new URL(n(62221),n.b),f=new URL(n(88981),n.b),g=new URL(n(95621),n.b),m=new URL(n(15261),n.b),y=new URL(n(52704),n.b),w=new URL(n(7286),n.b),b=s()(r()),v=l()(c),M=l()(u),x=l()(d),L=l()(h),_=l()(p),N=l()(f),S=l()(g),C=l()(m),T=l()(y),k=l()(w);b.push([e.id,`@font-face {\n font-family: "Material Icons";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(${v}) format("woff2"), url(${M}) format("woff");\n}\n.material-icons {\n font-family: "Material Icons";\n font-weight: normal;\n font-style: normal;\n font-size: 24px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n font-feature-settings: "liga";\n}\n\n@font-face {\n font-family: "Material Icons Outlined";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(${x}) format("woff2"), url(${L}) format("woff");\n}\n.material-icons-outlined {\n font-family: "Material Icons Outlined";\n font-weight: normal;\n font-style: normal;\n font-size: 24px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n font-feature-settings: "liga";\n}\n\n@font-face {\n font-family: "Material Icons Round";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(${_}) format("woff2"), url(${N}) format("woff");\n}\n.material-icons-round {\n font-family: "Material Icons Round";\n font-weight: normal;\n font-style: normal;\n font-size: 24px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n font-feature-settings: "liga";\n}\n\n@font-face {\n font-family: "Material Icons Sharp";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(${S}) format("woff2"), url(${C}) format("woff");\n}\n.material-icons-sharp {\n font-family: "Material Icons Sharp";\n font-weight: normal;\n font-style: normal;\n font-size: 24px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n font-feature-settings: "liga";\n}\n\n@font-face {\n font-family: "Material Icons Two Tone";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url(${T}) format("woff2"), url(${k}) format("woff");\n}\n.material-icons-two-tone {\n font-family: "Material Icons Two Tone";\n font-weight: normal;\n font-style: normal;\n font-size: 24px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n font-feature-settings: "liga";\n}\n`,""]);const A=b;n.d(t,["A",0,A])},51719(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,'/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type="button"],\n[type="reset"],\n[type="submit"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type="button"]::-moz-focus-inner,\n[type="reset"]::-moz-focus-inner,\n[type="submit"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type="button"]:-moz-focusring,\n[type="reset"]:-moz-focusring,\n[type="submit"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type="checkbox"],\n[type="radio"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type="number"]::-webkit-inner-spin-button,\n[type="number"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type="search"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type="search"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n',""]);const a=s;n.d(t,["A",0,a])},19186(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,".noty_layout_mixin, #noty_layout__top, #noty_layout__topLeft, #noty_layout__topCenter, #noty_layout__topRight, #noty_layout__bottom, #noty_layout__bottomLeft, #noty_layout__bottomCenter, #noty_layout__bottomRight, #noty_layout__center, #noty_layout__centerLeft, #noty_layout__centerRight {\n position: fixed;\n margin: 0;\n padding: 0;\n z-index: 9999999;\n -webkit-transform: translateZ(0) scale(1, 1);\n transform: translateZ(0) scale(1, 1);\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-font-smoothing: subpixel-antialiased;\n filter: blur(0);\n -webkit-filter: blur(0);\n max-width: 90%; }\n\n#noty_layout__top {\n top: 0;\n left: 5%;\n width: 90%; }\n\n#noty_layout__topLeft {\n top: 20px;\n left: 20px;\n width: 325px; }\n\n#noty_layout__topCenter {\n top: 5%;\n left: 50%;\n width: 325px;\n -webkit-transform: translate(-webkit-calc(-50% - .5px)) translateZ(0) scale(1, 1);\n transform: translate(calc(-50% - .5px)) translateZ(0) scale(1, 1); }\n\n#noty_layout__topRight {\n top: 20px;\n right: 20px;\n width: 325px; }\n\n#noty_layout__bottom {\n bottom: 0;\n left: 5%;\n width: 90%; }\n\n#noty_layout__bottomLeft {\n bottom: 20px;\n left: 20px;\n width: 325px; }\n\n#noty_layout__bottomCenter {\n bottom: 5%;\n left: 50%;\n width: 325px;\n -webkit-transform: translate(-webkit-calc(-50% - .5px)) translateZ(0) scale(1, 1);\n transform: translate(calc(-50% - .5px)) translateZ(0) scale(1, 1); }\n\n#noty_layout__bottomRight {\n bottom: 20px;\n right: 20px;\n width: 325px; }\n\n#noty_layout__center {\n top: 50%;\n left: 50%;\n width: 325px;\n -webkit-transform: translate(-webkit-calc(-50% - .5px), -webkit-calc(-50% - .5px)) translateZ(0) scale(1, 1);\n transform: translate(calc(-50% - .5px), calc(-50% - .5px)) translateZ(0) scale(1, 1); }\n\n#noty_layout__centerLeft {\n top: 50%;\n left: 20px;\n width: 325px;\n -webkit-transform: translate(0, -webkit-calc(-50% - .5px)) translateZ(0) scale(1, 1);\n transform: translate(0, calc(-50% - .5px)) translateZ(0) scale(1, 1); }\n\n#noty_layout__centerRight {\n top: 50%;\n right: 20px;\n width: 325px;\n -webkit-transform: translate(0, -webkit-calc(-50% - .5px)) translateZ(0) scale(1, 1);\n transform: translate(0, calc(-50% - .5px)) translateZ(0) scale(1, 1); }\n\n.noty_progressbar {\n display: none; }\n\n.noty_has_timeout.noty_has_progressbar .noty_progressbar {\n display: block;\n position: absolute;\n left: 0;\n bottom: 0;\n height: 3px;\n width: 100%;\n background-color: #646464;\n opacity: 0.2;\n filter: alpha(opacity=10); }\n\n.noty_bar {\n -webkit-backface-visibility: hidden;\n -webkit-transform: translate(0, 0) translateZ(0) scale(1, 1);\n -ms-transform: translate(0, 0) scale(1, 1);\n transform: translate(0, 0) scale(1, 1);\n -webkit-font-smoothing: subpixel-antialiased;\n overflow: hidden; }\n\n.noty_effects_open {\n opacity: 0;\n -webkit-transform: translate(50%);\n -ms-transform: translate(50%);\n transform: translate(50%);\n -webkit-animation: noty_anim_in 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);\n animation: noty_anim_in 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);\n -webkit-animation-fill-mode: forwards;\n animation-fill-mode: forwards; }\n\n.noty_effects_close {\n -webkit-animation: noty_anim_out 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);\n animation: noty_anim_out 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);\n -webkit-animation-fill-mode: forwards;\n animation-fill-mode: forwards; }\n\n.noty_fix_effects_height {\n -webkit-animation: noty_anim_height 75ms ease-out;\n animation: noty_anim_height 75ms ease-out; }\n\n.noty_close_with_click {\n cursor: pointer; }\n\n.noty_close_button {\n position: absolute;\n top: 2px;\n right: 2px;\n font-weight: bold;\n width: 20px;\n height: 20px;\n text-align: center;\n line-height: 20px;\n background-color: rgba(0, 0, 0, 0.05);\n border-radius: 2px;\n cursor: pointer;\n -webkit-transition: all .2s ease-out;\n transition: all .2s ease-out; }\n\n.noty_close_button:hover {\n background-color: rgba(0, 0, 0, 0.1); }\n\n.noty_modal {\n position: fixed;\n width: 100%;\n height: 100%;\n background-color: #000;\n z-index: 10000;\n opacity: .3;\n left: 0;\n top: 0; }\n\n.noty_modal.noty_modal_open {\n opacity: 0;\n -webkit-animation: noty_modal_in .3s ease-out;\n animation: noty_modal_in .3s ease-out; }\n\n.noty_modal.noty_modal_close {\n -webkit-animation: noty_modal_out .3s ease-out;\n animation: noty_modal_out .3s ease-out;\n -webkit-animation-fill-mode: forwards;\n animation-fill-mode: forwards; }\n\n@-webkit-keyframes noty_modal_in {\n 100% {\n opacity: .3; } }\n\n@keyframes noty_modal_in {\n 100% {\n opacity: .3; } }\n\n@-webkit-keyframes noty_modal_out {\n 100% {\n opacity: 0; } }\n\n@keyframes noty_modal_out {\n 100% {\n opacity: 0; } }\n\n@keyframes noty_modal_out {\n 100% {\n opacity: 0; } }\n\n@-webkit-keyframes noty_anim_in {\n 100% {\n -webkit-transform: translate(0);\n transform: translate(0);\n opacity: 1; } }\n\n@keyframes noty_anim_in {\n 100% {\n -webkit-transform: translate(0);\n transform: translate(0);\n opacity: 1; } }\n\n@-webkit-keyframes noty_anim_out {\n 100% {\n -webkit-transform: translate(50%);\n transform: translate(50%);\n opacity: 0; } }\n\n@keyframes noty_anim_out {\n 100% {\n -webkit-transform: translate(50%);\n transform: translate(50%);\n opacity: 0; } }\n\n@-webkit-keyframes noty_anim_height {\n 100% {\n height: 0; } }\n\n@keyframes noty_anim_height {\n 100% {\n height: 0; } }",""]);const a=s;n.d(t,["A",0,a])},25289(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,".noty_theme__mint.noty_bar {\n margin: 4px 0;\n overflow: hidden;\n border-radius: 2px;\n position: relative; }\n .noty_theme__mint.noty_bar .noty_body {\n padding: 10px;\n font-size: 14px; }\n .noty_theme__mint.noty_bar .noty_buttons {\n padding: 10px; }\n\n.noty_theme__mint.noty_type__alert,\n.noty_theme__mint.noty_type__notification {\n background-color: #fff;\n border-bottom: 1px solid #D1D1D1;\n color: #2F2F2F; }\n\n.noty_theme__mint.noty_type__warning {\n background-color: #FFAE42;\n border-bottom: 1px solid #E89F3C;\n color: #fff; }\n\n.noty_theme__mint.noty_type__error {\n background-color: #DE636F;\n border-bottom: 1px solid #CA5A65;\n color: #fff; }\n\n.noty_theme__mint.noty_type__info,\n.noty_theme__mint.noty_type__information {\n background-color: #7F7EFF;\n border-bottom: 1px solid #7473E8;\n color: #fff; }\n\n.noty_theme__mint.noty_type__success {\n background-color: #AFC765;\n border-bottom: 1px solid #A0B55C;\n color: #fff; }\n",""]);const a=s;n.d(t,["A",0,a])},30652(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,".share {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: flex-start;\n}\n\n@media (max-width: 736px) {\n .share {\n display: block;\n }\n}\n\n.share__box {\n box-shadow: rgba(0, 0, 0, 0.06) 0px 1px 3px, rgba(0, 0, 0, 0.12) 0px 1px 2px;\n background: #fff;\n border-radius: 0.2em;\n margin: 5px;\n overflow: hidden;\n}\n\n.share__box__header {\n padding: 1em;\n text-align: center;\n}\n\n.share__box__icon i {\n font-size: 10em;\n color: #40c4ff;\n}\n\n.share__box__center {\n text-align: center;\n}\n\n.share__box__info {\n flex: 1 1 18em;\n}\n\n.share__box__element {\n padding: 1em;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n word-break: break-all;\n}\n\n.share__box__element .button {\n display: inline-block;\n}\n\n.share__box__element .button i {\n display: block;\n margin-bottom: 4px;\n}\n\n.share__box__items {\n text-align: left;\n flex: 10 0 25em;\n}\n\n.share__box__items #listing.list .item {\n cursor: pointer;\n border-left: 0;\n border-right: 0;\n border-bottom: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.share__box__items #listing.list .item .name {\n width: 50%;\n}\n\n.share__box__items #listing.list .item .modified {\n width: 25%;\n}\n\n.share__wrong__password {\n background: var(--red);\n color: #fff;\n padding: .5em;\n text-align: center;\n animation: .2s opac forwards;\n}",""]);const a=s;n.d(t,["A",0,a])},28723(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,".shell {\n position: fixed;\n bottom: 0;\n left: 0;\n max-height: calc(100% - 4em);\n background: white;\n color: #212121;\n z-index: 1000;\n width: 100%;\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);\n transition: .2s ease transform;\n}\n\n\n.shell__divider {\n position: relative;\n height: 8px;\n z-index: 999;\n background: rgba(127, 127, 127, 0.1);\n transition: 0.2s ease background;\n cursor: ns-resize;\n touch-action: none;\n user-select: none;\n}\n\n.shell__divider:hover {\n background: rgba(127, 127, 127, 0.4);\n}\n\n.shell__content {\n height: 100%;\n font-family: monospace;\n overflow: auto;\n font-size: 1rem;\n cursor: text;\n}\n\n.shell__overlay {\n position: fixed;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n z-index: 9998;\n background-color: rgba(0, 0, 0, 0.05);\n}\n\nbody.rtl .shell-content {\n direction: ltr;\n}\n\n.shell__result {\n display: flex;\n padding: 0.5em;\n align-items: flex-start;\n border-top: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.shell--hidden {\n transform: translateY(105%);\n}\n\n.shell__result--hidden {\n opacity: 0;\n}\n\n.shell__text,\n.shell__prompt,\n.shell__prompt i {\n font-size: inherit;\n}\n\n.shell__prompt {\n width: 1.2rem;\n}\n\n.shell__prompt i {\n color: var(--blue);\n}\n\n.shell__text {\n margin: 0;\n font-family: inherit;\n white-space: pre-wrap;\n width: 100%;\n}\n",""]);const a=s;n.d(t,["A",0,a])},25606(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,":root {\n --blue: #2196f3;\n --dark-blue: #1e88e5;\n --red: #f44336;\n --dark-red: #d32f2f;\n --moon-grey: #f2f2f2;\n\n --icon-red: #da4453;\n --icon-orange: #f47750;\n --icon-yellow: #fdbc4b;\n --icon-green: #2ecc71;\n --icon-blue: #1d99f3;\n --icon-violet: #9b59b6;\n\n --input-red: rgb(252, 208, 205);\n --input-green: rgb(201, 242, 218);\n\n --item-selected: white;\n\n --action: rgb(84, 110, 122);\n\n --background: rgb(250, 250, 250);\n --surfacePrimary: rgb(255, 255, 255);\n --surfaceSecondary: rgb(230, 230, 230);\n --divider: rgba(0, 0, 0, 0.05);\n --iconPrimary: var(--icon-blue);\n --iconSecondary: rgb(255, 255, 255);\n --iconTertiary: rgb(204, 204, 204);\n --textPrimary: rgb(51, 51, 51);\n --textSecondary: rgb(111, 111, 111);\n --textBlack: rgb(51, 51, 51);\n --hover: rgba(0, 0, 0, 0.1);\n --borderPrimary: rgba(0, 0, 0, 0.1);\n --borderSecondary: rgba(0, 0, 0, 0.2);\n --dividerPrimary: rgba(255, 255, 255, 0.4);\n --dividerSecondary: rgba(255, 255, 255, 0.9);\n\n --filewidth: 33%;\n\n /* ai 聊天记录内容缩放百分比,由用户的 ai_chat_zoom 个人设置覆盖 */\n --ai-chat-zoom: 100;\n\n --top-length: 4rem;\n}\n\n:root.dark {\n --input-red: rgb(115, 48, 45);\n --input-green: rgb(20, 122, 65);\n\n --action: rgb(255, 255, 255);\n\n --background: rgb(20, 29, 36);\n --surfacePrimary: rgb(32, 41, 47);\n --surfaceSecondary: rgb(58, 65, 71);\n --textPrimary: rgba(255, 255, 255, 0.6);\n --textSecondary: rgba(255, 255, 255, 0.87);\n --divider: rgba(255, 255, 255, 0.12);\n --iconPrimary: rgb(255, 255, 255);\n --iconSecondary: rgb(255, 255, 255);\n --iconTertiary: rgb(255, 255, 255);\n --hover: rgba(255, 255, 255, 0.1);\n --borderPrimary: rgba(255, 255, 255, 0.05);\n --borderSecondary: rgba(255, 255, 255, 0.15);\n --dividerPrimary: rgba(30, 30, 30, 0.4);\n --dividerSecondary:rgba(30, 30, 30, 0.6);\n\n --top-length: 4rem;\n}\n",""]);const a=s;n.d(t,["A",0,a])},11626(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o),a=n(51719),l=n(19186),c=n(25289),u=n(25606),d=n(66285),h=n(42393),p=n(28723),f=n(30652),g=n(36912),m=n(26283),y=n(90732),w=n(94314),b=n(37955),v=n(55905),M=n(78425),x=s()(r());x.i(a.A),x.i(l.A),x.i(c.A),x.i(u.A),x.i(d.A),x.i(h.A),x.i(p.A),x.i(f.A),x.i(g.A),x.i(m.A),x.i(y.A),x.i(w.A),x.i(b.A),x.i(v.A),x.i(M.A),x.i(u.A),x.push([e.id,'/*\n功能按钮\n <button className="action" title={"标题"}>\n <i className="material-icons icon">{props.icon}</i>\n</button>\n*/\n.link {\n color: var(--blue);\n}\n\nmain .spinner {\n display: block;\n text-align: center;\n line-height: 0;\n padding: 1em 0;\n}\n\nmain .spinner > div {\n width: 0.8em;\n height: 0.8em;\n margin: 0 0.1em;\n font-size: 1em;\n background-color: rgba(0, 0, 0, 0.3);\n border-radius: 100%;\n display: inline-block;\n animation: sk-bouncedelay 1.4s infinite ease-in-out both;\n}\n\nmain .spinner .bounce1 {\n animation-delay: -0.32s;\n}\n\nmain .spinner .bounce2 {\n animation-delay: -0.16s;\n}\n\n.delayed {\n animation: delayed linear 100ms;\n}\n\n@keyframes delayed {\n 0% {\n opacity: 0;\n }\n 99% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n/* * * * * * * * * * * * * * * *\n * ACTION *\n * * * * * * * * * * * * * * * */\n\n.action {\n display: inline-block;\n cursor: pointer;\n transition: 0.2s ease all;\n border: 0;\n margin: 0;\n color: var(--action);\n border-radius: .2em;\n background: transparent;\n padding: 0;\n box-shadow: none;\n vertical-align: middle;\n text-align: left;\n position: relative;\n user-select: none;\n}\n\n.action .disabled {\n opacity: 0.2;\n cursor: not-allowed;\n}\n\n.action .actio_tip {\n top: -5px;\n right: 2px;\n position: absolute;\n}\n\n.action .icon {\n padding: 0.4em;\n transition: 0.1s ease-in-out all;\n border-radius: 50%;\n}\n\n.action:hover {\n background-color: rgba(0, 0, 0, 0.1);\n}\n\n.action ul {\n position: absolute;\n top: 0;\n color: #7d7d7d;\n list-style: none;\n margin: 0;\n padding: 0;\n flex-direction: column;\n display: flex;\n}\n\n.action ul li {\n line-height: 1;\n padding: 0.7em;\n transition: 0.1s ease background-color;\n}\n\n.action ul li:hover {\n background-color: rgba(0, 0, 0, 0.04);\n}\n\n#click-overlay {\n display: none;\n position: fixed;\n cursor: pointer;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n#click-overlay.active {\n visibility: visible;\n}\n\n.action .counter {\n display: block;\n position: absolute;\n bottom: 0;\n right: 0;\n background: var(--blue);\n color: #fff;\n border-radius: 50%;\n font-size: 0.75em;\n width: 1.8em;\n height: 1.8em;\n text-align: center;\n line-height: 1.55em;\n font-weight: bold;\n border: 2px solid white;\n}\n\n/* PREVIEWER */\n\n#previewer {\n background-color: rgba(0, 0, 0, 0.99);\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1000;\n overflow: hidden;\n padding-top: 4em;\n}\n\n#previewer header {\n background: none;\n color: #fff;\n border-bottom: 0px;\n box-shadow: 0px 0px 0px;\n z-index: 999;\n}\n\n#previewer header > .action i {\n color: #fff;\n text-shadow: 1px 1px 1px #000000;\n}\n\n#previewer header > title {\n white-space: nowrap;\n text-shadow: 1px 1px 1px #000000;\n}\n\n@media (min-width: 738px) {\n #previewer header #dropdown .action i {\n color: #fff;\n text-shadow: 1px 1px 1px #000000;\n }\n}\n\n#previewer header .action:hover {\n background-color: rgba(255, 255, 255, 0.3);\n}\n\n#previewer header .action span {\n display: none;\n}\n\n#previewer .preview {\n text-align: center;\n height: 100%;\n}\n\n#previewer .preview pre {\n text-align: left;\n overflow: auto;\n}\n\n#previewer .preview pre,\n#previewer .preview video,\n#previewer .preview img {\n max-height: 100%;\n margin: 0;\n}\n\n#previewer .preview audio {\n width: 95%;\n height: 88%;\n}\n\n\n#previewer .preview video {\n height: 100%;\n}\n\n#previewer .preview .info {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 1.5em;\n color: #fff;\n}\n#previewer .preview .info .title {\n margin-bottom: 1em;\n}\n#previewer .preview .info .title i {\n display: block;\n margin-bottom: 0.1em;\n font-size: 4em;\n}\n#previewer .preview .info .button {\n display: inline-block;\n}\n#previewer .preview .info .button:hover {\n background-color: rgba(255, 255, 255, 0.2);\n}\n#previewer .preview .info .button i {\n display: block;\n margin-bottom: 4px;\n font-size: 1.3em;\n}\n\n#previewer .pdf {\n width: 100%;\n height: 100%;\n}\n\n#previewer h2.message {\n color: rgba(255, 255, 255, 0.5);\n}\n\n#previewer > button {\n margin: 0;\n position: fixed;\n top: 50%;\n transform: translateY(-50%);\n background-color: rgba(80, 80, 80, 0.5);\n color: white;\n border-radius: 50%;\n cursor: pointer;\n border: 0;\n margin: 0;\n padding: 0;\n transition: 0.2s ease all;\n}\n\n#previewer > button.hidden {\n opacity: 0;\n visibility: hidden;\n}\n\n#previewer > button > i {\n padding: 0.4em;\n}\n\n#previewer > button:first-of-type {\n left: 0.5em;\n}\n\n#previewer > button:last-of-type {\n right: 0.5em;\n}\n\n#previewer .spinner {\n text-align: center;\n position: fixed;\n top: calc(50% + 1.85em);\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n#previewer .spinner > div {\n width: 18px;\n height: 18px;\n background-color: white;\n}\n\n/* EDITOR */\n\n#editor-container {\n display: flex;\n flex-direction: column;\n background-color: #fafafa;\n position: fixed;\n padding-top: 4em;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n z-index: 1000;\n overflow: hidden;\n}\n\n#editor-container #editor {\n flex: 1;\n}\n\n#editor-container .breadcrumbs {\n height: 2.3em;\n padding: 0 1em;\n}\n\n/*** RTL - flip and position arrow of path ***/\nbody.rtl .breadcrumbs .chevron {\n transform: scaleX(-1) translateX(16em);\n}\n\n#editor-container .breadcrumbs span {\n font-size: 0.75rem;\n}\n\n#editor-container .breadcrumbs i {\n font-size: 1rem;\n}\n\n/* * * * * * * * * * * * * * * *\n * PROMPT *\n * * * * * * * * * * * * * * * */\n\n.noty_buttons {\n text-align: right;\n padding: 0 10px 10px !important;\n}\n\n.noty_buttons button {\n background: rgba(0, 0, 0, 0.05);\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0 0 0;\n font-size: 1rem;\n}\n\n/* * * * * * * * * * * * * * * *\n * FOOTER *\n * * * * * * * * * * * * * * * */\n\n.credits {\n font-size: 0.6em;\n margin: 3em 2.5em;\n color: #a5a5a5;\n white-space: nowrap;\n}\n\n.credits > span {\n display: block;\n margin: 0.3em 0;\n}\n\n.credits a,\n.credits a:hover {\n color: inherit;\n cursor: pointer;\n text-decoration: underline;\n}\n\n/* * * * * * * * * * * * * * * *\n * ANIMATIONS *\n * * * * * * * * * * * * * * * */\n\n@keyframes spin {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n/* * * * * * * * * * * * * * * *\n * SETTINGS TUS *\n * * * * * * * * * * * * * * * */\n\n.tusConditionalSettings input:disabled {\n background-color: #ddd;\n color: #999;\n cursor: not-allowed;\n}\n\n/* * * * * * * * * * * * * * * *\n * SETTINGS RULES *\n * * * * * * * * * * * * * * * */\n\n.rules > div {\n display: flex;\n align-items: center;\n margin: 0.5rem 0;\n}\n\n.rules input[type="checkbox"] {\n margin-right: 0.2rem;\n}\n\n.rules input[type="text"] {\n border: 1px solid#ddd;\n padding: 0.2rem;\n}\n\n.rules label {\n margin-right: 0.5rem;\n}\n\n.rules button {\n margin-left: auto;\n}\n\n.rules button.delete {\n padding: 0.2rem 0.5rem;\n margin-left: 0.5rem;\n}\n\n/* * * * * * * * * * * * * * * *\n * RTL overrides *\n * * * * * * * * * * * * * * * */\n\nbody.rtl .card-content textarea {\n direction: ltr;\n text-align: left;\n}\n\nbody.rtl .card-content .small + input {\n direction: ltr;\n text-align: left;\n}\n\nbody.rtl .card.floating .card-content .file-list {\n direction: ltr;\n text-align: left;\n}\n\n/* AceInput 模拟 input 样式 */\n.ace-input-container .ace_editor {\n border: 1px solid var(--border-color, #d9d9d9);\n border-radius: 4px;\n font-family: inherit;\n line-height: 28px !important;\n}\n.ace-input-container .ace_editor:focus-within {\n border-color: var(#1677ff);\n box-shadow: 0 0 0 2px rgba(22, 119, 255, 0.1);\n outline: none;\n}\n/* 隐藏 gutter(行号区) */\n.ace-input-container .ace_gutter {\n display: none;\n}\n/* placeholder 样式 */\n.ace-input-container .ace_placeholder {\n color: var( #bfbfbf);\n font-style: italic;\n opacity: 0.7;\n padding-left: 4px;\n}\n/* 光标行无背景 */\n.ace-input-container .ace_active-line {\n background: transparent !important;\n}\n/* 选中颜色 */\n.ace-input-container .ace_selection {\n background: rgba(22, 119, 255, 0.2) !important;\n}\n/* 内容区域 padding,让文字和边框有间距 */\n.ace-input-container .ace_scroller {\n left: 4px !important;\n right: 4px !important;\n}\n',""]);const L=x;n.d(t,["A",0,L])},11590(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,"/* AIRebotSetting.css */\n\n/* 主容器 — 作为 main 的直接子元素,需要自己处理滚动 */\n.airebot-setting {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.airebot-setting__toolbar {\n display: flex;\n gap: 0.25rem;\n margin-bottom: 1rem;\n align-items: center;\n flex-shrink: 0;\n}\n\n.airebot-setting__add-select {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n}\n\n/* 为空提示 */\n.airebot-setting__empty {\n text-align: center;\n padding: 3rem 1rem;\n color: var(--textSecondary);\n}\n\n.airebot-setting__empty-icon {\n font-size: 3rem;\n display: block;\n margin: 0 auto 0.5rem;\n}\n\n.airebot-setting__empty-hint {\n font-size: 0.85rem;\n}\n\n/* 卡片网格 */\n.airebot-setting__grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));\n gap: 1rem;\n}\n\n/* 单个卡片内部 */\n.airebot-setting__card-header {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.airebot-setting__card-icon {\n font-size: 1.3rem;\n}\n\n.airebot-setting__card-actions {\n display: flex;\n gap: 0.25rem;\n}\n\n/* 卡片表单区域 */\n.airebot-setting__card-fields {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));\n gap: 0.75rem;\n padding: 0.25rem 0;\n}\n\n.airebot-setting__field {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n\n.airebot-setting__field-label {\n font-size: 0.8rem;\n color: var(--textSecondary);\n font-weight: 500;\n}\n\n.airebot-setting__field-required {\n color: #ff4d4f;\n margin-left: 2px;\n}\n\n.airebot-setting__field-full {\n grid-column: 1 / -1;\n}\n\n/* 页面头部 */\n.airebot-setting__page-title {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 0.5rem;\n}\n",""]);const a=s;n.d(t,["A",0,a])},70730(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,"/* =============================================\n AiChat Page - 内联样式迁移\n 用于存放从 page 组件中提取的 CSS\n ============================================= */\n\n/* --- RequestTypeSelector --- */\n\n/* 图片生成结果 */\n.image-generation-result {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin: 8px 0;\n}\n\n.image-generation-item {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.image-generation-image-wrapper img {\n max-width: 100%;\n border-radius: 8px;\n}\n\n.image-generation-prompt {\n margin: 4px 0;\n color: var(--textSecondary);\n}\n\n/* 音频结果 */\n.audio-result audio {\n width: 100%;\n border-radius: 8px;\n}\n\n/* Embeddings 结果 - 增强可复制性 */\n.embeddings-result {\n margin: 8px 0;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.embeddings-summary {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n align-items: center;\n padding: 8px 12px;\n background: var(--surfaceSecondary);\n border-radius: 8px;\n font-size: 0.9em;\n}\n\n.embeddings-summary strong {\n color: var(--textPrimary);\n}\n\n.embeddings-summary span {\n color: var(--textSecondary);\n background: var(--surfacePrimary);\n padding: 2px 8px;\n border-radius: 4px;\n border: 1px solid var(--divider);\n}\n\n.embeddings-raw {\n max-height: 300px;\n overflow: auto;\n font-size: 12px;\n background: var(--surfaceSecondary);\n padding: 12px;\n border-radius: 4px;\n border: 1px solid var(--divider);\n white-space: pre;\n word-wrap: normal;\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;\n user-select: text;\n -webkit-user-select: text;\n}\n\n/* 嵌入向量复制工具栏 */\n.embeddings-toolbar {\n display: flex;\n gap: 8px;\n align-items: center;\n padding: 4px 0;\n}\n\n.embeddings-copy-btn {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n border: 1px solid var(--divider);\n background: var(--surfacePrimary);\n color: var(--textPrimary);\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n transition: background 0.2s;\n}\n\n.embeddings-copy-btn:hover {\n background: var(--primary-light);\n}\n\n.embeddings-copy-btn:active {\n transform: scale(0.95);\n}\n\n/* 嵌入向量预览行 */\n.embeddings-preview {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 12px;\n font-size: 0.85em;\n color: var(--textSecondary);\n background: var(--surfacePrimary);\n border-radius: 6px;\n border: 1px solid var(--divider);\n overflow: hidden;\n}\n\n.embeddings-preview span {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-family: 'SFMono-Regular', Consolas, monospace;\n}\n",""]);const a=s;n.d(t,["A",0,a])},76807(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o),a=n(26283),l=n(66285),c=n(85223),u=n(36912),d=n(90732),h=n(42393),p=n(61088),f=n(62108),g=n(94314),m=n(98673),y=n(37955),w=n(11626),b=n(55905),v=n(15652),M=n(85058),x=n(35274),L=n(82323),_=n(32293),N=n(21082),S=n(52821),C=n(92890),T=n(41175),k=n(26663),A=n(54622),D=n(98569),j=n(22156),z=n(71863),E=n(69790),I=n(67444),O=n(78425),$=n(70502),R=n(70730),P=n(11590),U=n(31816),F=n(6267),Y=s()(r());Y.i(a.A),Y.i(l.A),Y.i(c.A),Y.i(u.A),Y.i(d.A),Y.i(h.A),Y.i(p.A),Y.i(f.A),Y.i(g.A),Y.i(m.A),Y.i(y.A),Y.i(w.A),Y.i(b.A),Y.i(v.A),Y.i(M.A),Y.i(x.A),Y.i(L.A),Y.i(_.A),Y.i(N.A),Y.i(S.A),Y.i(C.A),Y.i(T.A),Y.i(k.A),Y.i(A.A),Y.i(D.A),Y.i(j.A),Y.i(z.A),Y.i(E.A),Y.i(I.A),Y.i(O.A),Y.i($.A),Y.i(R.A),Y.i(R.A),Y.i(P.A),Y.i(U.A),Y.i(F.A),Y.push([e.id,'/*@import "_variables.css";*/\n/*@import "_shell.css";*/\n/*@import "_share.css";*/\n/*@import "./themes/dark.css";*/\n',""]);const Q=Y;n.d(t,["A",0,Q])},26283(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,'html, body, #root {\n height: 100%;\n overflow: hidden; /* 整个文档不允许滚动,高度设置,如果内部div想要滚动需要自己设置*/\n}\n\nbody {\n font-family: "Roboto", sans-serif;\n /*padding-top: 4em;*/\n background-color: #fafafa;\n color: #333333;\n}\n\nbody.rtl {\n direction: rtl;\n}\n\n* {\n box-sizing: border-box;\n /*align-items: center;*/\n}\n\n*,\n*:hover,\n*:active,\n*:focus {\n outline: 0;\n}\n\na {\n text-decoration: none;\n}\na:hover {\n cursor: pointer;\n}\nimg {\n max-width: 100%;\n}\n\naudio,\nvideo {\n width: 100%;\n}\n\n.mobile-only {\n display: none !important;\n}\n\n.container {\n width: 95%;\n max-width: 960px;\n margin: 1em auto 0;\n}\n\ni.spin {\n animation: 1s spin linear infinite;\n}\n\n#app {\n transition: 0.2s ease padding;\n}\n\n#app.multiple {\n padding-bottom: 4em;\n}\n\n\n\nbody.rtl nav {\n left: unset;\n right: 0;\n}\n\n\n\nbody.rtl .action {\n direction: rtl;\n text-align: right;\n}\n\n\n\n\n.breadcrumbs {\n padding-top: 1rem;\n height: 3em;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n width: 100%;\n}\n\n.breadcrumbs span,\n.breadcrumbs {\n display: flex;\n align-items: center;\n color: #6f6f6f;\n}\n\n.breadcrumbs a {\n color: inherit;\n transition: 0.1s ease-in;\n border-radius: 0.125em;\n}\n\nbody.rtl .breadcrumbs a {\n transform: translateX(-16em);\n}\n\n.breadcrumbs a:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.breadcrumbs span a {\n padding: 0.2em;\n}\n\n.files {\n position: absolute;\n bottom: 30px;\n width: 100%;\n}\n\n.progress {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 3px;\n z-index: 999;\n}\n\n.progress div {\n height: 100%;\n background-color: #40c4ff;\n width: 0;\n transition: 0.2s ease width;\n}\n\n.break-word {\n word-break: break-all;\n}\n\nli:hover {\n cursor: pointer;\n}\n\n/* 自定义滚动条整体样式 */\n::-webkit-scrollbar {\n /*width: 2px; !* 滚动条宽度,变细 *!*/\n height: 0.7rem;\n width: 0.7rem;\n}\n\n/* 滚动条轨道 */\n::-webkit-scrollbar-track {\n background: #f1f1f1; /* 轨道背景颜色 */\n}\n\n/* 滚动条滑块 */\n::-webkit-scrollbar-thumb {\n background: rgb(210, 211, 212); /* 滑块颜色改为蓝色 */\n border-radius: 0; /* 滑块圆角 */\n\n}\n\n/* 滚动条滑块悬停状态 */\n::-webkit-scrollbar-thumb:hover {\n background: rgb(210, 211, 212); /* 悬停时滑块颜色 */\n}\n\n/* 修改滚动条轨道背景 */\n::-webkit-scrollbar-track {\n background-color: transparent; /* 设置滚动条背景颜色 */\n border-radius: 0; /* 轨道也是直角 */\n}\n/* 鼠标悬停时,滚动条轨道变成灰色 */\n::-webkit-scrollbar-track:hover {\n background: #f0f0f0; /* 灰色 */\n}\n\n/* body 体*/\n.common-box {\n width: 100%;\n height: 100%;\n /*border: 1px solid #ccc;*/\n /*让元素在菜单头下部*/\n padding-top: 5rem;\n padding-right: .5rem;\n padding-left: .5rem;\n}\n/*配合元素*/\n.common-box-top-left {\n display: flex;\n justify-content: flex-start; /* 水平左 */\n align-items: flex-start; /* 垂直上 */\n}\n.common-box-center-x {\n display: flex;\n justify-content: center; /* 水平居中 */\n align-items: flex-start; /* 垂直不居中 */\n}\n.common-box-center {\n display: grid;\n place-items: center;\n}\n\n.common-tag-center {\n display: flex;\n align-items: center;\n}\n\n.show_data_text_div {\n padding-top: 0.2rem;\n font-weight: 500;\n}',""]);const a=s;n.d(t,["A",0,a])},21082(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,"#browser {\n display: flex;\n flex-direction: column;\n height: 100vh;\n}\n#url-bar {\n display: flex;\n padding: 10px;\n background-color: #f1f1f1;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n#url-input {\n flex: 1;\n padding: 10px;\n font-size: 16px;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.little-button {\n padding: 10px 20px;\n margin-left: 10px;\n font-size: 16px;\n border: none;\n border-radius: 4px;\n background-color: var(--icon-blue);\n color: white;\n cursor: pointer;\n}\n.little-button-status {\n padding: 10px 20px;\n margin-left: 10px;\n font-size: 16px;\n border: none;\n border-radius: 4px;\n background-color: var(--surfaceSecondary);\n color: white;\n cursor: pointer;\n white-space: nowrap;\n}\n/*.little-button:hover {*/\n/* background-color: #45a049;*/\n/*}*/\n#webview {\n flex: 1;\n border: none;\n width: 100%;\n height: 100%;\n\n}\n\n.full_screen {\n width: 100%;\n background-color: #f8f8f8;\n position: fixed;\n top: 0;\n right: 0;\n max-width: 100%;\n z-index: 1;\n height: 100%;\n\n}\n.full_screen_more {\n overflow: auto;\n}\n\n.full_screen_context {\n padding-top:5rem;\n padding-left: 2rem;\n padding-right: 2rem;\n}",""]);const a=s;n.d(t,["A",0,a])},66285(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o),a=n(25606),l=s()(r());l.i(a.A),l.push([e.id,".button {\n /*width: 100%;*/\n outline: 0;\n /*border: 0;*/\n padding: .5em 1em;\n /*border-radius: .1em;*/\n border-radius: 6px;\n cursor: pointer;\n background: var(--blue);\n color: white;\n border: 1px solid rgba(0, 0, 0, 0.05);\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.05);\n transition: .1s ease all;\n}\n\n.button:hover {\n background-color: var(--dark-blue);\n}\n\n.button--block {\n margin: 0 0 0.5em;\n display: block;\n width: 100%;\n}\n\n.button--red {\n background: var(--red);\n}\n\n.button--blue {\n background: var(--blue);\n}\n\n.button--flat {\n color: var(--dark-blue);\n background: transparent;\n box-shadow: 0 0 0;\n border: 0;\n text-transform: uppercase;\n}\n\n.button--flat:hover {\n background: var(--moon-grey);\n}\n\n.button--flat.button--red {\n color: var(--dark-red);\n}\n\n.button--flat.button--grey {\n color: #6f6f6f;\n}\n\n.button[disabled] {\n opacity: .5;\n cursor: not-allowed;\n}\n",""]);const c=l;n.d(t,["A",0,c])},92890(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,".progress-card {\n margin-bottom: 8px;\n\n}\n\n.progress-card .progress-per {\n margin-top: 2px;\n width: 100%;\n height: 5px;\n}\n\n.progress-card .progress-per div {\n height: 100%;\n background-color: #40c4ff;\n width: 0;\n transition: 0.2s ease width;\n border-radius: 10px;\n}\n",""]);const a=s;n.d(t,["A",0,a])},70502(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,"/* 页面布局 */\n.chat-page {\n height: 100%;\n display: flex;\n flex-direction: column;\n font-family: 'Arial', sans-serif;\n /*background: #f7f7f8;*/\n}\n\n.chat-page-with-sessions {\n flex-direction: row;\n min-height: 0;\n}\n\n/* 被嵌入到宿主页面(如 Studio 右侧面板)时的聊天页:\n 内容布局与整页模式完全一致(会话列表 + 聊天主体,横向排列),\n 只是没有全站 Header(Header 由面板自己渲染在上面)。\n 注意必须保持 flex-direction: row —— 若改成 column,.chat-main 会在\n flex column 里被内容撑高,超出面板高度。 */\n.chat-page--embedded {\n flex-direction: row;\n height: 100%;\n min-height: 0;\n background: var(--surfacePrimary);\n}\n\n/* 内嵌模式的面板自带 Header(不使用 HeaderPortal,避免与宿主页面抢槽位) */\n.chat-inline-header {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n flex-wrap: nowrap;\n gap: 2px;\n flex-shrink: 0;\n height: 4em;\n padding: 0 0.4em;\n box-sizing: border-box;\n border-bottom: 1px solid var(--divider);\n background: var(--surfacePrimary);\n overflow-x: auto;\n overflow-y: hidden;\n /*cursor: grab;*/\n}\n\n\n.chat-main {\n min-width: 0;\n flex: 1;\n display: flex;\n flex-direction: column;\n background: #fff;\n}\n\n.chat-session-overlay {\n display: none;\n}\n\n.chat-session-list {\n width: 220px;\n min-width: 180px;\n padding: 10px;\n /*border-right: 1px solid #e5e7eb;*/\n display: flex;\n flex-direction: column;\n gap: 6px;\n background: #fafafa;\n height: 100%;\n box-sizing: border-box;\n}\n\n/* 会话搜索框 */\n.chat-session-search {\n padding: 0 0 8px 0;\n flex-shrink: 0;\n}\n\n.chat-session-search-input {\n width: 100%;\n padding: 6px 10px;\n font-size: 0.9em;\n border: 1px solid #d6d9de;\n border-radius: 8px;\n outline: none;\n box-sizing: border-box;\n background: #fff;\n color: #222;\n}\n\n.chat-session-search-input:focus {\n border-color: var(--primary, #4f46e5);\n box-shadow: 0 0 0 2px var(--primary-light, rgba(79, 70, 229, 0.15));\n}\n\n.chat-session-search-input::placeholder {\n color: #9ca3af;\n}\n\n.chat-session-item {\n width: 100%;\n min-height: 44px;\n border: 1px solid transparent;\n background: transparent;\n border-radius: 8px;\n padding: 7px 26px 7px 9px;\n text-align: left;\n cursor: pointer;\n position: relative;\n color: #222;\n}\n\n.chat-session-item > *:last-child {\n position: absolute;\n top: 6px;\n right: 6px;\n}\n\n/* ===== 会话列表拖动排序 ===== */\n.chat-session-item[draggable=\"true\"] {\n cursor: grab;\n}\n\n/* 拖动源:半透明表示“正在被拖走” */\n.chat-session-item.row-dragging {\n opacity: 0.5;\n}\n\n/* 拖动落点:整行高亮提示插入位置 */\n.chat-session-item.row-drop-target {\n background: var(--hover);\n}\n\n.chat-session-item.active,\n.chat-session-item:hover {\n background: #fff;\n /*border-color: #d6d9de;*/\n}\n\n.chat-session-item span {\n display: block;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 18px;\n}\n.chat-session-item small {\n color: #667085;\n font-size: 12px;\n}\n\n/* 会话正在执行中:标题右侧的旋转 loading 小圆点 */\n/* 用 !important 固定尺寸,避免被 .chat-session-item span 的 display:block / 折叠时 width:100% 等规则覆盖导致圆点被拉伸放大 */\n.chat-session-running {\n display: inline-block !important;\n width: 11px !important;\n height: 11px !important;\n margin: 0 4px;\n vertical-align: 1px;\n border: 2px solid #c7d2fe;\n border-top-color: var(--primary, #4f46e5);\n border-radius: 50%;\n animation: chat-session-running-spin 0.8s linear infinite;\n flex-shrink: 0;\n}\n\n@keyframes chat-session-running-spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n\n.chat-session-source {\n display: inline-block;\n margin-top: 2px;\n font-style: normal;\n font-size: 11px;\n color: #7c3aed;\n}\n\n/* 超管「所有用户会话」模式下会话项右侧的属主名 */\n.chat-session-owner {\n display: inline-block;\n margin-top: 2px;\n padding: 0 6px;\n font-style: normal;\n font-size: 11px;\n line-height: 16px;\n border-radius: 8px;\n color: var(--textSecondary, #6b7280);\n background: var(--hover, rgba(0, 0, 0, 0.05));\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n\n\n@media (max-width: 736px) {\n .chat-session-list {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1002;\n width: 16em;\n min-width: 16em;\n height: 100%;\n padding-top: var(--top-length);\n /*border-right: 1px solid #e5e7eb;*/\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n body.rtl .chat-session-list {\n left: unset;\n right: 0;\n }\n\n .chat-session-overlay {\n display: block;\n position: fixed;\n inset: 0;\n z-index: 1001;\n background-color: rgba(0, 0, 0, 0.1);\n }\n}\n\n/* 头部 */\n.chat-header {\n padding: 32px 16px;\n font-weight: 600;\n font-size: 1.3em;\n text-align: center;\n background: #fff;\n color: #374151;\n}\n\n.chat-header-model {\n margin-top: 6px;\n font-size: 0.75em;\n font-weight: 400;\n color: var(--textSecondary, #6b7280);\n}\n\n/* 消息列表 - Codex 风格 */\n.chat-messages {\n flex: 1;\n padding: 0;\n overflow-y: auto;\n overflow-x: hidden;\n display: flex;\n flex-direction: column;\n gap: 0;\n background: #fff;\n /* 聊天记录内容缩放:只作用于消息区,不影响左侧会话列表与下方输入框。\n 消息内字号都是相对 em,整体跟随这个基准字号 */\n font-size: calc(16px * var(--ai-chat-zoom, 100) / 100);\n}\n\n/* 消息气泡 - Codex 风格 */\n.chat-message {\n padding: 0.75rem 1rem;\n border-radius: 0;\n max-width: 100%;\n word-break: break-word;\n line-height: 1.6em;\n position: relative;\n font-size: 0.95em;\n border-bottom: 1px solid var(--divider, #e5e7eb);\n}\n\n/* 用户消息:右侧淡蓝背景 */\n.chat-message.user {\n background: #eff6ff;\n color: #1e293b;\n align-self: flex-end;\n border-radius: 12px;\n margin: 6px 0 6px 60px;\n border-bottom: none;\n}\n\n/* AI 消息:左侧白色/浅灰背景 */\n.chat-message.bot {\n background: transparent;\n color: #1e293b;\n align-self: flex-start;\n padding-left: 2.5rem;\n}\n\n/* AI 头像小标识(放在气泡左侧) */\n.chat-message.bot::before {\n content: '';\n position: absolute;\n left: 10px;\n top: 0.85rem;\n width: 20px;\n height: 20px;\n border-radius: 6px;\n background: #10b981;\n opacity: 0.6;\n transition: opacity 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;\n}\n\n/* ===== AI 执行中:最后一个 bot 气泡的头像呼吸动画 ===== */\n[data-sending=\"true\"] .chat-message.bot:last-of-type::before {\n opacity: 1;\n background: #22c55e;\n box-shadow: 0 0 8px 2px rgba(34, 197, 94, 0.5);\n animation: ai-avatar-pulse 1.5s ease-in-out infinite;\n}\n\n@keyframes ai-avatar-pulse {\n 0%, 100% {\n box-shadow: 0 0 6px 2px rgba(34, 197, 94, 0.4);\n transform: scale(1);\n }\n 50% {\n box-shadow: 0 0 14px 5px rgba(34, 197, 94, 0.7);\n transform: scale(1.15);\n }\n}\n\n/* ===== 工具调用中的头像变成橙色旋转 ===== */\n[data-sending=\"true\"] .chat-message.bot.tool-info:last-of-type::before {\n background: #f59e0b;\n box-shadow: 0 0 8px 2px rgba(245, 158, 11, 0.5);\n animation: ai-avatar-spin 2s linear infinite;\n}\n/* 如果最后一个不是 tool-info 但后面还有 tool-info,则保持绿色呼吸 */\n[data-sending=\"true\"] .chat-message.bot:last-of-type.tool-info::before {\n animation: ai-avatar-spin 1.5s linear infinite;\n}\n\n@keyframes ai-avatar-spin {\n 0% {\n box-shadow: 0 0 8px 2px rgba(245, 158, 11, 0.5);\n transform: rotate(0deg) scale(1.1);\n }\n 100% {\n box-shadow: 0 0 12px 4px rgba(245, 158, 11, 0.6);\n transform: rotate(360deg) scale(1.1);\n }\n}\n\n\n\n/* 输入区 - Codex 风格 */\n.chat-input-area {\n display: flex;\n padding: 10px 16px;\n gap: 8px;\n background: #fff;\n border-top: 1px solid #e5e7eb;\n align-items: flex-end;\n flex-shrink: 0;\n position: relative;\n}\n\n/* 输入框顶部拖动条,定位在 border-top 上方 */\n.chat-input-resize-handle {\n position: absolute;\n top: -3px;\n left: 0;\n right: 0;\n height: 6px;\n cursor: ns-resize;\n z-index: 1;\n /* 透明,hover 时才显示 */\n background: transparent;\n transition: background 0.15s ease;\n}\n.chat-input-resize-handle:hover {\n background: var(--primary-light, rgba(79, 70, 229, 0.12));\n}\n.chat-input-resize-handle.dragging {\n background: var(--primary, rgba(79, 70, 229, 0.2));\n}\n\n/* 拖动时的遮罩层 */\n.chat-input-overlay {\n position: fixed;\n inset: 0;\n z-index: 9999;\n background: transparent;\n cursor: ns-resize;\n}\n\n.chat-input-area textarea.chat-input,\n.chat-input-area .ace-input-container.chat-input,\n.chat-input-area .rich-textarea.chat-input {\n width: 100%;\n /* 高度由 JS 的 heightStyle(em)统一控制,这里不设 min-height,避免与拖拽冲突 */\n min-height: 0;\n max-height: none;\n padding: 10px 14px;\n font-size: 0.95em;\n line-height: 1.5em;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n resize: none;\n overflow-y: auto;\n box-sizing: border-box;\n outline: none;\n transition: border-color 0.15s ease;\n background: #fafafa;\n}\n\n.chat-input-area textarea.chat-input:focus,\n.chat-input-area .ace-input-container.chat-input:focus-within,\n.chat-input-area .rich-textarea.chat-input:focus {\n border-color: var(--primary);\n background: #fff;\n box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.08);\n}\n\n/* ace 编辑器内部去掉默认背景,继承外层 */\n.chat-input-area .ace-input-container.chat-input .ace_editor {\n background: transparent !important;\n}\n\n/* 只读输入区:查看全部会话时禁止发送,整体置灰 */\n.chat-input-area.readonly {\n opacity: 0.65;\n}\n.chat-input-area.readonly .little-button.button[disabled] {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n\n.message-actions {\n position: absolute;\n right: 8px;\n top: 0px;\n display: flex;\n gap: 4px;\n opacity: 0;\n transform: translateY(-4px);\n transition: opacity 0.15s ease, transform 0.15s ease;\n z-index: 5;\n}\n\n.chat-message:hover .message-actions {\n opacity: 1;\n transform: translateY(0);\n}\n\n.message-actions button {\n padding: 3px 10px;\n border: 1px solid #e5e7eb;\n background: #fff;\n cursor: pointer;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 500;\n color: #6b7280;\n transition: all 0.15s ease;\n box-shadow: 0 1px 2px rgba(0,0,0,0.04);\n}\n\n.message-actions button:hover {\n color: #111827;\n border-color: #d1d5db;\n background: #f9fafb;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n}\n\n/* ===== 消息折叠 ===== */\n/* 折叠状态的一行摘要 */\n.chat-message-summary {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 2px 0;\n color: #4b5563;\n font-size: 0.9em;\n line-height: 1.5;\n cursor: pointer;\n}\n\n.chat-message-summary-icon {\n flex-shrink: 0;\n font-size: 0.8em;\n color: #9ca3af;\n transition: transform 0.15s ease;\n}\n\n.chat-message-summary-text {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n/* 折叠时正文隐藏 */\n.chat-message.collapsed .chat-message-body {\n display: none;\n}\n/* 消息底部操作条:默认隐藏,鼠标悬浮消息时才显示 */\n.message-collapse-bar {\n display: flex;\n gap: 4px;\n margin-top: 6px;\n opacity: 0;\n transition: opacity 0.15s ease;\n z-index: 4;\n}\n\n/* 本轮 AI 回复耗时:与「折叠/全部折叠」同排紧挨,跟随操作条一起显隐 */\n.message-elapsed {\n font-size: 12px;\n line-height: 1.4;\n color: var(--textSecondary);\n opacity: 0.75;\n user-select: none;\n white-space: nowrap;\n}\n\n\n.chat-message:hover .message-collapse-bar {\n opacity: 1;\n}\n\n.message-collapse-bar button {\n padding: 2px 8px;\n border: 1px solid transparent;\n background: transparent;\n cursor: pointer;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 500;\n color: #9ca3af;\n transition: all 0.15s ease;\n}\n\n.message-collapse-bar button:hover {\n color: #4b5563;\n border-color: #e5e7eb;\n background: #f9fafb;\n}\n\n.chat-input-shell {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.chat-attachment-strip {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.chat-attachment-chip {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n max-width: 100%;\n padding: 6px 10px;\n border: 1px solid #d6d9de;\n border-radius: 999px;\n background: #f8fafc;\n color: #334155;\n}\n\n.chat-attachment-chip span {\n max-width: 16rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.chat-attachment-chip button {\n width: 20px;\n height: 20px;\n padding: 0;\n border: none;\n background: transparent;\n color: #64748b;\n cursor: pointer;\n}\n\n.chat-attach-button {\n width: 42px;\n height: 42px;\n padding: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: 1px solid #d6d9de;\n border-radius: 12px;\n background: #fff;\n color: #475569;\n}\n\n.chat-attach-button:hover {\n background: #f8fafc;\n}\n\n.chat-message-attachments {\n display: flex;\n flex-direction: column;\n gap: 6px;\n margin-top: 8px;\n}\n\n.chat-message-attachment {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n max-width: 100%;\n padding: 6px 10px;\n border-radius: 10px;\n background: rgba(255, 255, 255, 0.4);\n color: inherit;\n}\n\n.chat-message-attachment span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.chat-message-attachment small {\n color: inherit;\n opacity: 0.7;\n}\n\n/* 字符消耗统计弹框 */\n.usage-stats-popup {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 2000;\n width: 380px;\n max-width: 90vw;\n background: #fff;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);\n overflow: hidden;\n}\n\n.usage-stats-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #e5e7eb;\n}\n\n.usage-stats-header h3 {\n margin: 0;\n font-size: 1.1em;\n font-weight: 600;\n color: #1f2937;\n}\n\n.usage-stats-close {\n width: 32px;\n height: 32px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: 6px;\n color: #6b7280;\n}\n\n.usage-stats-close:hover {\n background: #f3f4f6;\n color: #111827;\n}\n\n.usage-stats-body {\n padding: 20px;\n}\n\n.usage-stats-loading,\n.usage-stats-empty {\n text-align: center;\n padding: 24px 0;\n color: #9ca3af;\n font-size: 0.95em;\n}\n\n.usage-stats-table {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.usage-stats-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n border-radius: 8px;\n background: #f9fafb;\n}\n\n.usage-stats-row:nth-child(even) {\n background: #f3f4f6;\n}\n\n.usage-stats-label {\n font-size: 0.9em;\n color: #4b5563;\n}\n\n.usage-stats-value {\n font-size: 0.95em;\n font-weight: 600;\n color: #1f2937;\n font-variant-numeric: tabular-nums;\n}\n\n.usage-stats-total {\n margin-top: 6px;\n background: #eff6ff !important;\n border: 1px solid #bfdbfe;\n}\n\n.usage-stats-total .usage-stats-label,\n.usage-stats-total .usage-stats-value {\n color: #1d4ed8;\n font-weight: 700;\n}\n\n/* 会话设置弹框内容(prompt_card 内)*/\n.session-setting {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.session-setting__label {\n font-size: 0.9em;\n color: var(--textPrimary, #222);\n}\n\n/* AI 思考指示器 */\n.ai-thinking-indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n height: 40px;\n padding: 0;\n border: 1px solid #d6d9de;\n border-radius: 12px;\n background: #fff;\n cursor: default;\n}\n\n/* ===== AI 加载中的气泡样式(Codex 风格) ===== */\n.ai-loading-bubble {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 4px 0;\n}\n\n.ai-loading-text {\n color: #6b7280;\n font-size: 0.9em;\n font-style: italic;\n}\n\n.ai-loading-dots {\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\n.ai-loading-dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: #9ca3af;\n animation: ai-loading-pulse 1.4s infinite ease-in-out both;\n}\n\n.ai-loading-dot:nth-child(1) { animation-delay: -0.32s; }\n.ai-loading-dot:nth-child(2) { animation-delay: -0.16s; }\n.ai-loading-dot:nth-child(3) { animation-delay: 0s; }\n\n@keyframes ai-loading-pulse {\n 0%, 80%, 100% { transform: scale(0.5); opacity: 0.4; }\n 40% { transform: scale(1); opacity: 1; }\n}\n\n/* 加载中的气泡整行 */\n.chat-message.is-loading {\n opacity: 0.85;\n}\n\n/* ===== 工具调用状态气泡 ===== */\n.tool-status-bubble {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 10px;\n border-radius: 8px;\n background: #f8fafc;\n border: 1px solid #e2e8f0;\n font-size: 0.85em;\n color: #475569;\n margin: 4px 0;\n}\n\n.tool-status-icon {\n font-size: 1.1em;\n}\n\n.tool-status-icon.tool-start {\n animation: tool-spin 2s linear infinite;\n}\n\n@keyframes tool-spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n.tool-status-text {\n flex: 1;\n line-height: 1.4;\n}\n\n/* 工具信息气泡不显示头像 */\n.chat-message.tool-info::before {\n display: none;\n}\n.chat-message.tool-info {\n padding-left: 1rem;\n}\n\n/* ===== 输入区 AI 迷你指示器 ===== */\n.ai-thinking-mini {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n padding: 0;\n border-radius: 50%;\n background: #f3f4f6;\n cursor: default;\n flex-shrink: 0;\n}\n\n.ai-thinking-mini .ai-thinking-dots {\n gap: 3px;\n}\n\n.ai-thinking-mini .ai-thinking-dot {\n width: 5px;\n height: 5px;\n background-color: #6b7280;\n}\n\n.ai-thinking-dots {\n display: flex;\n gap: 6px;\n align-items: center;\n justify-content: center;\n}\n\n.ai-thinking-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: #6b7280;\n animation: ai-thinking-pulse 1.4s infinite ease-in-out both;\n}\n\n.ai-thinking-dot:nth-child(1) {\n animation-delay: -0.32s;\n}\n\n.ai-thinking-dot:nth-child(2) {\n animation-delay: -0.16s;\n}\n\n.ai-thinking-dot:nth-child(3) {\n animation-delay: 0s;\n}\n\n@keyframes ai-thinking-pulse {\n 0%, 80%, 100% {\n transform: scale(0.6);\n opacity: 0.5;\n }\n 40% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n/* 另一种动态图标样式 - 旋转加载 */\n.ai-thinking-spinner {\n width: 80px;\n height: 40px;\n padding: 0;\n border: 1px solid #d6d9de;\n border-radius: 12px;\n background: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: default;\n}\n\n.ai-thinking-spinner::after {\n content: '';\n width: 20px;\n height: 20px;\n border: 2px solid #e5e7eb;\n border-top: 2px solid #3b82f6;\n border-radius: 50%;\n animation: ai-thinking-spin 1s linear infinite;\n}\n\n@keyframes ai-thinking-spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n/* ===== 模型下拉选择器 (Header 中) ===== */\n.model-selector {\n display: inline-flex;\n align-items: center;\n}\n\n.model-selector-dropdown {\n padding: 4px 8px;\n font-size: 0.85em;\n border: 1px solid #d6d9de;\n border-radius: 6px;\n background: #fff;\n color: var(--textPrimary, #222);\n outline: none;\n cursor: pointer;\n max-width: 180px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.model-selector-dropdown:focus {\n border-color: var(--primary, #4f46e5);\n box-shadow: 0 0 0 2px var(--primary-light, rgba(79, 70, 229, 0.15));\n}\n\n/* ===== 批量选择模式样式 ===== */\n.chat-message.batch-mode {\n padding-left: 2.5rem;\n}\n\n/*\n * 气泡批量操作条:选中的都是聊天气泡(没勾会话项)时,浮在消息区顶部。\n * sticky 保证滚动聊天记录时它一直在视野里,不跟着划走。\n */\n.chat-message-batch-bar {\n position: sticky;\n top: 0;\n z-index: 6;\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n margin: 0 0 8px;\n background: #fff;\n border-bottom: 1px solid #e5e7eb;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);\n}\n\n.chat-message-batch-bar .batch-bar-count {\n font-size: 12px;\n font-weight: 500;\n color: #6b7280;\n margin-right: auto;\n}\n\n.chat-message-batch-bar button {\n padding: 3px 10px;\n border: 1px solid #e5e7eb;\n background: #fff;\n cursor: pointer;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 500;\n color: #6b7280;\n transition: all 0.15s ease;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);\n}\n\n.chat-message-batch-bar button:hover {\n border-color: var(--primary, #4f46e5);\n color: var(--primary, #4f46e5);\n}\n\n.chat-message-batch-bar button.danger:hover {\n border-color: #dc2626;\n color: #dc2626;\n}\n\n.chat-message-checkbox {\n position: absolute;\n left: 8px;\n top: 50%;\n transform: translateY(-50%);\n width: 18px;\n height: 18px;\n cursor: pointer;\n accent-color: var(--primary, #4f46e5);\n}\n\n.chat-session-item.batch-mode {\n padding-left: 2.5rem;\n}\n\n/* ===== 会话列表底部操作栏 ===== */\n.chat-session-items-wrap {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n gap: 6px;\n min-height: 0;\n}\n\n.chat-session-actions {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n padding: 8px 0 0;\n border-top: 1px solid #e5e7eb;\n flex-shrink: 0;\n}\n\n.chat-session-checkbox {\n position: absolute;\n left: 8px;\n top: 50%;\n transform: translateY(-50%);\n width: 16px;\n height: 16px;\n cursor: pointer;\n accent-color: var(--primary, #4f46e5);\n z-index: 1;\n}\n\n/* ===== 工具调用列表样式 ===== */\n.chat-message-call-list {\n margin-top: 8px;\n border: 1px solid #d6d9de;\n border-radius: 8px;\n overflow: hidden;\n background: rgba(255, 255, 255, 0.6);\n font-size: 0.85em;\n}\n\n.call-list-header {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 10px;\n cursor: pointer;\n user-select: none;\n color: #475569;\n background: rgba(0, 0, 0, 0.02);\n}\n\n.call-list-header:hover {\n background: rgba(0, 0, 0, 0.04);\n}\n\n.call-list-summary {\n font-weight: 500;\n}\n\n.call-list-fail {\n color: #dc2626;\n margin-left: 4px;\n}\n\n.call-list-body {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 4px 8px 8px;\n}\n\n.call-list-item {\n padding: 6px 8px;\n border-radius: 6px;\n border: 1px solid transparent;\n}\n\n.call-list-item.call-success {\n border-color: #bbf7d0;\n background: #f0fdf4;\n}\n\n.call-list-item.call-fail {\n border-color: #fecaca;\n background: #fef2f2;\n}\n\n.call-list-item-header {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.call-list-tool-name {\n flex: 1;\n font-weight: 500;\n color: #1f2937;\n}\n\n.call-list-duration {\n color: #6b7280;\n font-size: 0.85em;\n font-variant-numeric: tabular-nums;\n}\n\n.call-list-details {\n margin-top: 4px;\n padding: 2px 0;\n}\n\n.call-list-details summary {\n cursor: pointer;\n font-size: 0.9em;\n color: #6b7280;\n padding: 2px 4px;\n border-radius: 4px;\n}\n\n.call-list-details summary:hover {\n background: rgba(0, 0, 0, 0.04);\n}\n\n.call-list-pre {\n margin: 4px 0 0;\n padding: 8px;\n background: rgba(0, 0, 0, 0.04);\n border-radius: 4px;\n font-size: 0.85em;\n max-height: 200px;\n overflow: auto;\n white-space: pre-wrap;\n word-break: break-all;\n line-height: 1.4;\n}\n\n.call-list-error-text {\n color: #dc2626;\n}\n\n/* 暗色主题兼容 */\n.chat-message.user .chat-message-call-list {\n background: rgba(255, 255, 255, 0.15);\n border-color: rgba(255, 255, 255, 0.2);\n}\n\n.chat-message.user .call-list-header {\n color: rgba(255, 255, 255, 0.8);\n}\n\n.chat-message.user .call-list-item.call-success {\n background: rgba(34, 197, 94, 0.15);\n border-color: rgba(34, 197, 94, 0.3);\n}\n\n.chat-message.user .call-list-item.call-fail {\n background: rgba(239, 68, 68, 0.15);\n border-color: rgba(239, 68, 68, 0.3);\n}\n\n.chat-message.user .call-list-tool-name {\n color: rgba(255, 255, 255, 0.9);\n}\n\n.chat-message.user .call-list-duration {\n color: rgba(255, 255, 255, 0.6);\n}\n\n.chat-message.user .call-list-pre {\n background: rgba(255, 255, 255, 0.1);\n color: rgba(255, 255, 255, 0.9);\n}\n\n.chat-message.user .call-list-details summary {\n color: rgba(255, 255, 255, 0.7);\n}\n\n/* ===== 后台进程面板样式 ===== */\n/* PC 端:默认 display:none,通过顶部按钮切换,展开时显示在右侧 */\n/* 移动端:默认 display:none,展开时从右侧滑入,与会话列表互斥 */\n\n.chat-bg-process-panel {\n display: none;\n width: 280px;\n min-width: 220px;\n flex-direction: column;\n background: #fafafa;\n border-left: 1px solid #e5e7eb;\n height: 100%;\n box-sizing: border-box;\n}\n\n/* PC 端展开 */\n.chat-bg-process-panel.expanded {\n display: flex;\n}\n\n/* ===== 展开状态内容 ===== */\n.chat-bg-process-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n border-bottom: 1px solid #e5e7eb;\n flex-shrink: 0;\n}\n\n.chat-bg-process-title {\n font-weight: 600;\n font-size: 0.95em;\n color: #1f2937;\n}\n\n.chat-bg-process-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 12px;\n border-bottom: 1px solid #e5e7eb;\n flex-shrink: 0;\n}\n\n.chat-bg-process-count {\n font-size: 0.8em;\n color: #6b7280;\n}\n\n.chat-bg-process-list {\n flex: 1;\n overflow-y: auto;\n padding: 6px;\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-height: 0;\n}\n\n.chat-bg-process-empty {\n text-align: center;\n padding: 24px 0;\n color: #9ca3af;\n font-size: 0.9em;\n}\n\n.chat-bg-process-item {\n display: flex;\n align-items: center;\n padding: 8px 10px;\n border-radius: 8px;\n cursor: pointer;\n border: 1px solid transparent;\n transition: background 0.15s ease;\n}\n\n.chat-bg-process-item:hover,\n.chat-bg-process-item.active {\n background: #fff;\n border-color: #d6d9de;\n}\n\n.chat-bg-process-item.running {\n border-left: 3px solid #22c55e;\n}\n\n.chat-bg-process-item.finished {\n border-left: 3px solid #9ca3af;\n opacity: 0.7;\n}\n\n.chat-bg-process-item-main {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.chat-bg-process-pid {\n font-weight: 600;\n font-size: 0.85em;\n color: #1f2937;\n}\n\n.chat-bg-process-cmd {\n font-size: 0.8em;\n color: #4b5563;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.chat-bg-process-time {\n font-size: 0.75em;\n color: #9ca3af;\n}\n\n.chat-bg-process-status.running-dot {\n color: #22c55e;\n font-size: 0.7em;\n}\n\n.chat-bg-process-exit-code {\n font-size: 0.75em;\n color: #9ca3af;\n font-family: monospace;\n}\n\n.chat-bg-process-item-actions {\n display: flex;\n gap: 2px;\n flex-shrink: 0;\n}\n\n/* 输出查看区 */\n.chat-bg-process-output {\n border-top: 1px solid #e5e7eb;\n display: flex;\n flex-direction: column;\n max-height: 40%;\n flex-shrink: 0;\n}\n\n.chat-bg-process-output-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n font-size: 0.85em;\n font-weight: 600;\n color: #1f2937;\n border-bottom: 1px solid #e5e7eb;\n}\n\n.chat-bg-process-output-content {\n flex: 1;\n overflow: auto;\n padding: 8px;\n}\n\n.chat-bg-process-output-pre {\n margin: 0;\n padding: 8px;\n background: #1e1e1e;\n color: #d4d4d4;\n border-radius: 6px;\n font-size: 0.8em;\n font-family: 'Monaco', 'Menlo', 'Consolas', monospace;\n white-space: pre-wrap;\n word-break: break-all;\n max-height: 300px;\n overflow-y: auto;\n line-height: 1.4;\n}\n\n/* ===== 移动端适配 ===== */\n@media (max-width: 736px) {\n .chat-bg-process-panel {\n position: fixed;\n top: 0;\n right: 0;\n z-index: 1002;\n width: 17em;\n min-width: 17em;\n height: 100%;\n padding-top: var(--top-length);\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);\n }\n}\n\n/* RichTextarea 基础重置 */\n.rich-textarea {\n outline: none;\n word-break: break-word;\n white-space: pre-wrap;\n}\n/* placeholder 用伪元素实现 */\n.rich-textarea[data-placeholder]:empty::before {\n content: attr(data-placeholder);\n color: #9ca3af;\n pointer-events: none;\n}\n",""]);const a=s;n.d(t,["A",0,a])},71863(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,"\n\n/* common.css */\n.site_edit {\n /*position: absolute; */\n /*z-index: 1000;*/\n\n /* 改为以下设置 */\n display: block;\n width: 100%;\n margin-top: 5px;\n padding: 10px;\n background: #f9f9f9; /* 加个浅色背景让编辑区更醒目 */\n /*border: 1px solid #c1c9cc;*/\n border-radius: 4px;\n}\n\n/* http 请求*/\n\n.http_url {\n display: flex; /* 启用 Flexbox 布局 */\n /*justify-content: space-between; !* 项目在主轴上均匀分布 *!*/\n padding-bottom: 1rem;\n align-items: center; /* 垂直居中 */\n\n}\n\n.http_ace {\n height: 15rem;\n}\n\n/* 旋转 */\n\n/*关键帧设置*/\n@keyframes rotate {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.rotating-div {\n color: green;\n display: flex;\n justify-content: center;\n align-items: center;\n\n /*animation: rotate 3s infinite linear; !* 无线循环 *!*/\n animation-name: rotate; /* 指定动画名称 */\n animation-duration: 3s; /* 动画持续时间为 3 秒 */\n animation-iteration-count: infinite; /* 动画无限循环 */\n animation-timing-function: linear; /* 动画的时间函数为线性 */\n /*animation: none; !* 取消旋转 *!*/\n}\n\n.rotating-div > span {\n font-size: 2rem;\n}\n\n\n.not-select-div {\n user-select: none;\n}\n\n.scroll-div-y {\n overflow-y: auto;\n overflow-x: hidden;\n height: 100%;\n padding-bottom: 5rem;\n}\n\n\n.menu-select-wrapper{\n position: relative;\n display: inline-block;\n}\n\n.menu-select-popup {\n /* position/top/left 由 JS 控制,不要写在这里 */\n background: #fff;\n /*border: 1px solid #e5e7eb;*/\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n min-width: 100px;\n overflow: hidden;\n}\n\n.menu-select-item {\n padding: 9px 14px;\n cursor: pointer;\n font-size: 14px;\n /*color: #111;*/\n}\n\n.menu-select-item:hover {\n background: #f3f4f6;\n}\n\n.material-icons.icon {\n color: var(--action);\n}\n/* ============================================\n 多实例列表项(InstanceItem 组件)\n 一个列表里可添加多个实例,每个实例有标题栏 + 字段/按钮 + 子内容\n ============================================ */\n\n/* 单个实例容器 */\n.instance-item {\n margin-bottom: 16px;\n}\n\n/* 实例标题栏:标题 + 各字段控件 + 操作按钮平铺 */\n.instance-item__toolbar {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 8px;\n flex-wrap: wrap;\n}\n\n/* 实例标题加粗 */\n.instance-item__label {\n font-weight: bold;\n min-width: fit-content;\n}\n",""]);const a=s;n.d(t,["A",0,a])},42393(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o),a=n(25606),l=s()(r());l.i(a.A),l.push([e.id,'.awesomplete {\n /*position: absolute;*/\n /*display: none;*/\n min-width: 100%;\n}\n\n/* 下拉列表限制高度并允许滚动:列表可能很长(如 DDNS 的几十个 IP 来源),\n 不做限制会撑满整个屏幕 */\n.awesomplete > ul {\n max-height: 16rem;\n overflow-y: auto;\n z-index: 100;\n}\n\n.input {\n /* border-radius: .1em; <- 旧的,太硬了 */\n border-radius: 6px; /* 现代 UI 标配:更圆润的倒角 */\n\n padding: .6em 1.2em; /* 稍微加大一点内边距,让呼吸感更强 */\n /*min-height: 2.6rem;*/\n line-height: 1.5rem;\n background: white;\n\n /* border: 1px solid rgba(0, 0, 0, 0.1); <- 旧的 */\n border: 1px solid var( --borderPrimary); /* 使用现代的浅灰色边框,或者rgba(0,0,0,0.08) */\n\n /* 加入微弱的现代环境阴影(非常重要!) */\n /*box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);*/\n\n transition: .2s ease all;\n color: #333;\n margin: 0;\n\n /* 🌟 核心:针对 select 标签清除掉浏览器自带的丑陋外观 */\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n\n.input[type="checkbox"] {\n height: 1.5rem;\n cursor: pointer;\n}\n\n.input:hover {\n border-color: rgba(0, 0, 0, 0.2);\n /*cursor: pointer; !* 🌟 加上这一行,鼠标放上去就变成小手了 *!*/\n}\n\n.input:focus {\n /*border-color: #3b82f6; !* 现代偏科技感的蓝色(或者你项目的主题色) *!*/\n outline: none;\n /* 配合一个半透明的外发光高光(Focus Ring) */\n /*box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15), 0 1px 2px 0 rgba(0, 0, 0, 0.05);*/\n}\n\n.input--block {\n margin-bottom: .3em;\n /*margin-left: .3rem;*/\n display: block;\n width: 100%;\n}\n\n.input--no_border {\n border: none;\n outline: none;\n padding: 8px;\n /*borderRadius: 4px;*/\n}\n\n.input--textarea {\n line-height: 1.15;\n font-family: monospace;\n min-height: 10em;\n resize: vertical;\n}\n\n.input_left {\n margin-bottom: .5em;\n display: inline-flex; /* 改为 inline-flex 方便对齐 */\n align-items: center; /* 垂直居中 */\n background-color: #f1f5f9; /* 更清爽的现代灰(Slate) */\n margin-left: .5rem;\n border-radius: 6px; /* 与 input 保持一致的圆角 */\n color: #475569; /* 字色变柔和 */\n font-size: 0.9em;\n}\n\n.input--red {\n background: #fcd0cd;\n}\n\n.input--green {\n background: #c9f2da;\n}\n\n.input_radio_row {\n display:block;\n margin-bottom: 0.7em;\n}\n.input_radio {\n width: 2em;\n display:inline;\n cursor: pointer;\n}\n\n.input_radio_row i:hover{\n cursor: pointer;\n}\n\n/* 密码框内查看密码按钮 */\n.input-password-toggle {\n transition: color 0.15s ease;\n border-radius: 4px;\n padding: 2px;\n color: var(--textSecondary)\n}\n.input-password-toggle:hover {\n color: var(--textPrimary) !important;\n background: var(--hover, rgba(0, 0, 0, 0.06));\n}\n\n.black-tip {\n border-radius: .1em;\n padding: .2em ;\n /*background: white;*/\n /*border: 1px solid rgba(0, 0, 0, 0.1);*/\n transition: .2s ease all;\n color: #333;\n margin-top: .3rem;\n display: inline-block;\n}\n.black-tip:hover {\n background: var(--surfaceSecondary);\n}\n\n.checkbox_container {\n /*display: inline-flex;*/\n /*display: flex;*/\n /*flex-wrap: wrap;*/\n /*overflow: hidden;*/\n\n}\n\n.checkbox_container > div {\n white-space: nowrap; /* 禁止文字换行 */\n margin: 3px 3px 3px 4px;\n}\n\n/* Select.module.css */\n\n.select_wrapper {\n display: flex;\n align-items: center;\n width: 100%;\n}\n\n/* 下拉框左侧的文字标签:只显示文字,不套用输入框样式 */\n.select_tip {\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n margin-right: .5rem;\n color: inherit;\n font-size: 0.9em;\n white-space: nowrap;\n}\n\n.select_container {\n position: relative;\n flex: 1;\n}\n\n.select_trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n user-select: none;\n}\n\n.select_trigger--disabled {\n cursor: not-allowed;\n}\n\n/* 精简外观(bare):表头筛选把「列名」本身当触发器,去掉输入框式的内边距与背景,\n 避免在表头里出现一个灰色输入框方块。\n 用双类选择器提高特异度,覆盖主题文件里 `.input { background: var(--surfaceSecondary) }` 等规则。\n color 继承外层(如表格 th 的表头色),保证与其他表头文字颜色一致、不显得更重。\n min-width: 0 让触发框及其内部容器能收缩到列宽以内(flex 子项默认 min-width:auto 会撑破列宽) */\n.select_trigger.select_trigger--bare,\n.select_trigger.select_trigger--bare .select_trigger__label,\n.select_wrapper--bare > .select_container {\n min-width: 0;\n}\n\n.select_trigger.select_trigger--bare {\n padding: 0;\n background: transparent;\n /* 去掉边框:主题文件里只有 `td .input` 会去掉输入框外观,\n 而表头是 th 匹配不到该规则,需要在这里显式去掉,否则表头里会出现输入框边框 */\n border: 0;\n color: inherit;\n}\n\n/* 表头文字(如「在线状态 (在线)」)可能比列宽长(列宽随内容浮动,不能为它单独加宽),\n 此时折行显示保证完整可见,而不是被省略号截断;\n 行高收紧,尽量减少对表头高度的抬升 */\n.select_trigger--bare .select_trigger__label {\n white-space: normal;\n word-break: break-word;\n text-overflow: clip;\n overflow: visible;\n line-height: 1.1;\n}\n\n/* 表头里的触发框在 hover / 聚焦时也不要出现输入框式的边框与光晕\n (主题文件的 `.input:hover, .input:focus` 会给边框和高亮外圈) */\n.select_trigger.select_trigger--bare:hover,\n.select_trigger.select_trigger--bare:focus {\n border: 0;\n box-shadow: none;\n}\n\n.select_trigger__label {\n color: inherit;\n /* 触发框(选中态)宽度由外层容器决定,与下拉列表宽度解耦;\n 文字过长时省略,避免把触发框撑宽 */\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.select_trigger__icon {\n font-size: 18px;\n color: #666;\n transition: transform 0.2s;\n /*height: 1.rem;*/\n}\n\n.select_trigger__icon--open {\n transform: rotate(180deg);\n}\n\n.select_trigger__icon--disabled {\n color: #9ca3af;\n}\n\n/* input.css */\n.select_dropdown {\n /* 去掉 position/top/left/right,由 JS 动态注入 */\n z-index: 9999;\n background: #fff;\n border: 1px solid #e5e7eb;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n margin-top: 0; /* 间距已在 JS 里加了 +4px */\n /* 选项超出可用高度时可纵向滚动(maxHeight 由 JS 依据视口空间动态注入),\n 避免屏幕较小时下拉底部选项溢出视口看不到 */\n overflow-y: auto;\n overflow-x: hidden;\n overscroll-behavior: contain;\n /* 兜底:极端情况下也限制不超过视口高度 */\n max-height: 80vh;\n /* 宽度随「最宽选项」自适应,与触发框(选中态)宽度解耦;\n minWidth / maxWidth 由 JS 依据触发框宽度和视口动态注入 */\n width: max-content;\n}\n\n.select_option {\n padding: 10px 14px;\n color: var( --textSecondary);\n background: transparent;\n cursor: pointer;\n /* 单行不换行,保证 max-content 能按最长选项撑开宽度 */\n white-space: nowrap;\n /* 当整列表受 maxWidth 限制时,超长选项以省略号收尾 */\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* 分组标题:用于 Select 按 group 分组展示(同一供应商的模型聚合),效果类似左侧菜单分组 */\n.select_group {\n /* 顶部一条分割线,区分不同分组 */\n border-top: 1px solid var(--surfacePrimary);\n margin-top: 4px;\n padding: 6px 14px 2px 14px;\n font-size: 0.75rem;\n font-weight: 600;\n color: var(--textSecondary, #6b7280);\n background: transparent;\n text-transform: none;\n /* 单行不换行,避免分组名换行 */\n white-space: nowrap;\n}\n\n/* 第一个分组不需要顶部空格与分割线(避免列表顶部多出一条线) */\n.select_group:first-child {\n border-top: none;\n margin-top: 0;\n}\n\n.select_group__title {\n opacity: 0.85;\n}\n\n.select_option--selected {\n background: #f3f4f6;\n}\n\n.select_option:hover {\n background: var(--hover);\n}\n\n/* mobile.css */\n.mobile-context-btn {\n display: none;\n}\n\n@media (max-width: 736px) {\n .mobile-context-btn {\n display: inline-block;\n }\n}\n',""]);const c=l;n.d(t,["A",0,c])},69790(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,".db-query-page {\n overflow-y: auto;\n height: 100%;\n}\n\n.db-query-page__content {\n padding: 16px;\n display: grid;\n gap: 16px;\n align-items: start;\n}\n\n.db-query-page__actions {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.db-query-page__editor {\n height: 240px;\n min-height: 240px;\n}\n\n.db-query-page__error {\n margin-top: 12px;\n color: #c0392b;\n}\n\n.db-query-page__result-json {\n margin: 0;\n padding: 12px;\n background: rgba(0, 0, 0, 0.04);\n border-radius: 8px;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.db-query-page__hint {\n opacity: 0.7;\n}\n\n/* ===== SQL 查询预设 ===== */\n.db-query-page__preset-bar {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n/* 查询结果标题区的元信息(行数与耗时) */\n.db-query-page__result-meta {\n display: inline-flex;\n align-items: center;\n gap: 10px;\n}\n\n.db-query-page__elapsed {\n opacity: 0.75;\n font-size: 0.9em;\n color: #6b7280;\n}\n\n/* 创建新预设时的备注输入弹窗 */\n.db-query-preset-input {\n display: flex;\n flex-direction: column;\n gap: 12px;\n min-width: 20rem;\n}\n\n.db-query-preset-input__actions {\n display: flex;\n justify-content: flex-end;\n}\n\n/* SQL 设置独立页面的卡片工具栏 */\n.db-query-setting__toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n",""]);const a=s;n.d(t,["A",0,a])},22156(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,"#excalidraw-container {\n display: flex;\n flex-direction: column;\n background-color: #fafafa;\n position: fixed;\n /*padding-top: 4em;*/\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n z-index: 1000;\n overflow: auto;\n}\n\n#excalidraw-container .excalidraw-context {\n width:100%;\n height: 100%;\n overflow: auto;\n}\n",""]);const a=s;n.d(t,["A",0,a])},6267(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,"/* 全局递归搜索弹窗(FileDeepSearch) */\n\n.file-deep-search {\n display: flex;\n flex-direction: column;\n gap: 0.6rem;\n /* 弹窗主体固定高度,结果列表在内部滚动,避免内容多少导致弹窗忽大忽小 */\n width: 46em;\n max-width: 85vw;\n}\n\n.file-deep-search__bar {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.file-deep-search__bar .filecat-search-box {\n flex: 1;\n padding-left: 0;\n max-width: none;\n height: 2.4em;\n}\n\n.file-deep-search__hint {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n font-size: 0.85em;\n color: var(--textSecondary, #757575);\n}\n\n/* 命中数量,跟在「范围」右侧 */\n.file-deep-search__count {\n flex-shrink: 0;\n}\n\n.file-deep-search__body {\n height: 24em;\n /* 结果多时纵向滚动;表格宽度限制在弹窗内,不出现横向滚动条 */\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n/* 表格铺满弹窗宽度,列宽由内容按比例分配。\n 项目全局的 .dashboard table td{max-width:2rem} 是给文件列表页用的均分规则,\n 这里每列内容(文件名、完整路径)长度差异很大,套用均分会被压到装不下而横向溢出 */\n.file-deep-search__body table {\n width: 100%;\n table-layout: fixed;\n}\n\n/* 名称列给固定一档,路径列吃掉剩余宽度并在过长时缩略(TextTip 内部自带省略号 + hover 看全) */\n.file-deep-search__body table th:first-child,\n.file-deep-search__body table td:first-child {\n width: 34%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.file-deep-search__body table td:nth-child(2) {\n overflow: hidden;\n}\n\n/* 操作列只放一个图标按钮,收紧到刚好容下 */\n.file-deep-search__body table th:last-child,\n.file-deep-search__body table td:last-child {\n width: 2.6rem;\n text-align: center;\n}\n\n/* 结果列表为空(未搜索 / 搜索中还没结果 / 无匹配)时的占位提示。\n 有结果时不显示,所以不用 height:100%,避免把已渲染的表格挤下去 */\n.file-deep-search__empty {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n min-height: 12em;\n color: var(--textSecondary, #757575);\n font-size: 0.9em;\n}\n\n/* 结果超出渲染上限时的提示条,跟在列表末尾 */\n.file-deep-search__more {\n padding: 0.6em 0;\n text-align: center;\n font-size: 0.85em;\n color: var(--textSecondary, #757575);\n}\n\n.file-deep-search__dir {\n color: var(--blue, #2196f3);\n}\n",""]);const a=s;n.d(t,["A",0,a])},31816(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,"/* 防火墙页面专用样式 */\n\n",""]);const a=s;n.d(t,["A",0,a])},36912(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o),a=n(14913),l=n(4417),c=n.n(l),u=new URL(n(17769),n.b),d=new URL(n(79735),n.b),h=new URL(n(96718),n.b),p=new URL(n(14640),n.b),f=new URL(n(52781),n.b),g=new URL(n(32688),n.b),m=new URL(n(71594),n.b),y=new URL(n(26381),n.b),w=new URL(n(81315),n.b),b=new URL(n(79490),n.b),v=new URL(n(92284),n.b),M=new URL(n(22705),n.b),x=new URL(n(58628),n.b),L=new URL(n(36022),n.b),_=new URL(n(74617),n.b),N=new URL(n(52999),n.b),S=new URL(n(30814),n.b),C=new URL(n(92352),n.b),T=new URL(n(75613),n.b),k=new URL(n(83904),n.b),A=new URL(n(66426),n.b),D=s()(r());D.i(a.A);var j=c()(u),z=c()(d),E=c()(h),I=c()(p),O=c()(f),$=c()(g),R=c()(m),P=c()(y),U=c()(w),F=c()(b),Y=c()(v),Q=c()(M),W=c()(x),B=c()(L),H=c()(_),V=c()(N),G=c()(S),K=c()(C),q=c()(T),Z=c()(k),X=c()(A);D.push([e.id,`@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 400;\n src:\n local("Roboto"),\n local("Roboto-Regular"),\n url(${j}) format("woff2");\n unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 400;\n src:\n local("Roboto"),\n local("Roboto-Regular"),\n url(${z}) format("woff2");\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 400;\n src:\n local("Roboto"),\n local("Roboto-Regular"),\n url(${E}) format("woff2");\n unicode-range: U+1F00-1FFF;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 400;\n src:\n local("Roboto"),\n local("Roboto-Regular"),\n url(${I}) format("woff2");\n unicode-range: U+0370-03FF;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 400;\n src:\n local("Roboto"),\n local("Roboto-Regular"),\n url(${O}) format("woff2");\n unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 400;\n src:\n local("Roboto"),\n local("Roboto-Regular"),\n url(${$}) format("woff2");\n unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F,\n U+A720-A7FF;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 400;\n src:\n local("Roboto"),\n local("Roboto-Regular"),\n url(${R}) format("woff2");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC,\n U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 500;\n src:\n local("Roboto Medium"),\n local("Roboto-Medium"),\n url(${P}) format("woff2");\n unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 500;\n src:\n local("Roboto Medium"),\n local("Roboto-Medium"),\n url(${U}) format("woff2");\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 500;\n src:\n local("Roboto Medium"),\n local("Roboto-Medium"),\n url(${F}) format("woff2");\n unicode-range: U+1F00-1FFF;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 500;\n src:\n local("Roboto Medium"),\n local("Roboto-Medium"),\n url(${Y}) format("woff2");\n unicode-range: U+0370-03FF;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 500;\n src:\n local("Roboto Medium"),\n local("Roboto-Medium"),\n url(${Q}) format("woff2");\n unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 500;\n src:\n local("Roboto Medium"),\n local("Roboto-Medium"),\n url(${W}) format("woff2");\n unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F,\n U+A720-A7FF;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 500;\n src:\n local("Roboto Medium"),\n local("Roboto-Medium"),\n url(${B}) format("woff2");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC,\n U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 700;\n src:\n local("Roboto Bold"),\n local("Roboto-Bold"),\n url(${H}) format("woff2");\n unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 700;\n src:\n local("Roboto Bold"),\n local("Roboto-Bold"),\n url(${V}) format("woff2");\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 700;\n src:\n local("Roboto Bold"),\n local("Roboto-Bold"),\n url(${G}) format("woff2");\n unicode-range: U+1F00-1FFF;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 700;\n src:\n local("Roboto Bold"),\n local("Roboto-Bold"),\n url(${K}) format("woff2");\n unicode-range: U+0370-03FF;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 700;\n src:\n local("Roboto Bold"),\n local("Roboto-Bold"),\n url(${q}) format("woff2");\n unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 700;\n src:\n local("Roboto Bold"),\n local("Roboto-Bold"),\n url(${Z}) format("woff2");\n unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F,\n U+A720-A7FF;\n}\n\n@font-face {\n font-family: "Roboto";\n font-style: normal;\n font-weight: 700;\n src:\n local("Roboto Bold"),\n local("Roboto-Bold"),\n url(${X}) format("woff2");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC,\n U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;\n}\n\n.material-icons {\n font-size: 1.5rem;\n}\n`,""]);const J=D;n.d(t,["A",0,J])},98569(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,"\n#image-editor-container {\n display: flex;\n flex-direction: column;\n background-color: #fafafa;\n position: fixed;\n /*padding-top: 4em;*/\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n z-index: 1000;\n overflow: auto;\n}\n\n#image-editor-container .image-editor-context {\n /*padding-top: 1em;*/\n /*padding-left: 20%;*/\n /*padding-right: 20%;*/\n /*padding-bottom: 4em;*/\n width:100%;\n height: 100%;\n overflow: auto;\n}\n\n",""]);const a=s;n.d(t,["A",0,a])},61088(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o),a=n(25606),l=s()(r());l.i(a.A),l.push([e.id,'/*居中\n <div className={"center "}>\n <div>\n 居中\n </div>\n </div>\n*/\n.center {\n background: #fff;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n.center img {\n width: 4em;\n height: 4em;\n margin: 0 auto;\n display: block;\n}\n\n.center h1,.self_win_center h1 {\n text-align: center;\n font-size: 2.5em;\n margin: .4em 0 .67em;\n}\n\n.center >* {\n /*position: relative;*/\n /*top: 50%;*/\n /*left: 50%;*/\n /*transform: translate(-50%, -50%);*/\n /*max-width: 16em;*/\n /*width: 90%;*/\n}\n.self_win_center {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 90%;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n.self_win_center_content {\n max-width: 16em;\n}\n\n.center.recaptcha > * {\n min-width: 304px;\n}\n\n.center #recaptcha {\n margin: .5em 0 0;\n}\n\n.center .wrong {\n background: var(--red);\n color: #fff;\n padding: .5em;\n text-align: center;\n animation: .2s opac forwards;\n}\n\n@keyframes opac {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n.center p {\n cursor: pointer;\n text-align: right;\n color: var(--blue);\n text-transform: lowercase;\n font-weight: 500;\n font-size: 0.9rem;\n margin: .5rem 0;\n}\n\n.div-row {\n display: flex;\n /*align-items: flex-start; !* 或者 align-items: flex-end; *!*/\n\n /*display: grid;*/\n /*grid-template-columns: repeat(auto-fit, minmax(0, 33%)); 自动调整元素大小布局*/\n /*grid-template-columns: repeat(auto-fit, minmax(0, 1fr %)); 1fr 子元素的最大宽度含义,fr是等分空间值,表示几个可用空间*/\n margin: 0 -.5em;\n flex-wrap: wrap;\n align-items: center; /* 垂直居中 */\n\n}\n',""]);const c=l;n.d(t,["A",0,c])},85223(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,".dashboard {\n margin: 1em 0;\n height: 100%;\n /*overflow-y: auto;*/\n /*overflow-x: hidden;*/\n}\n\n.prompt-switch-page,\n.mcp-tools-prompt {\n min-width: min(80vw, 1100px);\n max-width: min(80vw, 1100px);\n max-height: 70vh;\n overflow: auto;\n}\n\n.prompt-switch-page__header,\n.mcp-tools-prompt__header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: .75rem;\n flex-wrap: wrap;\n}\n\n.prompt-switch-page__title,\n.mcp-tools-prompt__title {\n font-size: 1.1rem;\n font-weight: 600;\n}\n\n.prompt-switch-page__meta,\n.mcp-tools-prompt__meta {\n opacity: .8;\n font-size: .9rem;\n}\n\n.prompt-switch-page__actions,\n.mcp-tools-prompt__actions {\n display: flex;\n gap: .5rem;\n flex-wrap: wrap;\n}\n\n.prompt-switch-page__body {\n display: grid;\n grid-template-columns: 280px minmax(0, 1fr);\n gap: 1rem;\n margin-top: 1rem;\n}\n\n.prompt-switch-page__nav {\n display: flex;\n flex-direction: column;\n gap: .5rem;\n}\n\n.prompt-switch-page__nav-item {\n text-align: left;\n padding: .6rem .75rem;\n border-radius: .65rem;\n}\n\n.prompt-switch-page__nav-item.is-active {\n border: 1px solid var(--blue);\n color: var(--blue);\n}\n\n.prompt-switch-page__nav-item-title {\n font-weight: 600;\n}\n\n.prompt-switch-page__nav-item-subtitle {\n opacity: .75;\n font-size: .85rem;\n margin-top: .15rem;\n}\n\n.prompt-switch-page__content {\n min-width: 0;\n}\n\n.mcp-tools-prompt__tool-list {\n display: flex;\n flex-wrap: wrap;\n gap: .4rem;\n}\n\n.mcp-tools-prompt__tool-item {\n padding: .35rem .7rem;\n border-radius: .5rem;\n}\n\n.mcp-tools-prompt__tool-item.is-active {\n border: 1px solid var(--blue);\n color: var(--blue);\n}\n\n.prompt-switch-page__detail,\n.mcp-tools-prompt__detail {\n margin-top: 1rem;\n padding: 1rem;\n border: 1px solid rgba(128, 128, 128, .25);\n border-radius: .75rem;\n background: var(--surfaceSecondary);\n}\n\n.prompt-switch-page__detail-title,\n.mcp-tools-prompt__detail-title {\n font-weight: 600;\n margin-bottom: .5rem;\n}\n\n.prompt-switch-page__detail-desc,\n.mcp-tools-prompt__detail-desc {\n margin-bottom: .5rem;\n opacity: .85;\n}\n\n.prompt-switch-page__detail-row,\n.mcp-tools-prompt__detail-row {\n margin-bottom: .5rem;\n}\n\n.prompt-switch-page__schema,\n.mcp-tools-prompt__schema {\n margin-top: .5rem;\n padding: .75rem;\n overflow: auto;\n white-space: pre-wrap;\n word-break: break-word;\n background: rgba(0, 0, 0, .06);\n border-radius: .5rem;\n}\n\n.prompt-switch-page__empty,\n.mcp-tools-prompt__empty {\n opacity: .7;\n}\n\n@media (max-width: 900px) {\n .prompt-switch-page__body {\n grid-template-columns: 1fr;\n }\n}\n\n.dashboard .row {\n display: flex;\n align-items: flex-start; /* 或者 align-items: flex-end; */\n\n /*display: grid;*/\n /*grid-template-columns: repeat(auto-fit, minmax(0, 33%)); 自动调整元素大小布局*/\n /*grid-template-columns: repeat(auto-fit, minmax(0, 1fr %)); 1fr 子元素的最大宽度含义,fr是等分空间值,表示几个可用空间*/\n margin: 0 -.5em;\n flex-wrap: wrap;\n /*align-items: center; !* 垂直居中 *!*/\n\n}\n\n\n/* 在媒体查询中设置阈值 */\n@media (max-width: 1000px) {\n .dashboard .row {\n display: flex;\n margin: 0 -.5em;\n flex-wrap: wrap;\n }\n}\n\nbody.rtl .dashboard .row {\n margin-right: 16em;\n}\n\n.dashboard .row .column {\n /*display: flex;*/\n padding: 0 .5em;\n /*width: calc(50%);*/\n /*overflow: hidden;*/\n height: 100%;\n}\n\n.dashboard .row .column .card {\n flex-grow: 1;\n}\n\n@media(max-width: 1200px) {\n .dashboard .row .column {\n width: 100% !important;\n }\n}\n\na {\n color: inherit\n}\n\n.dashboard label , .dashboard_label{\n margin-bottom: .2em;\n display: block;\n font-size: .8em;\n font-weight: 500;\n color: rgba(0, 0, 0, 0.57);\n}\n\nli code,\np code {\n background: rgba(0, 0, 0, 0.05);\n padding: .1em;\n border-radius: .2em;\n}\n\n.small {\n font-size: .8em;\n line-height: 1.5;\n}\n\n\ntable {\n border-collapse: collapse;\n width: 100%;\n}\n\ntable tr {\n border-bottom: 1px solid #ccc;\n}\n\ntable tr:last-child {\n border: 0;\n}\n\ntable th {\n font-weight: 500;\n color: #757575;\n text-align: left;\n}\n\n.dashboard table th,\n.dashboard table td {\n /*width: 1rem;*/\n padding: .5em 0;\n max-width: 2rem;\n}\n\ntable td.small {\n width: 1em;\n}\n\ntable tr>*:first-child {\n padding-left: 1em;\n}\n\nbody.rtl table tr>* {\n padding-left: unset;\n padding-right: 1em;\n text-align: right;\n direction: ltr;\n}\n\ntable tr>*:last-child {\n padding-right: .5rem;\n}\n\n/* 表格行上下拖动:仅当 Table 传入 onRowDrag 时生效 */\ntable tr[draggable=\"true\"] {\n cursor: grab;\n}\n\n/* 过滤列(表头里放了下拉触发框的列):\n 兜底裁掉超出列宽的内容,避免窄屏下列名/触发框溢出、盖住右侧相邻列;\n 宽屏列宽足够时内容完整显示,不受影响 */\n.dashboard table th.table-filter-col {\n overflow: hidden;\n}\n\n/* 正在悬停的目标行:整行背景变暗,提示插入位置(--hover 在明暗主题下都有定义) */\ntable tr.row-drop-target > td {\n background-color: var(--hover);\n}\n\n/* 拖动源行淡出,给用户明确的视觉反馈 */\ntable tr.row-dragging {\n opacity: .5;\n}\n\n.card-text {\n position: relative;\n}\n.card-text .card-text-context {\n white-space: nowrap; /* 让文本不换行 */\n overflow: hidden; /* 隐藏溢出的文本 */\n text-overflow: ellipsis; /* 在文本溢出时显示省略号 */\n /*font-size: .8rem; !* 或者使用 em、rem 等单位 *!*/\n}\n.card-text .card-text-tip {\n display: none;\n}\n\n.card-text-context:hover + .card-text-tip{\n display: block;\n position: absolute;\n top: -1rem;\n left: 0;\n background-color: #eaf2f9;\n width: auto;\n white-space: nowrap; /* 不换行 */\n border-radius: 0.1rem;\n z-index: 1001;\n}\n.card-text-tip:hover {\n display: block;\n position: absolute;\n top: -1rem;\n left: 0;\n background-color: #eaf2f9;\n cursor: pointer;\n width: auto;\n white-space: nowrap; /* 不换行 */\n border-radius: 0.1rem;\n z-index: 1001;\n}\n\n.card {\n position: relative;\n margin: 0 0 1rem 0;\n background-color: #fff;\n border-radius: 2px;\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);\n /*overflow: auto;*/\n max-height: 100%;\n}\n\n.card.floating {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 1003;\n /*max-width: 25em;*/\n /*width: 90%;*/\n /*max-width: 50%;*/\n min-width: 25em;\n /*max-height: 95%;*/\n animation: .1s show forwards;\n}\n\n.card>*>*:first-child {\n margin-top: 0;\n}\n\n.card>*>*:last-child {\n margin-bottom: 0;\n}\n\n.card .card-title {\n padding: 1.5em 1em 1em;\n display: flex;\n}\n\n.card .card-title>*:first-child {\n margin-right: auto;\n}\n\nbody.rtl .card .card-title>*:first-child {\n margin-right: 0;\n text-align: right;\n}\n\n.card>div {\n padding: 1em 1em;\n}\n\n.card>div:first-child {\n padding-top: 1.5em;\n}\n\n.card>div:last-child {\n padding-bottom: 1.5em;\n}\n\n.card .card-title * {\n margin: 0;\n}\n\n.card .card-action {\n text-align: right;\n /*margin-bottom: 1.5rem;*/\n}\n\nbody.rtl .card .card-action {\n text-align: left;\n}\n\n.card .card-content.full {\n padding-bottom: 0;\n /*overflow: auto;*/\n}\n\n.card h2 {\n font-weight: 500;\n}\n\n.card h3 {\n color: rgba(0, 0, 0, 0.53);\n font-size: 1em;\n font-weight: 500;\n margin: 2em 0 1em;\n}\n\n.card-content table {\n margin: 0 -1em;\n width: calc(100% + 2em);\n}\n\n.card code {\n word-wrap: break-word;\n}\n\n.card#download {\n max-width: 15em;\n}\n\n.card#share ul {\n list-style: none;\n padding: 0;\n margin: 0;\n}\n\n.card#share ul li {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.card#share ul li a {\n color: var(--blue);\n cursor: pointer;\n margin-right: auto;\n}\n\n.card#share ul li .action i {\n font-size: 1em;\n}\n\n.card#share ul li input,\n.card#share ul li select {\n padding: .2em;\n margin-right: .5em;\n border: 1px solid #dadada;\n}\n\n.card#share .action.copy-clipboard::after {\n content: 'Copied!';\n position: absolute;\n left: -25%;\n width: 150%;\n font-size: .6em;\n text-align: center;\n background: #44a6f5;\n color: #fff;\n padding: .5em .2em;\n border-radius: .4em;\n top: -2em;\n transition: .1s ease opacity;\n opacity: 0;\n}\n\n.card#share .action.copy-clipboard.active::after {\n opacity: 1;\n}\n\n.card#share .input-group {\n display: flex;\n}\n\n.card#share .input-group * {\n border: none;\n}\n\n.card#share .input-group input {\n flex: 1;\n}\n\n.overlay {\n background-color: rgba(0, 0, 0, 0.5);\n position: fixed;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n z-index: 1001;\n visibility: hidden;\n opacity: 0;\n animation: .1s show forwards;\n}\n\n.layout-nav-overlay {\n display: none;\n}\n\n.overlay_trans {\n /*background-color: rgba(0, 0, 0, 0.5);*/\n position: fixed;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n z-index: 1001;\n visibility: hidden;\n opacity: 0;\n animation: .1s show forwards;\n}\n\n.overlay_trans_container {\n position: relative; /* 确保子元素的定位是相对于容器 */\n width: 100%;\n}\n\n.overlay_trans_content {\n position: relative; /* 保持内容的位置相对于父元素 */\n z-index: 1000; /* 确保内容在背景之上 */\n}\n.overlay_trans_overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n /*background-color: rgba(0, 0, 0, 0.5); !* 半透明背景 *!*/\n z-index: 999; /* 确保背景在内容之下 */\n}\n\n/* * * * * * * * * * * * * * * *\n * PROMPT - MOVE *\n * * * * * * * * * * * * * * * */\n\n.file-list {\n max-height: 50vh;\n overflow: auto;\n list-style: none;\n margin: 0;\n padding: 0;\n width: 100%;\n}\n\n.file-list li {\n width: 100%;\n user-select: none;\n border-radius: .2em;\n padding: .3em;\n}\n\n.file-list li[aria-selected=true] {\n background: var(--blue) !important;\n color: #fff !important;\n transition: .1s ease all;\n}\n\n.file-list li:hover {\n background-color: #e9eaeb;\n cursor: pointer;\n}\n\n.file-list li:before {\n content: \"folder\";\n color: #6f6f6f;\n vertical-align: middle;\n line-height: 1.4;\n font-family: 'Material Icons';\n font-size: 1.75em;\n margin-right: .25em;\n}\n\n.file-list li[aria-selected=true]:before {\n color: white;\n}\n\n.help {\n max-width: 24em;\n}\n\n.help ul {\n padding: 0;\n margin: 1em 0;\n list-style: none;\n}\n\n@keyframes show {\n 0% {\n visibility: hidden;\n opacity: 0;\n }\n 1% {\n visibility: visible;\n opacity: 0;\n }\n 100% {\n visibility: visible;\n opacity: 1;\n }\n}\n\n.collapsible {\n border-top: 1px solid rgba(0,0,0,0.1);\n}\n\n.collapsible:last-of-type {\n border-bottom: 1px solid rgba(0,0,0,0.1);\n}\n\n.collapsible > input {\n display: none;\n}\n\n.collapsible > label {\n padding: 1em 0;\n cursor: pointer;\n border-right: 0;\n border-left: 0;\n display: flex;\n justify-content: space-between;\n}\n\n.collapsible > label * {\n margin: 0;\n color: rgba(0,0,0,0.57);\n}\n\n.collapsible > label i {\n transition: .2s ease transform;\n user-select: none;\n}\n\n.collapsible .collapse {\n max-height: 0;\n overflow: hidden;\n transition: .2s ease all;\n}\n\n.collapsible > input:checked ~ .collapse {\n padding-top: 1em;\n padding-bottom: 1em;\n max-height: 20em;\n}\n\n.collapsible > input:checked ~ label i {\n transform: rotate(180deg)\n}\n\n.card .collapsible {\n width: calc(100% + 2em);\n margin: 0 -1em;\n}\n\n.card .collapsible > label {\n padding: 1em;\n}\n\n.card .collapsible .collapse {\n padding: 0 1em;\n}\n\n.card .card-action.full {\n padding-top: 0;\n display: flex;\n flex-wrap: wrap;\n}\n\n.card .card-action.full .action {\n flex: 1;\n padding: 2em;\n border-radius: 0.2em;\n border: 1px solid rgba(0, 0, 0, 0.1);\n text-align: center;\n}\n\n.card .card-action.full .action {\n margin: 0 0.25em 0.50em;\n}\n\n.card .card-action.full .action i {\n display: block;\n padding: 0;\n margin-bottom: 0.25em;\n font-size: 4em;\n}\n\n.card .card-action.full .action .title {\n font-size: 1.5em;\n font-weight: 500;\n}\n\n/*** RTL - Fix disk usage information (in english) ***/\nbody.rtl .credits {\n text-align: right;\n direction: ltr;\n}\n\n.card-action-bottom-right {\n /*width: auto;*/\n /*float: right; !* 靠右浮动 *!*/\n display: flex;\n justify-content: flex-end; /* 让子元素从右边开始排列 */\n}\n\n/* ===== 通用状态指示器 StatusCircle ===== */\n/* 圆点 + 可选文字,颜色由组件按状态注入(通过 style 的 color 传给 currentColor) */\n.status-circle {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 0.9em;\n white-space: nowrap;\n}\n\n.status-circle__dot {\n display: inline-block;\n}\n\n.status-circle__text {\n /* 颜色继承 .status-circle 的 color(即状态色) */\n color: inherit;\n}\n\n/* 加载中:环形边框绕着中心旋转 */\n.status-circle__dot--spin {\n animation: status-circle-spin 0.8s linear infinite;\n}\n\n@keyframes status-circle-spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n",""]);const a=s;n.d(t,["A",0,a])},35274(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,"\n.flex {\n display: flex;\n grid-template-columns: repeat(auto-fit, 1fr);\n grid-template-rows: repeat(auto-fit, 1fr);\n}",""]);const a=s;n.d(t,["A",0,a])},82323(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,"\n.grid_three {\n display: grid;\n grid-template-columns: repeat(3, 1fr); /* 三列等宽 */\n gap: 1rem; /* 列之间的间隔 */\n}\n\n.grid_three_item {\n /*background-color: lightblue; !* 背景颜色 *!*/\n /*padding: 1rem; !* 内边距 *!*/\n /*text-align: center; !* 文字居中对齐 *!*/\n font-weight: 500; /* 加粗 */\n min-width: 3rem;\n padding-top: 0.5rem;\n}\n",""]);const a=s;n.d(t,["A",0,a])},90732(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,'/* 任何位置加上这个标签都会显示在顶层\n <header className={"header"}>\n <Action icon={"more_vert"} />\n </header>\n*/\n\n.header {\n z-index: 999;\n background-color: #fff;\n border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);\n position: fixed;\n top: 0;\n left: 0;\n height: 4em;\n width: 100%;\n /*padding: 0;*/\n display: flex;\n padding: 0.5em 0.5em 0.5em 1em;\n align-items: center;\n}\n@media(max-width: 1200px) {\n .header {\n overflow-x: auto !important; /* 暂时使用这种滚动方式 */\n overflow-y: hidden;\n\n /*-ms-overflow-style: none; !* 对 IE 和 Edge 浏览器隐藏滚动条 *!*/\n /*scrollbar-width: none; !* 对 Firefox 浏览器隐藏滚动条 *!*/\n }\n}\n\n.header-min {\n height: 0.1rem;\n font-size: 0.1rem;\n opacity: 0.5;\n}\n.header-min:hover {\n height: 4rem;\n font-size: small;\n}\n.header > * {\n flex: 0 0 auto;\n min-width: 0; /* 允许 flex 子项收缩 */\n}\n\n.header .title {\n display: block;\n flex: 1 1 auto;\n /*padding: 0 1em;*/\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 1.2em;\n}\n\n/* 页面工具栏注入槽位(页面通过 <HeaderPortal> 把内容渲染到这里)\n 用 display: contents 让槽位自身不生成盒子,\n 里面的内容在布局上等同 Header 的直接子元素,和页面自己渲染 Header 时表现一致 */\n.header .header-slot {\n display: contents;\n}\n\n.header .header-menu {\n display: none;\n}\n\n.header .header-nav-toggle {\n\n margin-right: 0.5em;\n}\n\n.header .overlay {\n width: 0;\n height: 0;\n}\n\n.header a,\n.header a:hover {\n color: inherit;\n}\n\n.header>div:first-child>.action,\n.header img {\n margin-right: 1em;\n}\n\n.header img {\n height: 2.5em;\n}\n\n.header .action span {\n display: none;\n}\n\n/* 注入到 Header 工具栏的文字标签(配合 ActionButton 使用,说明图标含义)。\n 槽位是 display:contents,所以这里直接参与 Header 的 flex 布局、自动垂直居中 */\n.header .header-label {\n color: var(--textSecondary, #5f6368);\n white-space: nowrap;\n margin-right: 0.4em;\n}\n\n.header>div div {\n vertical-align: middle;\n /*position: relative;*/\n}\n\n.header .menu-button {\n display: none;\n}\n\n#more {\n display: none;\n}\n\n.filecat-search-box {\n position: relative;\n height: 100%;\n width: 100%;\n max-width: 25em;\n padding-left: .6rem;\n}\n\n.filecat-search-box__inner {\n background-color: #f5f5f5;\n display: flex;\n height: 100%;\n padding: 0em 0.75em;\n border-radius: 0.3em;\n transition: .1s ease all;\n align-items: center;\n z-index: 2;\n}\n\n.filecat-search-box__inner>i {\n margin-right: 0.3em;\n user-select: none;\n}\n\n/* 可点击的图标入口(如文件列表的「全局搜索」)。\n 用 span 包一层是因为 Icon 组件不支持事件与自定义 class,这里只补交互样式。 */\n.filecat-search-box__icon-btn {\n display: flex;\n align-items: center;\n cursor: pointer;\n border-radius: 0.3em;\n transition: color .15s ease;\n}\n\n.filecat-search-box__icon-btn>i {\n margin-right: 0.3em;\n user-select: none;\n}\n\n.filecat-search-box__icon-btn:hover {\n color: var(--blue, #2196f3);\n}\n\n.filecat-search-box input {\n width: 100%;\n border: 0;\n background-color: transparent;\n padding: 0;\n}\n',""]);const a=s;n.d(t,["A",0,a])},15652(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,"\n\n\nmain {\n /*直接让内容居右*/\n min-height: 1em;\n margin: 0 1em 1em auto;\n width: calc(100% - 15em);\n height: 100%;\n padding-top: var( --top-length);\n}\n\nmain.nav-collapsed {\n width: calc(100% - 6em);\n}\n",""]);const a=s;n.d(t,["A",0,a])},85058(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,'\n\n.menu {\n display: flex;\n padding-bottom: 1em;\n /*overflow: auto;*/\n}\n\n.menu .wrapper {\n display: flex;\n flex-grow: 1;\n border-bottom: 2px solid rgba(0, 0, 0, 0.05);\n}\n@media(max-width: 1200px) {\n .menu .wrapper {\n overflow-x: auto !important; /* 暂时使用这种滚动方式 */\n overflow-y: hidden;\n\n /*-ms-overflow-style: none; !* 对 IE 和 Edge 浏览器隐藏滚动条 *!*/\n /*scrollbar-width: none; !* 对 Firefox 浏览器隐藏滚动条 *!*/\n }\n}\nbody.rtl .menu .wrapper {\n margin-right: 16em;\n}\n\n.menu ul {\n list-style: none;\n display: flex;\n color: rgb(84, 110, 122);\n font-weight: 500;\n padding: 0;\n margin: 0 0 -2px 0;\n font-size: .8em;\n text-align: center;\n justify-content: left;\n}\n\n.menu ul li {\n position: relative;\n padding: 1.5em 2em;\n white-space: nowrap;\n border-bottom: .15rem solid transparent;\n transition: .1s ease-in-out all;\n\n}\n\n.menu ul li:hover {\n background: var(--moon-grey);\n}\n\n.menu ul li.active {\n border-color: var(--blue);\n color: var(--blue);\n}\n\n.menu ul li.active::before {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n content: "";\n background: var(--blue);\n opacity: 0.08;\n}\n\n.menu i {\n font-size: 1em;\n vertical-align: middle;\n}\n',""]);const a=s;n.d(t,["A",0,a])},62108(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,'\n/*\n网站导航菜单\n <nav className={"nav"}>\n <div className={"nav_1"}>\n <div className=" nav_2">\n <i className="material-icons">folder</i>\n <span className=" nav_3">我的文件</span>\n </div>\n\n </div>\n <div className={"nav_1"}>\n <div className=" nav_2">\n <i className="material-icons">folder</i>\n <span className=" nav_3">你的文件</span>\n </div>\n\n </div>\n</nav>\n*/\nnav {\n width: 13em;\n position: fixed;\n /*top: 4em;*/\n left: 0;\n z-index: 1;\n overflow-y: auto;\n padding-top: var( --top-length);\n height: 100%;\n}\n\nnav.collapsed {\n width: 4.5em;\n overflow-x: hidden;\n}\n\nnav.collapsed .nav_2 {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1em 0;\n}\n\nnav.collapsed .nav_3 {\n display: none;\n}\n\nnav .nav_2 {\n width: 100%;\n display: block;\n border-radius: 0;\n font-size: 1.1em;\n padding: 1em;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer\n}\n.nav_2 .nav_3 {\n padding: .4em;\n -webkit-transition: .1s ease-in-out all;\n transition: .1s ease-in-out all;\n border-radius: 50%;\n}\n.nav_2:hover {\n background-color: rgba(0, 0, 0, 0.1);\n}\nnav > .nav_1 {\n border-top: 1px solid rgba(0, 0, 0, 0.05);\n}\n\nnav .nav_2 > * {\n vertical-align: middle;\n}\nnav .nav_2_active {\n background-color: rgba(0, 0, 0, 0.05);\n}\n',""]);const a=s;n.d(t,["A",0,a])},32293(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,".dropdown_start{\n /*min-width: 5rem;*/\n /*max-width: 5rem;*/\n position: relative;\n}\n/*.dropdown_none {*/\n/* display: none;*/\n/*}*/\n.dropdown {\n min-width: 10rem;\n /*max-width: 5rem;*/\n /*top: 3em;*/\n /*right: 1em;*/\n\n /*position: absolute;*/\n\n display: block;\n background-color: #fff;\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);\n /*transform: scale(0);*/\n /*transition: .1s ease-in-out transform;*/\n /*transform-origin: top right;*/\n z-index: 1001;\n cursor: pointer;\n /*width: 100%;*/\n}\n\n.dropdown_item {\n /*padding-top:.3rem;*/\n /*padding-bottom:.3rem;*/\n /*padding-left:.2rem;*/\n width:100%;\n margin:0;\n min-height:1.5rem;\n white-space: nowrap;\n position: relative;\n}\n\n\nbody.rtl .dropdown {\n right: unset;\n left: 1em;\n transform-origin: top left;\n}\n/*每个 input 和 dropdown 下的 div */\n.dropdown > div,input {\n /*display: block;*/\n /*width: 100%;*/\n /*border-bottom: 1px solid #ccc;*/\n /*padding-top: .3rem;*/\n /*padding-bottom: .3rem;*/\n /*padding-left: .2rem;*/\n word-break: break-all;\n /*margin: 3px 3px 3px 0;*/\n}\n.dropdown > div:hover,input :hover {\n background-color: #f5f5f5;\n}\n.dropdown_selected {\n background-color: #f5f5f5;\n}\n.dropdown.active {\n transform: scale(1);\n}\n.dropdown .action {\n display: flex;\n align-items: center;\n border-radius: 0;\n width: 100%;\n}\n.dropdown .action > span:not(.counter) {\n display: inline-block;\n padding: .4em;\n}\n.dropdown .counter {\n left: 2.25em;\n}\n\n\n.dropdown .dropdown_item_children {\n position: absolute;\n z-index: 99999;\n display: block;\n top: -.5rem;\n}\n\n\n",""]);const a=s;n.d(t,["A",0,a])},37955(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o),a=n(4417),l=n.n(a),c=new URL(n(1489),n.b),u=s()(r()),d=l()(c);u.push([e.id,`/* Icons */\n\n/* General */\n\n.file-icons [aria-label^="."] { opacity: 0.33 }\n.file-icons [aria-label$=".bak"] { opacity: 0.33 }\n\n.file-icons [data-type=audio] i::before { content: 'volume_up' }\n.file-icons [data-type=blob] i::before { content: 'insert_drive_file' }\n.file-icons [data-type=image] i::before { content: 'image' }\n.file-icons [data-type=pdf] i::before { content: 'description' }\n.file-icons [data-type=text] i::before { content: 'description' }\n.file-icons [data-type=video] i::before { content: 'movie' }\n.file-icons [data-type=invalid_link] i::before { content: 'link_off' }\n\n/* #f90 - Image */\n\n.file-icons [aria-label$=".ai"] i::before,\n.file-icons [aria-label$=".odg"] i::before,\n.file-icons [aria-label$=".xcf"] i::before\n{ content: 'image' }\n\n/* #f90 - Presentation */\n\n.file-icons [aria-label$=".odp"] i::before,\n.file-icons [aria-label$=".ppt"] i::before,\n.file-icons [aria-label$=".pptx"] i::before\n{ content: 'slideshow' }\n\n/* #0f0 - Spreadsheet/Database */\n\n.file-icons [aria-label$=".csv"] i::before,\n.file-icons [aria-label$=".db"] i::before,\n.file-icons [aria-label$=".odb"] i::before,\n.file-icons [aria-label$=".ods"] i::before,\n.file-icons [aria-label$=".xls"] i::before,\n.file-icons [aria-label$=".xlsx"] i::before,\n.file-icons [aria-label$=".gcfg"] i::before\n{ content: 'border_all' }\n\n/* #00f - Document */\n\n.file-icons [aria-label$=".doc"] i::before,\n.file-icons [aria-label$=".docx"] i::before,\n.file-icons [aria-label$=".log"] i::before,\n.file-icons [aria-label$=".odt"] i::before,\n.file-icons [aria-label$=".rtf"] i::before\n{ content: 'description' }\n\n/* #999 - Code */\n\n.file-icons [aria-label$=".c"] i::before,\n.file-icons [aria-label$=".cpp"] i::before,\n.file-icons [aria-label$=".cs"] i::before,\n.file-icons [aria-label$=".css"] i::before,\n.file-icons [aria-label$=".go"] i::before,\n.file-icons [aria-label$=".h"] i::before,\n.file-icons [aria-label$=".html"] i::before,\n.file-icons [aria-label$=".java"] i::before,\n.file-icons [aria-label$=".js"] i::before,\n.file-icons [aria-label$=".json"] i::before,\n.file-icons [aria-label$=".kt"] i::before,\n.file-icons [aria-label$=".php"] i::before,\n.file-icons [aria-label$=".py"] i::before,\n.file-icons [aria-label$=".rb"] i::before,\n.file-icons [aria-label$=".rs"] i::before,\n.file-icons [aria-label$=".vue"] i::before,\n.file-icons [aria-label$=".xml"] i::before,\n.file-icons [aria-label$=".yml"] i::before,\n.file-icons [aria-label$=".tsx"] i::before,\n.file-icons [aria-label$=".ts"] i::before\n{ content: 'code' }\n\n/* #999 - Executable */\n\n.file-icons [aria-label$=".apk"] i::before,\n.file-icons [aria-label$=".bat"] i::before,\n.file-icons [aria-label$=".exe"] i::before,\n.file-icons [aria-label$=".jar"] i::before,\n.file-icons [aria-label$=".ps1"] i::before,\n.file-icons [aria-label$=".sh"] i::before\n{ content: 'web_asset' }\n\n/* #999 - Installer */\n\n.file-icons [aria-label$=".deb"] i::before,\n.file-icons [aria-label$=".msi"] i::before,\n.file-icons [aria-label$=".pkg"] i::before,\n.file-icons [aria-label$=".rpm"] i::before\n{ content: 'archive' }\n\n/* #999 - Compressed */\n\n.file-icons [aria-label$=".bz2"] i::before,\n.file-icons [aria-label$=".cab"] i::before,\n.file-icons [aria-label$=".gz"] i::before,\n.file-icons [aria-label$=".rar"] i::before,\n.file-icons [aria-label$=".tar"] i::before,\n.file-icons [aria-label$=".xz"] i::before,\n.file-icons [aria-label$=".zip"] i::before,\n.file-icons [aria-label$=".zst"] i::before\n{ content: 'folder_zip' }\n\n/* #999 - Disk */\n\n.file-icons [aria-label$=".ccd"] i::before,\n.file-icons [aria-label$=".dmg"] i::before,\n.file-icons [aria-label$=".iso"] i::before,\n.file-icons [aria-label$=".mdf"] i::before,\n.file-icons [aria-label$=".vdi"] i::before,\n.file-icons [aria-label$=".vhd"] i::before,\n.file-icons [aria-label$=".vmdk"] i::before,\n.file-icons [aria-label$=".wim"] i::before\n{ content: 'album' }\n\n/* 绘图 */\n.file-icons [aria-label$=".excalidraw"] i::before,\n.file-icons [aria-label$=".draw"] i::before\n{ content: 'draw' }\n\n/* #999 - Font */\n\n.file-icons [aria-label$=".otf"] i::before,\n.file-icons [aria-label$=".ttf"] i::before,\n.file-icons [aria-label$=".woff"] i::before,\n.file-icons [aria-label$=".woff2"] i::before\n{ content: 'font_download' }\n\n/* Colors */\n\n/* General */\n\n.file-icons [data-type=audio] i { color: var(--icon-yellow) }\n.file-icons [data-type=image] i { color: var(--icon-orange) }\n.file-icons [data-type=video] i { color: var(--icon-violet) }\n.file-icons [data-type=invalid_link] i { color: var(--icon-red) }\n\n/* #f00 - Adobe/Oracle */\n\n.file-icons [aria-label$=".ai"] i,\n.file-icons [aria-label$=".java"] i,\n.file-icons [aria-label$=".jar"] i,\n.file-icons [aria-label$=".psd"] i,\n.file-icons [aria-label$=".rb"] i,\n.file-icons [data-type=pdf] i\n{ color: var(--icon-red) }\n\n/* #f90 - Image/Presentation */\n\n.file-icons [aria-label$=".html"] i,\n.file-icons [aria-label$=".odg"] i,\n.file-icons [aria-label$=".odp"] i,\n.file-icons [aria-label$=".ppt"] i,\n.file-icons [aria-label$=".pptx"] i,\n.file-icons [aria-label$=".vue"] i,\n.file-icons [aria-label$=".xcf"] i\n{ color: var(--icon-orange) }\n\n/* #ff0 - Various */\n\n.file-icons [aria-label$=".css"] i,\n.file-icons [aria-label$=".js"] i,\n.file-icons [aria-label$=".json"] i,\n.file-icons [aria-label$=".zip"] i\n{ color: var(--icon-yellow) }\n\n/* #0f0 - Spreadsheet/Google */\n\n.file-icons [aria-label$=".apk"] i,\n.file-icons [aria-label$=".dex"] i,\n.file-icons [aria-label$=".go"] i,\n.file-icons [aria-label$=".ods"] i,\n.file-icons [aria-label$=".xls"] i,\n.file-icons [aria-label$=".xlsx"] i,\n.file-icons [aria-label$=".gcfg"] i\n{ color: var(--icon-green) }\n\n/* #00f - Document/Microsoft/Apple/Closed */\n\n.file-icons [aria-label$=".aac"] i,\n.file-icons [aria-label$=".bat"] i,\n.file-icons [aria-label$=".cab"] i,\n.file-icons [aria-label$=".cs"] i,\n.file-icons [aria-label$=".dmg"] i,\n.file-icons [aria-label$=".doc"] i,\n.file-icons [aria-label$=".docx"] i,\n.file-icons [aria-label$=".emf"] i,\n.file-icons [aria-label$=".exe"] i,\n.file-icons [aria-label$=".ico"] i,\n.file-icons [aria-label$=".mp2"] i,\n.file-icons [aria-label$=".mp3"] i,\n.file-icons [aria-label$=".mp4"] i,\n.file-icons [aria-label$=".mpg"] i,\n.file-icons [aria-label$=".msi"] i,\n.file-icons [aria-label$=".odt"] i,\n.file-icons [aria-label$=".ps1"] i,\n.file-icons [aria-label$=".rtf"] i,\n.file-icons [aria-label$=".vob"] i,\n.file-icons [aria-label$=".wim"] i,\n.file-icons [aria-label$=".ts"] i,\n.file-icons [aria-label$=".tsx"] i\n{ color: var(--icon-blue) }\n\n/* #60f - Various */\n\n.file-icons [aria-label$=".iso"] i,\n.file-icons [aria-label$=".php"] i,\n.file-icons [aria-label$=".rar"] i,\n.file-icons [aria-label$=".excalidraw"] i,\n.file-icons [aria-label$=".draw"] i\n{ color: var(--icon-violet) }\n\n.file-icons [aria-label$=".md"] i::before {\n content: "";\n display: inline-block;\n width: 1em;\n height: 1em;\n\n mask: url(${d}) no-repeat center;\n mask-size: contain;\n -webkit-mask: url(${d}) no-repeat center;\n -webkit-mask-size: contain;\n\n background-color: currentColor;\n}\n\n/* Overrides */\n\n.file-icons [data-dir=true] i { color: var(--icon-blue) }\n.file-icons [data-dir=true] i::before { content: 'folder' }\n/* 挂载目录:把文件夹图案换成云朵,颜色与顶部挂载开关选中态一致(--blue: #2196f3) */\n.file-icons [data-mount="true"] i { color: var(--blue) }\n.file-icons [data-mount="true"] i::before { content: 'cloud' }\n.file-icons [aria-selected=true] i { color: var(--item-selected) }\n\n/*特殊的 filecat work flow*/\n.file-icons [aria-label$=".workflow.yml"] i { color: var(--icon-blue) }\n.file-icons [aria-label$=".workflow.yml"] i::before { content: 'api' }\n\n.file-icons [aria-label$=".act"] i { color: var(--icon-blue) }\n.file-icons [aria-label$=".act"] i::before { content: 'api' }\n\n/* 思维导图:数据就是 JSON,图标与颜色跟 .json 保持一致 */\n.file-icons [aria-label$=".mind"] i { color: var(--icon-yellow) }\n.file-icons [aria-label$=".mind"] i::before { content: 'code' }\n\n.file-icons [aria-label$=".url"] i { color: var(--icon-blue) }\n.file-icons [aria-label$=".url"] i::before { content: 'link' }\n\n\n\n\n`,""]);const h=u;n.d(t,["A",0,h])},94314(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,'html[dir="rtl"] #listing {\n margin-right: 16em;\n}\n\n#listing {\n overflow-y: auto;\n height: 100%;\n}\n\n#listing h2 {\n margin: 0 0 0 0.5em;\n font-size: 0.9em;\n color: var(--textPrimary);\n font-weight: 500;\n}\n\n#listing .item div:last-of-type * {\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n#listing > div {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n#listing .item {\n background: var(--surfacePrimary);\n border-color: var(--divider);\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n color: var(--textSecondary);\n transition:\n 0.1s ease background,\n 0.1s ease opacity;\n align-items: center;\n /*cursor: pointer;*/\n user-select: none;\n}\n\n#listing .item div:last-of-type {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n#listing .item p {\n margin: 0;\n}\n\n#listing .item .size,\n#listing .item .modified {\n font-size: 0.9em;\n}\n\n#listing .item .name {\n font-weight: bold;\n}\n\n#listing .item i {\n font-size: 4em;\n margin-right: 0.1em;\n vertical-align: bottom;\n}\n\n#listing .item img {\n width: 4em;\n height: 4em;\n object-fit: cover;\n margin-right: 0.1em;\n vertical-align: bottom;\n}\n\n.message {\n text-align: center;\n font-size: 2em;\n margin: 1em auto;\n display: block !important;\n width: 95%;\n color: var(--textPrimary);\n font-weight: 500;\n}\n\n.message i {\n font-size: 2.5em;\n margin-bottom: 0.2em;\n display: block;\n}\n\n#listing.mosaic {\n padding-top: .5em;\n margin: 0 -0.5em;\n}\n\n#listing.mosaic .item {\n width: calc(var(--filewidth) - 1em);\n margin: 0.5em;\n padding: 0.5em;\n border-radius: 0.2em;\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.06),\n 0 1px 2px rgba(0, 0, 0, 0.12);\n}\n\n#listing.mosaic .item:hover {\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.12),\n 0 1px 2px rgba(0, 0, 0, 0.24) !important;\n}\n\n#listing.mosaic .header {\n display: none;\n}\n\n#listing.mosaic .item div:first-of-type {\n width: 5em;\n}\n\n#listing.mosaic .item div:last-of-type {\n width: calc(100% - 5vw);\n}\n\n#listing.mosaic.gallery .item div:first-of-type {\n width: 100%;\n height: 12em;\n}\n\n#listing.mosaic.gallery .item div:last-of-type {\n position: absolute;\n bottom: 0.5em;\n padding: 1em;\n width: calc(100% - 1em);\n text-align: center;\n}\n\n#listing.mosaic.gallery .item[data-type="image"] div:last-of-type {\n color: white;\n background: linear-gradient(#0000, #0009);\n}\n\n#listing.mosaic.gallery .item i {\n width: 100%;\n margin-right: 0;\n font-size: 8em;\n text-align: center;\n}\n\n#listing.mosaic.gallery .item img {\n width: 100%;\n height: 100%;\n}\n\n#listing.gallery .size,\n#listing.gallery .modified {\n display: none;\n}\n\n#listing.list {\n flex-direction: column;\n width: 100%;\n max-width: 100%;\n margin: 0;\n}\n\n#listing.list .item {\n width: 100%;\n margin: 0;\n border: 1px solid var(--borderPrimary);\n padding: 1em;\n border-top: 0;\n}\n\n#listing.list h2 {\n display: none;\n}\n\n#listing .item[aria-selected="true"] {\n background: var(--blue) !important;\n color: var(--iconSecondary) !important;\n}\n\n#listing.list .item div:first-of-type {\n width: 3em;\n}\n\n#listing.list .item div:first-of-type i {\n font-size: 2em;\n}\n\n#listing.list .item div:first-of-type img {\n width: 2em;\n height: 2em;\n}\n\n#listing.list .item div:last-of-type {\n width: calc(100% - 3em);\n display: flex;\n align-items: center;\n}\n\n#listing.list .item .name {\n width: 50%;\n}\n\n#listing.list .item .size {\n width: 25%;\n}\n\n#listing .item.header {\n display: none !important;\n background-color: var(--iconTertiary);\n}\n\n#listing.list .header i {\n font-size: 1.5em;\n vertical-align: middle;\n margin-left: 0.2em;\n}\n\n#listing.list .item.header {\n display: flex !important;\n background: var(--background);\n z-index: 999;\n padding: 0.85em;\n border: 0;\n border-bottom: 1px solid var(--borderPrimary);\n}\n\n#listing.list .item.header > div:first-child {\n width: 0;\n}\n\n#listing.list .item.header .name {\n margin-right: 3em;\n}\n\n#listing.list .header a {\n color: inherit;\n}\n\n#listing.list .item.header > div:first-child {\n width: 0;\n}\n\n#listing.list .name {\n font-weight: normal;\n word-wrap: break-word;\n word-break: break-all;\n white-space: pre-wrap;\n}\n\n#listing.list .item.header .name {\n margin-right: 3em;\n}\n\n#listing.list .header span {\n vertical-align: middle;\n}\n\n#listing.list .header i {\n opacity: 0;\n transition: 0.1s ease all;\n}\n\n#listing.list .header p:hover i,\n#listing.list .header .active i {\n opacity: 1;\n}\n\n#listing.list .item.header .active {\n font-weight: bold;\n}\n\n#listing #multiple-selection {\n position: fixed;\n bottom: -4em;\n left: 0;\n z-index: 999;\n width: 100%;\n background-color: var(--blue);\n height: 4em;\n padding: 0.5em 0.5em 0.5em 1em;\n justify-content: space-between;\n transition: 0.2s ease bottom;\n}\n\n#listing #multiple-selection.active {\n bottom: 0;\n}\n\n#listing #multiple-selection p,\n#listing #multiple-selection i {\n color: var(--iconSecondary);\n}\n\n\n\n.card-tree-view ul:hover,.card-tree-view li:hover{\n cursor: default;\n}',""]);const a=s;n.d(t,["A",0,a])},41175(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,"\n#md-container {\n display: flex;\n flex-direction: column;\n background-color: #fafafa;\n position: fixed;\n padding-top: 4em;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n z-index: 1000;\n overflow: auto;\n}\n\n#md-container .md-context{\n padding-top: 1em;\n padding-left: 20%;\n padding-right: 20%;\n padding-bottom: 4em;\n width:100%;\n min-height: 100%;\n overflow: auto;\n}\n\n.md-context > div {\n padding-top: 1rem;\n padding-left: 5%;\n padding-right: 5%;\n border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);\n border-radius: 0.5em;\n min-height: 100%;\n overflow: auto;\n}\n\n.code-block-with-copy {\n position: relative;\n background: #1e1e1e;\n border-radius: 8px;\n margin: 16px 0;\n overflow: hidden;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.code-block-with-copy .code-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: #2d2d2d;\n padding: 8px 16px;\n border-bottom: 1px solid #3d3d3d;\n}\n\n.code-block-with-copy .code-language {\n color: #e6e6e6;\n font-size: 12px;\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.code-block-with-copy .copy-btn {\n padding: 4px 8px;\n background: rgba(255, 255, 255, 0.1);\n border: 1px solid rgba(255, 255, 255, 0.2);\n border-radius: 4px;\n font-size: 11px;\n color: #e6e6e6;\n cursor: pointer;\n transition: all 0.2s ease;\n backdrop-filter: blur(4px);\n}\n\n.code-block-with-copy .copy-btn:hover {\n background: rgba(255, 255, 255, 0.2);\n border-color: rgba(255, 255, 255, 0.3);\n}\n\n.code-block-with-copy pre {\n margin: 0;\n padding: 16px;\n overflow-x: auto;\n background: transparent;\n}\n\n.code-block-with-copy code {\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;\n font-size: 14px;\n line-height: 1.6;\n background: transparent;\n padding: 0;\n color: #e6e6e6;\n}\n\n/* 自定义代码块样式 */\n.custom-code-block {\n margin: 1em 0;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid #3d3d3d;\n background: #1e1e1e;\n}\n\n.custom-code-block pre {\n margin: 0;\n padding: 1em;\n overflow-x: auto; /* 实现左右拖动 */\n white-space: pre; /* 保持代码格式,不自动换行 */\n max-width: 100%;\n width: 100%;\n box-sizing: border-box;\n}\n\n.custom-code-block code {\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;\n font-size: 14px;\n line-height: 1.5;\n color: #e6e6e6;\n}\n\n/* 代码块语言标签样式 */\n.code-block-with-copy .language-tag {\n position: absolute;\n top: 0;\n left: 0;\n background: rgba(255, 255, 255, 0.1);\n color: #e6e6e6;\n padding: 4px 8px;\n font-size: 12px;\n border-radius: 0 0 8px 0;\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;\n}\n\n/* 代码块行号样式(可选) */\n.code-block-with-copy .line-numbers {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 40px;\n background: rgba(0, 0, 0, 0.2);\n color: rgba(255, 255, 255, 0.3);\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;\n font-size: 14px;\n line-height: 1.6;\n padding: 16px 0;\n text-align: right;\n user-select: none;\n}\n\n/* 代码块滚动条样式 */\n.code-block-with-copy pre::-webkit-scrollbar {\n height: 8px;\n}\n\n.code-block-with-copy pre::-webkit-scrollbar-track {\n background: rgba(255, 255, 255, 0.1);\n border-radius: 4px;\n}\n\n.code-block-with-copy pre::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n border-radius: 4px;\n}\n\n.code-block-with-copy pre::-webkit-scrollbar-thumb:hover {\n background: rgba(255, 255, 255, 0.5);\n}\n",""]);const a=s;n.d(t,["A",0,a])},26663(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o),a=n(4417),l=n.n(a),c=new URL(n(57778),n.b),u=s()(r()),d=l()(c);u.push([e.id,`/* md 所见即所得编辑器(ProseMirror,Typora 风格)\n 布局与 excalidraw.css 一致:全屏 fixed 覆盖层 + Header + 内容区 */\n\n/* 编辑器外观变量:在这里声明默认值。\n 两个作用:1) VS Code 的 CSS 校验器能在本文件里找到定义,不再报\n "无法解析自定义属性";2) 一眼看清有哪些可调项。\n 注意:这里的值只是 JS 注入前的占位,运行期一定会被 apply_md_editor_setting()\n 覆盖,所以不需要和 TS 里的默认值逐字同步。真正的唯一来源是\n common/req/common.pojo.ts 的 MD_EDITOR_SETTING_DEFAULT。 */\n#md-editor-container {\n display: flex;\n flex-direction: column;\n background-color: var(--background, #fafafa);\n position: fixed;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n z-index: 1000;\n overflow: hidden;\n /* 编辑器外观的默认值,运行期由 MdEditor 拉取全局设置后覆盖 */\n --md-editor-max-width: 90%;\n --md-editor-padding: 4%;\n --md-editor-font-size: 16px;\n --md-editor-line-height: 1.8;\n}\n\n/* 让 Header 参与 flex 布局(全局样式里它是 fixed,会盖住正文首行) */\n#md-editor-container > .header {\n position: static;\n flex-shrink: 0;\n}\n\n/* Header 里的当前文件名:紧跟在关闭按钮之后。\n 长文件名用省略号截断,避免把右侧按钮挤出 Header;\n 限制最大宽度后仍留出足够空间显示按钮。 */\n.md-editor-title {\n align-self: center;\n margin: 0 0.4em;\n max-width: 32em;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--textPrimary, #202124);\n font-size: 0.95em;\n}\n\n/* 内容区:横向排布「大纲 | 分隔条 | 编辑区」。\n 滚动交给内部的 .md-editor-scroll,外层不再滚动,否则大纲会跟着正文一起滚走。\n 选择器同时覆盖两种使用方式:\n · 全屏模式挂在 #md-editor-container 下\n · 嵌进 Studio 等页面时没有该 id,只有 .md-editor-context 本身 */\n.md-editor-context {\n flex: 1;\n min-height: 0;\n overflow: hidden;\n display: flex;\n flex-direction: row;\n position: relative;\n /* 外观变量的兜底默认值:全屏模式由 #md-editor-container 声明、运行期由 JS 覆盖,\n 嵌入模式下这个容器就是变量的挂载点,必须有默认值,否则 --md-editor-max-width /\n --md-editor-padding 取不到值,纸张限宽与左右边距会全部塌成 0。 */\n --md-editor-max-width: 90%;\n --md-editor-padding: 4%;\n --md-editor-font-size: 16px;\n --md-editor-line-height: 1.8;\n /* 正文底色:全屏模式由 #md-editor-container 提供,嵌入到其他页面时(如 Studio)\n 没有那层容器,这里补上,保证两种用法观感一致 */\n background-color: var(--background);\n}\n\n/* 右侧编辑区:唯一的滚动容器,正文在其中居中限宽 */\n.md-editor-scroll {\n flex: 1;\n min-width: 0;\n height: 100%;\n overflow: auto;\n display: flex;\n justify-content: center;\n /* 正文底色(含纸张)统一由这里承载,而不是 .md-editor-sheet:\n 纸张高度被 .md-filecat 的 flex:1 限制成一屏,长文档滚出去就露底(一半白一半灰)。\n 滚动容器永远铺满可视区,是唯一能承载整页底色的地方。\n 主题改变正文底色请写 .md-editor-scroll { background: ... }。\n 默认不设值,沿用 #md-editor-container 的背景(无主题时全屏同色)。 */\n}\n\n/* 纸张:正文的限宽容器。\n 宽度/字号这些可在运行期调整的量统一走 CSS 变量,\n 由 MdEditor 拉取全局设置后写在 #md-editor-container 的 style 上覆盖默认值。 */\n.md-editor-sheet {\n width: 100%;\n max-width: var(--md-editor-max-width);\n display: flex;\n flex-direction: column;\n position: relative;\n padding: 0 var(--md-editor-padding);\n}\n\n/* 大纲跳转时给标题留一点上边距,别让文字紧贴滚动容器的顶边。\n scrollIntoView({block:"start"}) 会把元素顶边对齐容器顶边,\n 这里让浏览器在计算「顶边」时把它算进去。 */\n.md-filecat .md-filecat-content > * {\n scroll-margin-top: 1.2em;\n}\n\n/* ============ 左侧大纲 ============ */\n\n.md-outline-panel {\n flex-shrink: 0;\n height: 100%;\n overflow: auto;\n background: var(--surfaceSecondary, #f6f6f6);\n border-right: 1px solid var(--divider, #e8eaed);\n user-select: none;\n}\n\n.md-outline {\n padding: 0.75em 0 2em;\n font-size: 0.9em;\n}\n\n.md-outline-header {\n padding: 0 0.75em 0.6em;\n font-weight: 500;\n color: var(--textSecondary, #5f6368);\n font-size: 0.92em;\n letter-spacing: 0.02em;\n}\n\n.md-outline-tip {\n padding: 0.5em 0.75em;\n color: var(--textSecondary, #5f6368);\n font-size: 0.9em;\n}\n\n/* 大纲条目:整行可点,hover 有明显的背景反馈 */\n.md-outline-item {\n display: flex;\n align-items: center;\n padding: 0.25em 0.6em 0.25em 0;\n cursor: pointer;\n color: var(--textPrimary, #202124);\n border-radius: 0.3em;\n margin: 0 0.35em;\n}\n\n.md-outline-item:hover {\n background: rgba(127, 127, 127, 0.14);\n}\n\n/* 当前光标所在标题:用主色标识,与工具栏选中态一致 */\n.md-outline-item--active {\n color: var(--primary, #1a73e8);\n background: rgba(26, 115, 232, 0.1);\n}\n\n.md-outline-item--active .md-outline-text {\n font-weight: 500;\n}\n\n/* 折叠箭头:只在 hover 或已折叠时可见,平时保持干净 —— 与 md 编辑器折叠 gutter 的设计一致 */\n.md-outline-arrow {\n width: 1.2em;\n font-size: 1.1em;\n flex-shrink: 0;\n text-align: center;\n visibility: hidden;\n color: var(--textSecondary, #5f6368);\n cursor: pointer;\n}\n\n.md-outline-item:hover .md-outline-arrow {\n visibility: visible;\n}\n\n/* 没有子节点的条目,箭头位置留空以保证同级文字左对齐 */\n.md-outline-arrow--empty {\n cursor: default;\n visibility: hidden;\n}\n\n.md-outline-text {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* 不同级别用字号区分,h1 最大 —— 让层级一眼可辨,不依赖缩进 */\n.md-outline-item--h1 .md-outline-text { font-size: 1.05em; }\n.md-outline-item--h2 .md-outline-text { font-size: 1em; }\n.md-outline-item--h3 .md-outline-text { font-size: 0.96em; }\n.md-outline-item--h4 .md-outline-text,\n.md-outline-item--h5 .md-outline-text,\n.md-outline-item--h6 .md-outline-text {\n font-size: 0.92em;\n color: var(--textSecondary, #5f6368);\n}\n\n/* 分隔条:拖动调整大纲宽度,样式与 studio 编辑器保持一致 */\n.md-editor-divider {\n position: relative;\n height: 100%;\n width: 8px;\n flex-shrink: 0;\n z-index: 10;\n background: rgba(127, 127, 127, 0.1);\n transition: 0.2s ease background;\n cursor: ew-resize;\n touch-action: none;\n user-select: none;\n}\n\n.md-editor-divider:hover {\n background: rgba(127, 127, 127, 0.25);\n}\n\n/* 拖动期间的透明遮罩:铺满编辑区,防止指针进入 ProseMirror 后事件被抢走 */\n.md-editor-drag-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 20;\n cursor: ew-resize;\n}\n\n/* ============ 正文排版 ============ */\n\n.md-filecat {\n flex: 1;\n min-height: 0;\n}\n\n.md-filecat .md-filecat-content {\n outline: none;\n padding: 1em 0 6em;\n font-size: var(--md-editor-font-size);\n line-height: var(--md-editor-line-height);\n color: var(--textPrimary, #202124);\n caret-color: var(--primary, #1a73e8);\n /* 注意:这里不能用 white-space: pre-wrap。\n 它会让空白与换行按原样参与排版,干扰浏览器「坐标 → 文本位置」的映射,\n 表现为鼠标拖动选字时起点被算到上一个块,一滑就选中整行。\n 代码块的换行由 pre 自己控制(见下方 pre 规则)。 */\n overflow-wrap: break-word;\n}\n\n/* 块之间的间距:\n 必须用 padding 而不是 margin —— margin 会在块之间留出「不属于任何块」的空白,\n 鼠标点在这条缝隙里时浏览器会把位置归给上一个块,\n 于是拖动选字会突然跨过整行(Typora 也是用 padding 处理间距的)。 */\n.md-filecat .md-filecat-content > * {\n padding-top: 0.42em;\n padding-bottom: 0.42em;\n margin: 0;\n /* 大纲跳转时给标题留点上边距,别让文字紧贴滚动容器顶边。\n scrollIntoView({block:"start"}) 把元素顶边对齐容器顶边,\n 浏览器会把这里算进「顶边」里。 */\n scroll-margin-top: 1.2em;\n}\n.md-filecat .md-filecat-content > *:first-child {\n padding-top: 0;\n}\n.md-filecat .md-filecat-content > *:last-child {\n padding-bottom: 0;\n}\n\n/* 标题:与 Typora 一致的层级节奏(同样用 padding 而非 margin) */\n.md-filecat h1,\n.md-filecat h2,\n.md-filecat h3,\n.md-filecat h4,\n.md-filecat h5,\n.md-filecat h6 {\n font-weight: 700;\n line-height: 1.35;\n padding-top: 0.9em;\n padding-bottom: 0.4em;\n margin: 0;\n}\n.md-filecat h1 {\n font-size: 1.9em;\n padding-bottom: 0.3em;\n border-bottom: 1px solid var(--divider, #eaecef);\n}\n.md-filecat h2 {\n font-size: 1.55em;\n padding-bottom: 0.25em;\n border-bottom: 1px solid var(--divider, #eaecef);\n}\n.md-filecat h3 { font-size: 1.3em; }\n.md-filecat h4 { font-size: 1.13em; }\n.md-filecat h5 { font-size: 1em; }\n.md-filecat h6 {\n font-size: 0.95em;\n color: var(--textSecondary, #6a737d);\n}\n/* 正文首元素不留过多上边距 */\n.md-filecat .md-filecat-content > *:first-child {\n margin-top: 0;\n}\n\n.md-filecat strong { font-weight: 700; }\n.md-filecat em { font-style: italic; }\n.md-filecat s { text-decoration: line-through; color: var(--textSecondary, #6a737d); }\n\n/* 链接:Typora 的柔和蓝 */\n.md-filecat a {\n color: var(--primary, #1a73e8);\n text-decoration: none;\n border-bottom: 1px solid rgba(26, 115, 232, 0.35);\n /* 编辑器内链接默认按「可编辑文本」处理:\n 普通点击只是把光标落进文字里,光标保持 text,\n 避免从链接上开始拖动选字时手感与普通文字不一致。\n 跳转走 Ctrl/Cmd + 点击,此时才切换成小手(见下方 .md-ctrl-down 规则)。 */\n cursor: text;\n}\n.md-filecat a:hover {\n border-bottom-color: var(--primary, #1a73e8);\n /* 悬停保持文本光标:全局有 a:hover{cursor:pointer},这里显式压掉,\n 否则鼠标划过链接就会变成小手。 */\n cursor: text;\n}\n/* 按住 Ctrl/Cmd 时,ProseMirror 会被加上 .md-ctrl-down:\n 此刻链接才恢复「可点击」的视觉 —— 小手 + 实线下划线,提示用户点下去会跳转。 */\n.md-filecat .md-filecat-content.md-ctrl-down a {\n cursor: pointer;\n border-bottom-color: var(--primary, #1a73e8);\n}\n.md-filecat .md-filecat-content.md-ctrl-down a img {\n cursor: pointer;\n}\n\n/* 行内代码:淡底色小圆角 */\n.md-filecat code {\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n font-size: 0.88em;\n padding: 0.15em 0.4em;\n border-radius: 4px;\n background: var(--surfaceSecondary, #f0f1f3);\n color: #c7254e;\n}\n\n/* 代码块:整块深一点的底 + 圆角 + 横向滚动 */\n.md-filecat pre {\n background: var(--surfaceSecondary, #f6f8fa);\n border-radius: 6px;\n padding: 1em 1.1em;\n overflow-x: auto;\n line-height: 1.6;\n}\n.md-filecat pre code {\n background: transparent;\n color: var(--textPrimary, #24292e);\n padding: 0;\n font-size: 0.88em;\n white-space: pre;\n}\n\n/* 引用块:整块淡底 + 左侧粗竖线 + 灰字(Typora 的经典样式)\n 底色用 --hover 而不是 --surfaceSecondary:\n --surfaceSecondary 在浅色主题下是 rgb(230,230,230),铺满整块显得很重,\n 而且代码块已经用了它,两者会撞色、层次分不开;\n --hover(浅色 rgba(0,0,0,.1) / 深色 rgba(255,255,255,.1))本身就是\n 「相对当前背景深浅各偏一点」的叠加色,两种主题下都能得到柔和且可见的底,\n 不需要为深色主题单独写一份。\n 圆角 + 右侧留白,让底色块与正文有明显边界,但不像代码块那样成块。 */\n.md-filecat blockquote {\n padding: 0.65em 1em 0.65em 1em;\n border-left: 4px solid var(--divider, #dfe2e5);\n border-radius: 0 4px 4px 0;\n background: var(--divider);\n /* 引用文字用次要色。深浅对比交给底色和竖线表达,\n 颜色只用来和正文做区分即可:深色主题下 --textSecondary 反而比\n --textPrimary 更亮,若强行统一成「更暗」会引入 color-mix 等新特性,\n 对两种主题都不稳定的旧浏览器不友好,收益也有限。 */\n color: var(--textSecondary, #6a737d);\n}\n\n/* 引用块内的段落:清掉浏览器默认 margin,改为只在段与段之间留一点间距。\n 上下间距交给 .ProseMirror > * 的 padding,这里只管首尾(见下两条)。 */\n.md-filecat blockquote p {\n margin: 0.35em 0;\n}\n.md-filecat blockquote > *:first-child {\n margin-top: 0;\n}\n.md-filecat blockquote > *:last-child {\n margin-bottom: 0;\n}\n\n/* 嵌套引用:底色会在内层再叠一层,自然变深,层次一眼可辨;\n 竖线收细一点,避免多层引用时左侧一团粗线。 */\n.md-filecat blockquote blockquote {\n border-left-width: 3px;\n}\n\n/* 列表:缩进与标记 */\n.md-filecat ul,\n.md-filecat ol {\n padding: 0.55em 0 0.55em 1.6em;\n}\n.md-filecat li {\n padding: 0.18em 0;\n /* 列表项默认按「可编辑文本」处理:全局有 li:hover{cursor:pointer},\n 这里显式压掉,否则鼠标划过列表标记(ul 的 • / ol 的 1. 2.)就会变成小手。\n 手感应与正文一致,保持文本光标。 */\n cursor: text;\n}\n.md-filecat li > p {\n margin: 0;\n}\n.md-filecat ul li::marker {\n color: var(--primary, #1a73e8);\n}\n/* 列表标记(• / 1. 2. / ☐)本身也要保持文本光标。\n ::marker 不继承父元素 cursor,必须单独声明,否则部分浏览器\n 悬停在数字/圆点上仍会显示默认(或受 li 影响的)光标。 */\n.md-filecat li::marker {\n cursor: text;\n}\n/* 任务列表 */\n.md-filecat li[data-checked] {\n list-style: none;\n position: relative;\n padding-left: 1.6em;\n margin-left: -1.2em;\n}\n.md-filecat li[data-checked]::before {\n content: "☐";\n position: absolute;\n left: 0;\n color: var(--textSecondary, #6a737d);\n font-size: 1.05em;\n}\n.md-filecat li[data-checked="true"]::before {\n content: "☑";\n color: var(--primary, #1a73e8);\n}\n.md-filecat li[data-checked="true"] > p {\n color: var(--textSecondary, #6a737d);\n text-decoration: line-through;\n}\n\n/* 分割线 */\n.md-filecat hr {\n border: 0;\n border-top: 1px solid var(--divider, #e1e4e8);\n padding: 0;\n margin: 1.5em 0;\n}\n\n/* 图片 */\n.md-filecat img {\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n /* 图片同样按文本对待:双击选中、拖动选字与普通文字一致 */\n cursor: text;\n}\n/* 链接里的图片(常见于 README 徽章):保持文本光标,避免出现小手 */\n.md-filecat a img {\n cursor: text;\n}\n\n/* 选中内容的背景(ProseMirror 用 .ProseMirror-selectednode 标记原子节点) */\n.md-filecat .ProseMirror-selectednode {\n outline: 2px solid var(--primary, #1a73e8);\n outline-offset: 1px;\n border-radius: 3px;\n}\n.md-filecat .ProseMirror-gapcursor:after {\n border-top-color: var(--textPrimary, #202124);\n}\n\n/* ============ 表格:真 <table>,Typora 观感 ============ */\n\n.md-filecat table {\n border-collapse: collapse;\n width: 100%;\n margin: 0.6em 0;\n overflow: hidden;\n table-layout: fixed;\n font-size: 0.95em;\n}\n.md-filecat table td,\n.md-filecat table th {\n border: 1px solid var(--divider, #dfe2e5);\n padding: 0.5em 0.8em;\n vertical-align: top;\n position: relative;\n min-width: 2em;\n}\n/* 表头:浅灰底 + 加粗,与 Typora 一致 */\n.md-filecat table th {\n background: var(--surfaceSecondary, #f6f8fa);\n font-weight: 600;\n text-align: left;\n}\n/* 选中单元格:整格淡蓝底 */\n.md-filecat table .selectedCell::after {\n content: "";\n position: absolute;\n inset: 0;\n background: rgba(26, 115, 232, 0.14);\n pointer-events: none;\n}\n/* 单元格内段落不留外边距,否则格子会被撑高 */\n.md-filecat table td > p,\n.md-filecat table th > p {\n margin: 0;\n}\n/* 鼠标悬停列宽拖拽把手 */\n.md-filecat table .column-resize-handle {\n position: absolute;\n right: -2px;\n top: 0;\n bottom: 0;\n width: 4px;\n background: var(--primary, #1a73e8);\n pointer-events: none;\n}\n.md-filecat .md-filecat-content.resize-cursor {\n cursor: col-resize;\n}\n\n/* ============ 工具栏 ============ */\n\n/* 浮动格式工具栏:只在选中文字时出现,贴在选区上方居中。\n 两条硬约束(都踩过坑):\n 1) 永远不能占正文高度 —— 否则选中/取消选中时文档高度变化,文字位移,\n 鼠标拖动选字会选错一片。用 position: fixed 天然脱离文档流。\n 2) 必须用 fixed 而不是 absolute/sticky —— 滚动容器是 .md-editor-context 而非 window,\n 长文档里 absolute/sticky 会跟着纸张滚出屏幕(曾出现 top: -567 完全看不见)。\n fixed 的参照物是视口,所以 JS 传的 top/left 都是视口坐标。\n z-index 需高于 .header(999),否则工具栏会被顶部导航栏盖住。 */\n.mdtb {\n display: flex;\n align-items: center;\n gap: 0.15em;\n padding: 0.3em 0.5em;\n background: var(--background, #fff);\n border: 1px solid var(--divider, #e1e4e8);\n border-radius: 6px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);\n position: fixed;\n z-index: 1000;\n /* left 传的是选区中心点,靠 transform 真正居中 */\n transform: translateX(-50%);\n}\n\n.mdtb--floating {\n /* top / left 由 JS 按选区位置传入(inline style),这里只负责视觉 */\n box-shadow: 0 6px 20px rgba(0, 0, 0, 0.16);\n animation: mdtb-in 0.12s ease-out;\n}\n\n/* 浮动条下方的小三角,指向选区 */\n.mdtb--floating::after {\n content: "";\n position: absolute;\n left: 50%;\n bottom: -5px;\n width: 10px;\n height: 10px;\n margin-left: -5px;\n background: var(--background, #fff);\n border-right: 1px solid var(--divider, #e1e4e8);\n border-bottom: 1px solid var(--divider, #e1e4e8);\n transform: rotate(45deg);\n}\n\n/* 上方空间不足、翻到选区下方时,三角改到顶部并朝上 */\n.mdtb--below::after {\n bottom: auto;\n top: -5px;\n border-right: 0;\n border-bottom: 0;\n border-left: 1px solid var(--divider, #e1e4e8);\n border-top: 1px solid var(--divider, #e1e4e8);\n}\n\n@keyframes mdtb-in {\n from { opacity: 0; transform: translateX(-50%) translateY(2px); }\n to { opacity: 1; transform: translateX(-50%) translateY(0); }\n}\n\n.mdtb__btn {\n border: 0;\n background: transparent;\n color: var(--textPrimary, #202124);\n font-size: 0.86em;\n line-height: 1.2;\n padding: 0.35em 0.5em;\n border-radius: 4px;\n cursor: pointer;\n min-width: 1.9em;\n transition: background 0.12s, color 0.12s;\n}\n.mdtb__btn:hover {\n background: var(--surfaceSecondary, #f1f3f4);\n}\n/* 已激活的标记/块类型:高亮 */\n.mdtb__btn--on {\n background: rgba(26, 115, 232, 0.12);\n color: var(--primary, #1a73e8);\n}\n\n.mdtb__sep {\n width: 1px;\n height: 1.1em;\n background: var(--divider, #e1e4e8);\n margin: 0 0.3em;\n}\n\n/* ---------- 源码模式(直接编辑 Markdown 原文) ----------\n 源码模式与所见即所得共用同一个 ProseMirror 实例(见 MdWysiwygEditor 的说明),\n 此时整篇文档就是一个 language="markdown" 的 code_block。\n 下面用 .md-source-mode 这个类切换成「纯文本编辑器」的排版。 */\n\n/* 源码模式下的正文容器:不再居中限宽,改为铺满,更像代码编辑器 */\n.md-filecat .md-filecat-content.md-source-mode {\n padding: 1em var(--md-editor-padding) 6em;\n /* 覆盖正文的字号/行高:源码要看对齐,行高比正文紧凑一些 */\n font-size: calc(var(--md-editor-font-size) * 0.92);\n line-height: 1.7;\n font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;\n}\n\n/* 源码模式下唯一的那个代码块:铺满、无内边距偏色,让整体像一块编辑画布 */\n.md-filecat .md-filecat-content.md-source-mode pre {\n background: transparent;\n border-radius: 0;\n padding: 0;\n /* 长行不折行,超出时在代码块内部横向滚动(与代码编辑器一致)。\n 注意这里必须是 auto 而不是 hidden,否则长行会被裁掉看不见。 */\n overflow-x: auto;\n line-height: inherit;\n}\n\n.md-filecat .md-filecat-content.md-source-mode pre code {\n font-family: inherit;\n font-size: 1em;\n /* 必须用 pre:ProseMirror 渲染 code_block 时的「坐标 → 文本位置」映射\n 依赖每个字符的实际排版位置。改成 pre-wrap 虽然能自动换行,\n 但软换行会让浏览器把换行符前后的位置算偏,表现为点一行却落到别处、\n 打字时把多行文本并成一行。\n 长行不折行,靠外层横向滚动查看(与代码编辑器一致)。 */\n white-space: pre;\n overflow-wrap: normal;\n /* 主题适配的正文色;着色交给下面的 hljs-* 类 */\n color: var(--textPrimary, #24292e);\n}\n\n/* 源码模式的底色块:正文区域铺一层极淡的底,与页面背景区分开,\n 让用户一眼看出「现在是源码视图」。用 --hover 以自动适配明暗主题。 */\n.md-editor-sheet:has(.md-source-mode) {\n padding-top: 0.5em;\n padding-bottom: 0.5em;\n}\n\n/* ---------- 源码模式的 Markdown 语法高亮 ----------\n 颜色值取自 highlight.js 官方的 github / github-dark 两个主题,\n 但直接写在这里而不是引整个 CSS 文件:\n 项目预览页(Md.tsx)引的是暗色版,若这里再引一份浅色版会互相覆盖。\n 明暗两套用 .dark 前缀区分(与项目主题切换方式一致)。 */\n\n/* 标题行(# ~ ######):加粗并放大一点,一眼可辨层级 */\n.hljs-section {\n font-weight: 700;\n color: #005cc5;\n}\n.dark .hljs-section {\n color: #79b8ff;\n}\n\n/* 强调类:粗体、斜体、删除线 */\n.hljs-strong {\n font-weight: 700;\n color: #24292e;\n}\n.dark .hljs-strong {\n color: #e1e4e8;\n}\n\n.hljs-emphasis {\n font-style: italic;\n color: #24292e;\n}\n.dark .hljs-emphasis {\n color: #e1e4e8;\n}\n\n/* 行内代码与围栏代码块 */\n.hljs-code {\n color: #032f62;\n background: rgba(27, 31, 35, 0.06);\n border-radius: 3px;\n padding: 0.1em 0.3em;\n}\n.dark .hljs-code {\n color: #9ecbff;\n background: rgba(255, 255, 255, 0.08);\n}\n\n/* 引用块 */\n.hljs-quote {\n color: #6a737d;\n}\n.dark .hljs-quote {\n color: #8b949e;\n}\n\n/* 链接与图片地址 */\n.hljs-link,\n.hljs-symbol {\n color: #005cc5;\n}\n.dark .hljs-link,\n.dark .hljs-symbol {\n color: #79b8ff;\n}\n\n/* 列表标记 */\n.hljs-bullet {\n color: #e36209;\n}\n.dark .hljs-bullet {\n color: #ffab70;\n}\n\n/* 围栏代码块的语言标记、注释 */\n.hljs-meta,\n.hljs-comment {\n color: #6a737d;\n}\n.dark .hljs-meta,\n.dark .hljs-comment {\n color: #8b949e;\n}\n\n/* 代码块内的关键字/字符串/数字等,由 highlight.js 按语言给出 */\n.hljs-keyword,\n.hljs-built_in,\n.hljs-type {\n color: #d73a49;\n}\n.dark .hljs-keyword,\n.dark .hljs-built_in,\n.dark .hljs-type {\n color: #f97583;\n}\n\n.hljs-string,\n.hljs-attr,\n.hljs-attribute {\n color: #032f62;\n}\n.dark .hljs-string,\n.dark .hljs-attr,\n.dark .hljs-attribute {\n color: #9ecbff;\n}\n\n.hljs-number,\n.hljs-literal {\n color: #005cc5;\n}\n.dark .hljs-number,\n.dark .hljs-literal {\n color: #79b8ff;\n}\n\n.hljs-title,\n.hljs-function {\n color: #6f42c1;\n}\n.dark .hljs-title,\n.dark .hljs-function {\n color: #b392f0;\n}\n\n/* ---------- 编辑器设置页(独立路由 /md_editor_setting_page) ---------- */\n\n/* 设置表单:字段纵向排列,每个字段 label 在上、控件在下 */\n.md-setting-form {\n display: flex;\n flex-direction: column;\n gap: 0.9em;\n}\n\n.md-editor-setting-page__desc {\n margin: 0 0 0.6em;\n color: var(--textSecondary, #5f6368);\n font-size: 0.9em;\n}\n\n/* 预览区:直接复用编辑器那套 CSS 变量,所以所见即所得。\n 这里的声明同样只是 JS 注入前的占位(为了让 VS Code 能解析变量名)。 */\n.md-editor-setting-page__preview {\n --md-editor-max-width: 90%;\n --md-editor-padding: 4%;\n --md-editor-font-size: 16px;\n --md-editor-line-height: 1.8;\n border: 1px dashed var(--divider, #e1e4e8);\n border-radius: 4px;\n overflow: auto;\n max-height: 60vh;\n}\n\n.md-editor-setting-page__preview-sheet {\n /* 与 .md-editor-sheet 使用完全相同的变量与限宽规则 */\n max-width: var(--md-editor-max-width);\n margin: 0 auto;\n padding: 0 var(--md-editor-padding);\n font-size: var(--md-editor-font-size);\n line-height: var(--md-editor-line-height);\n color: var(--textPrimary, #202124);\n}\n\n.md-editor-setting-page__preview-sheet p {\n margin: 0.6em 0;\n}\n\n/* ---------- 主题编辑页(独立路由 /md_theme_editor_page) ---------- */\n\n/* 左右分栏:左侧 css 编辑,右侧实时预览 */\n.md-theme-editor {\n display: flex;\n gap: 1em;\n padding: 1em;\n box-sizing: border-box;\n align-items: flex-start;\n}\n\n.md-theme-editor__left,\n.md-theme-editor__right {\n flex: 1 1 0;\n min-width: 0;\n}\n\n/* Ace 挂载点:容器必须有确定高度,Ace 内部用的是 height:100%,\n 父级高度为 auto 时会算成 0,表现为编辑区一片空白无法输入 */\n.md-theme-editor__ace {\n height: calc(100vh - 18em);\n min-height: 20em;\n margin-top: 0.6em;\n border: 1px solid var(--divider, #e1e4e8);\n border-radius: 4px;\n overflow: hidden;\n}\n\n.md-theme-editor__tip {\n color: var(--textSecondary, #5f6368);\n font-size: 0.9em;\n}\n\n/* 预览区:容器类名与编辑器一致,主题在这里的表现与编辑器里相同 */\n.md-theme-preview {\n background: var(--surfaceSecondary, #f6f6f6);\n border-radius: 4px;\n /*padding: 1em 0;*/\n /* 内容比左侧 Ace 高时自己滚动,避免把整页撑得很长 */\n max-height: calc(100vh - 14em);\n overflow: auto;\n}\n\n.md-theme-preview .md-editor-sheet {\n /* 底色由主题写在 .md-editor-scroll 上,这里只管预览纸张的圆角与阴影 */\n border-radius: 4px;\n box-shadow: 0 0 6px rgba(0, 0, 0, 0.08);\n}\n\n/* 预览里也放了一层 .md-editor-scroll(为了让主题的整页底色规则同样生效),\n 但它不是编辑器的滚动容器,要去掉编辑器那套 flex 撑满行为,改为随内容自然增高 */\n.md-theme-preview .md-editor-scroll,\n.md-editor-setting-page__preview .md-editor-scroll {\n flex: none;\n height: auto;\n display: block;\n overflow: visible;\n padding: 1em 0;\n}\n\n.md-theme-preview .md-filecat-content {\n padding: 1.5em 2em;\n}\n\n/* ============ 打印 / 导出 PDF ============\n 编辑器是全屏 fixed 覆盖层,且正文装在 overflow:auto 的滚动容器里。\n 打印时必须把这两层限制全部拆掉,否则只能打出当前可见的一屏。\n 只保留正文纸张,UI(Header、工具栏、大纲、滚动条)一律隐藏。 */\n@media print {\n /* 页面背景与边距交给纸张设置,去掉屏幕上的底色 */\n html, body {\n background: #fff !important;\n height: auto !important;\n overflow: visible !important;\n }\n\n /* 编辑器外壳:拆掉 fixed 全屏、flex 布局与 overflow 限制,\n 让内容自然撑开参与分页(flex 列容器无法分页,会让打印预览卡住或只出一页) */\n #md-editor-container {\n display: block !important;\n position: static !important;\n height: auto !important;\n width: auto !important;\n overflow: visible !important;\n background: #fff !important;\n z-index: auto !important;\n }\n\n /* 内容区与滚动容器同样恢复为常规文档流 */\n #md-editor-container .md-editor-context,\n .md-editor-scroll,\n .md-editor-sheet,\n /* .md-filecat 上的 flex:1 会把正文压成一屏,必须拆掉才能真正分页 */\n .md-filecat {\n display: block !important;\n flex: none !important;\n min-height: 0 !important;\n height: auto !important;\n overflow: visible !important;\n max-width: none !important;\n width: auto !important;\n padding: 0 !important;\n margin: 0 !important;\n }\n\n /* 正文容器保留自身的段落间距,只取消 flex 撑满,让内容随纸张自然增高 */\n .md-filecat-content {\n display: block !important;\n flex: none !important;\n min-height: 0 !important;\n height: auto !important;\n overflow: visible !important;\n }\n\n /* 编辑器 UI 一律不打印:\n Header、左侧大纲、拖拽分隔条与遮罩、悬浮格式工具栏等。\n 注意:编辑器浮层挂在 #root 下,与文件管理器页面的 header / nav / main 是兄弟关系,\n 它们同样会被打印进去,必须一并隐藏,只留编辑器自身。\n 整段用 body:has(#md-editor-container) 限定,只在编辑器打开时生效,\n 避免用户直接 Ctrl+P 打印文件列表时被误伤成白页。 */\n body:has(#md-editor-container) #root > :not(#md-editor-container),\n #md-editor-container > .header,\n #md-editor-container .md-outline-panel,\n #md-editor-container .md-editor-divider,\n #md-editor-container .md-editor-drag-overlay,\n #md-editor-container .mdtb {\n display: none !important;\n }\n\n /* 标题后面不跟着换页,避免出现孤立标题 */\n .md-editor-sheet h1, .md-editor-sheet h2,\n .md-editor-sheet h3, .md-editor-sheet h4,\n .md-editor-sheet h5, .md-editor-sheet h6 {\n break-after: avoid;\n page-break-after: avoid;\n }\n\n /* 代码块、表格、图片、引用整块不跨页断开 */\n .md-editor-sheet pre,\n .md-editor-sheet table,\n .md-editor-sheet img,\n .md-editor-sheet blockquote {\n break-inside: avoid;\n page-break-inside: avoid;\n }\n\n /* 表格可能很宽,允许内部换行自适应纸张宽度 */\n .md-editor-sheet table {\n width: 100% !important;\n }\n}\n\n/* 光标不在图形代码块内时,源码块整体隐藏,只留渲染出来的图 */\n.md-graph-hidden {\n display: none;\n}\n/* ---- \`\`\`mermaid / \`\`\`svg 代码块的图形预览 ---- */\n/* 光标移出代码块后,整块替换成渲染出来的图;点图放大,点右上角按钮回到源码编辑 */\n.md-graph {\n position: relative;\n margin: 0.5em 0 1em;\n padding: 0.5em;\n border: 1px solid var(--divider);\n border-radius: 4px;\n background: var(--surfacePrimary);\n text-align: center;\n user-select: none;\n}\n\n/* 图区域:点一下全屏放大看细节 */\n.md-graph__body {\n cursor: zoom-in;\n}\n\n/* 悬停时才出现的「点击编辑」按钮,不与正文抢占视觉。\n 必须 pointer-events:auto —— 它是进入编辑的唯一入口,不能被穿透掉。 */\n.md-graph__edit {\n position: absolute;\n top: 0.35em;\n right: 0.6em;\n font-size: 0.75em;\n font-family: inherit;\n line-height: 1.6;\n padding: 0 0.45em;\n border: 0;\n border-radius: 3px;\n color: var(--textSecondary);\n background: var(--hover);\n opacity: 0;\n transition: opacity 0.15s ease;\n cursor: pointer;\n}\n\n.md-graph:hover .md-graph__edit {\n opacity: 1;\n}\n\n.md-graph__edit:hover {\n color: var(--textPrimary);\n}\n\n/* 语法错误时没有图可放大,也不该给出编辑入口以外的暗示 */\n.md-graph--error .md-graph__body {\n cursor: default;\n}\n\n/* ---- \`\`\`smm-mind 思维导图 ---- */\n/* 导图是交互式组件(可缩放/平移),不是静态图:给固定高度并铺满宽度。\n 注意 simple-mind-map 会直接把画布挂在传入的容器上(容器即 .md-graph--mind),\n 没有 .md-graph__body 这一层,所以高度必须写在容器自身上。 */\n.md-graph--mind {\n height: 360px;\n /* 导图需要确定的画布尺寸;父容器是收缩宽度时也要撑开 */\n width: 100%;\n min-width: 320px;\n box-sizing: border-box;\n padding: 0;\n text-align: left;\n overflow: hidden;\n cursor: default;\n}\n\n/* 导图实例的挂载点:外层负责拦滚轮,实例挂在这一层(见 mind_graph.mount) */\n.md-graph__mind-host {\n width: 100%;\n height: 100%;\n}\n\n/* 全屏放大:铺满遮罩。\n 用视口尺寸而不是 100% —— 遮罩内层是按内容收缩的 flex 容器,\n 百分比高度算不出确定值,simple-mind-map 会因容器宽高为 0 而报错。 */\n/* ---- 图形全屏放大 ---- */\n/* z-index 高于 md 编辑器(1000),保证在编辑器之上打开;\n 深浅主题都用近黑底,突出图形本身 */\n.md-graph-zoom {\n position: fixed;\n inset: 0;\n z-index: 1200;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 3em;\n box-sizing: border-box;\n background: rgba(0, 0, 0, 0.9);\n cursor: zoom-out;\n}\n\n.md-graph-zoom__body {\n max-width: 100%;\n max-height: 100%;\n overflow: auto;\n cursor: default;\n}\n\n/* 放大的图形铺满可用空间,长宽都自适应 */\n.md-graph-zoom__body svg {\n max-width: 100%;\n max-height: 100%;\n height: auto;\n}\n\n.md-graph-zoom__close {\n position: absolute;\n top: 0.6em;\n right: 0.8em;\n border: 0;\n padding: 0.2em;\n background: transparent;\n color: #fff;\n cursor: pointer;\n}\n\n/* 渲染中:虚边框提示还没好 */\n.md-graph--loading {\n border-style: dashed;\n}\n\n.md-graph--loading .md-graph__body {\n color: var(--textSecondary);\n font-size: 0.85em;\n}\n\n/* 语法错误:红色提示,不打断编辑 */\n.md-graph--error {\n color: #d93025;\n font-size: 0.85em;\n text-align: left;\n white-space: pre-wrap;\n}\n\n.md-graph--error .md-graph__body {\n border: 1px solid rgba(217, 48, 37, 0.35);\n border-radius: 4px;\n background: rgba(217, 48, 37, 0.04);\n padding: 0.5em;\n}\n\n/* 生成或手写的 SVG 都自适应宽度 */\n.md-graph svg {\n max-width: 100%;\n height: auto;\n}\n\n/* ---- 图片语法引用的本地图形文件(.mermaid / .mind)----\n 这类引用走图片语法 ![](...),image 是行内节点、被包在段落 <p> 里,\n 所以容器本身用 span + display:block 让它独占一行,\n 避免用 div 导致「div 嵌 p」的非法结构。 */\n.md-graph--file {\n display: block;\n width: 100%;\n box-sizing: border-box;\n text-align: center;\n}\n\n/* 导图文件(.mind):与代码块导图一致,需要确定高度给画布用 */\n.md-graph--file.md-graph--mind {\n height: 360px;\n}\n\n.md-graph--file.md-graph--mind .md-graph__mind-host {\n width: 100%;\n height: 100%;\n}\n\n/* 图片默认画成问号占位,加载成功后再摘掉标记、露出真图。\n 为什么用「默认失败」而不是「默认正常、失败才换」:\n 文件不存在时后端返回的不是 404 而是 200 + JSON 错误体,\n 请求还可能挂着不回 —— 浏览器既不触发 error 也不结束,没有可靠的失败信号。\n 反过来做就没这个问题:占位先摆上,load 事件一到立刻换成真图,\n 中间最多是一瞬间的问号,不存在「等半天啥也没有」。 */\n.md-filecat img[data-img-error] {\n display: inline-block;\n box-sizing: border-box;\n /* 尺寸用 px:这个规则里把 font-size 归零了(为了藏掉 alt 文字),\n 再用 em 会算出 0 —— 之前就是这么把占位框压成了一条缝。 */\n width: 48px !important;\n height: 48px !important;\n border: 1px dashed var(--divider);\n border-radius: 4px;\n background-color: var(--surfaceSecondary);\n /* 用背景图放问号:不污染 DOM、不会被 ProseMirror 重建冲掉 */\n background-image: url(${d});\n background-repeat: no-repeat;\n background-position: center;\n background-size: 24px;\n /* 吃掉 alt 文字:alt 会渲染成一行小字,和问号叠在一起很乱 */\n color: transparent;\n font-size: 0;\n vertical-align: middle;\n}\n\n/* ---- Markdown 里内嵌的 HTML ---- */\n/* Markdown 允许直接写 HTML(README 那种 <p align="center"> 包徽章)。\n 这里默认渲染成真 HTML,右上角有个 HTML 标签,点一下原地展开成源码可编辑。 */\n.md-html-block {\n position: relative;\n /* 垂直间距不用这里操心:NodeView 的根元素就是文档的直接子块,\n 已经吃到 \`.md-filecat-content > *\` 的上下 padding 了。 */\n}\n\n/* 标签:常态完全隐藏,鼠标移到这个 HTML 块上才出现 */\n.md-html-block__toggle {\n position: absolute;\n top: 0;\n right: 0;\n font-size: 0.7em;\n line-height: 1.6;\n padding: 0 0.4em;\n border-radius: 3px;\n color: var(--textSecondary);\n background: var(--hover);\n opacity: 0;\n cursor: pointer;\n user-select: none;\n transition: opacity 0.15s ease;\n z-index: 1;\n}\n\n.md-html-block:hover .md-html-block__toggle {\n opacity: 1;\n}\n\n/* 源码态的标签用主题色并常驻显示(对应 Typora 的 HTML ✓)——\n 此时块内容已经是源码,标签是收起的唯一入口,不能藏起来 */\n.md-html-block[data-mode="source"] .md-html-block__toggle {\n opacity: 1;\n color: var(--blue);\n}\n\n/* 预览态:渲染出的 HTML 原样展示 */\n.md-html-block__render {\n display: block;\n /* 复位空白处理方式。\n 编辑器为了保留 Markdown 的空白,在容器上设了 white-space: break-spaces,\n 它会继承进来 —— 结果 HTML 源码里标签之间的换行、缩进被当成真实的换行与空格,\n 一块只有一张 70px 图片的 <p> 会被撑到 84px(多出一整行)。\n HTML 有它自己的空白折叠规则,这里必须复位成正常模式。 */\n white-space: normal;\n}\n\n/* HTML 块内部的元素不接受编辑器正文的块间距。\n 原因:作者写的 HTML 往往自己控制版式(居中、并排、贴边),\n 编辑器给 p/h* 的 padding、margin、字号会把它们撑开、破坏原本紧凑的排版。\n 清零后用作者自己的样式(如 align/center、inline style)说了算。\n\n 注意:这里同时清 padding 和 margin —— 编辑器的块间距是 padding,\n 而 HTML 里没被覆盖到的元素会用浏览器默认的 margin,两者都会撑高。 */\n.md-html-block__render > *:first-child {\n margin-top: 0;\n padding-top: 0;\n}\n\n.md-html-block__render > *:last-child {\n margin-bottom: 0;\n padding-bottom: 0;\n}\n\n.md-html-block__render p,\n.md-html-block__render h1,\n.md-html-block__render h2,\n.md-html-block__render h3,\n.md-html-block__render h4,\n.md-html-block__render h5,\n.md-html-block__render h6,\n.md-html-block__render ul,\n.md-html-block__render ol,\n.md-html-block__render pre,\n.md-html-block__render table,\n.md-html-block__render blockquote {\n margin: 0;\n padding: 0;\n border: 0;\n line-height: 1.5;\n}\n\n/* 标题在 HTML 块里不套用正文的层级字号 —— 作者写 <h1 align="center"> 时\n 期望的是「一个居中标题」,不该被放大到 1.9em 再压一条底边线。 */\n.md-html-block__render h1,\n.md-html-block__render h2,\n.md-html-block__render h3 {\n font-size: 1.35em;\n}\n\n.md-html-block__render h4,\n.md-html-block__render h5,\n.md-html-block__render h6 {\n font-size: 1.05em;\n}\n\n/* HTML 里的图片按块级处理,避免行内图片底部的基线空隙把行高撑大 */\n.md-html-block__render img {\n vertical-align: middle;\n}\n\n/* 源码态:整块换成等宽源码,灰底、可编辑。\n 内部是两层叠放 —— 下层高亮 <pre>,上层透明文字的 <textarea>。\n 两层的字体、字号、行高、内边距必须完全一致,否则文字会和光标错位。\n 高度不固定:内容多高就多高,横向溢出才出现滚动(代码不折行)。 */\n.md-html-block__source {\n display: none;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n background: var(--surfaceSecondary);\n}\n\n/* 两层共用的排版参数。写在同一个规则里,避免只改一处导致错位。\n 内边距用 px 而不是 em:em 跟着元素自身的 font-size 走,\n 两层一旦 font-size 的计算来源不同(textarea 有浏览器默认样式),\n 算出来的内边距就不一样,文字会和光标错位。\n 选择器带 .md-filecat 前缀是为了压过正文的 \`.md-filecat pre\` 规则\n (那条会给 pre 加 padding 和 line-height,会把高亮层撑歪)。 */\n.md-filecat .md-html-block__highlight,\n.md-filecat .md-html-block__input {\n margin: 0;\n padding: 8px 11px;\n border: 0;\n font-family: "Roboto Mono", Consolas, Monaco, monospace;\n font-size: 13.6px;\n line-height: 20.4px;\n tab-size: 4;\n white-space: pre;\n}\n\n/* 高亮层:负责撑开整块高度(它随内容自然增长),同时作为可见的文字层。\n 横向溢出时由它滚动,纵向不滚 —— 高度已经跟着内容走了。 */\n.md-filecat .md-html-block__highlight {\n position: relative;\n overflow-x: auto;\n overflow-y: hidden;\n pointer-events: none;\n color: var(--textPrimary);\n}\n\n/* 高亮层里的 code 沿用父级排版:正文给 \`pre code\` 的样式会干扰对齐 */\n.md-filecat .md-html-block__highlight code {\n font: inherit;\n line-height: inherit;\n background: none;\n padding: 0;\n color: inherit;\n}\n\n/* 输入层:文字透明,光标和选区看得见 ——\n 真正在编辑的是它,但看到的字来自下面的高亮层。\n 绝对定位铺满父容器,所以自身不参与高度计算。 */\n.md-filecat .md-html-block__input {\n position: absolute;\n top: 0;\n left: 0;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n resize: none;\n overflow: hidden;\n background: transparent;\n color: transparent;\n caret-color: var(--textPrimary);\n outline: none;\n}\n\n/* 选区要能在透明文字上看见 */\n.md-filecat .md-html-block__input::selection {\n background: var(--blue);\n color: transparent;\n}\n\n.md-html-block[data-mode="source"] .md-html-block__render {\n display: none;\n}\n\n.md-html-block[data-mode="source"] .md-html-block__source {\n display: block;\n}\n\n/* HTML 里显式写的 text-align: -webkit-center(浏览器对 align="center" 的内部映射)\n 在部分场景下不可靠,这里显式补一条 */\n.md-html-block [align="center"] {\n text-align: center;\n}\n\n/* 行内 HTML:原文可编辑,用淡色区分出「这是标签不是正文」 */\n.md-html-inline {\n font-family: "Roboto Mono", Consolas, Monaco, monospace;\n font-size: 0.9em;\n color: var(--textSecondary);\n outline: none;\n}\n\n/* ---- 数学公式 ---- */\n/* 编辑器与预览页共用同一套 DOM 结构(见 md_math.ts / md_math_view.ts),\n 所以这里只需要写一份样式,两处观感自动一致 */\n\n/* 块级公式:独立成行,居中(LaTeX 的标准排布) */\n.md-math--block {\n display: block;\n margin: 1em 0;\n text-align: center;\n /* 公式可能很宽,横向溢出时允许滚动而不是撑破纸张 */\n overflow-x: auto;\n overflow-y: hidden;\n}\n\n/* 行内公式:跟着文字走,不改变行高 */\n.md-math--inline {\n display: inline-block;\n vertical-align: baseline;\n max-width: 100%;\n}\n\n.md-math__render {\n display: inline-block;\n max-width: 100%;\n}\n\n/* 渲染中:先原样显示 LaTeX 源码,用户至少能看到自己写的东西 */\n.md-math--loading .md-math__render {\n color: var(--textSecondary);\n font-family: "Roboto Mono", Consolas, Monaco, monospace;\n font-size: 0.9em;\n}\n\n/* 语法错误:保留源码 + 红色提示,方便对照着改。\n 公式在编辑过程中天然会有一段时间不合法,绝不能因为写错就变成空白 */\n.md-math--error .md-math__render {\n color: #d93025;\n font-family: "Roboto Mono", Consolas, Monaco, monospace;\n font-size: 0.9em;\n white-space: pre-wrap;\n text-align: left;\n display: block;\n border: 1px solid rgba(217, 48, 37, 0.35);\n border-radius: 4px;\n background: rgba(217, 48, 37, 0.04);\n padding: 0.4em 0.6em;\n}\n\n/* 光标进入公式时的源码编辑框:等宽字体、无边框融进正文,\n 高度跟着内容走(在 JS 里算),不出现纵向滚动条 */\n.md-math__source {\n display: block;\n width: 100%;\n box-sizing: border-box;\n resize: none;\n border: none;\n outline: none;\n background: transparent;\n color: var(--textPrimary);\n font-family: "Roboto Mono", Consolas, Monaco, monospace;\n font-size: 0.9em;\n line-height: 1.6;\n padding: 0.2em 0;\n /* 横向溢出不换行,让用户看清自己写的一整行 LaTeX */\n white-space: pre;\n overflow-x: auto;\n overflow-y: hidden;\n}\n\n/* 预览态下源码框不占位;编辑态下渲染结果不占位 ——\n 两者二选一显示,避免同一块地方出现两遍内容 */\n.md-math[data-mode="preview"] .md-math__source {\n display: none;\n}\n\n.md-math[data-mode="source"] .md-math__render {\n display: none;\n}\n\n/* 编辑态的行内公式要左对齐,否则光标在居中块里不好定位 */\n.md-math--block[data-mode="source"] {\n text-align: left;\n}\n\n/* 公式在打印时按矢量渲染,不要被截断 */\n@media print {\n .md-math--block {\n overflow: visible;\n }\n}\n`,""]);const h=u;n.d(t,["A",0,h])},78425(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,"@media (max-width: 1024px) {\n nav {\n width: 10em\n }\n}\n\n@media (max-width: 1024px) {\n main {\n width: calc(100% - 13em)\n }\n #md-container .md-context {\n padding-left: 2%;\n padding-right: 2%;\n }\n}\n\n@media (max-width: 736px) {\n body {\n padding-bottom: 1em;\n }\n #listing.list .item .size {\n display: none;\n }\n #listing.list .item .name {\n width: 60%;\n }\n #more {\n display: inherit\n }\n header .overlay {\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.1);\n }\n #dropdown {\n position: fixed;\n top: 1em;\n right: 1em;\n display: block;\n background-color: #fff;\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);\n transform: scale(0);\n transition: .1s ease-in-out transform;\n transform-origin: top right;\n z-index: 999;\n }\n\n body.rtl #dropdown {\n right: unset;\n left: 1em;\n transform-origin: top left;\n }\n\n #dropdown > div {\n display: block;\n }\n #dropdown.active {\n transform: scale(1);\n }\n #dropdown .action {\n display: flex;\n align-items: center;\n border-radius: 0;\n width: 100%;\n }\n #dropdown .action span:not(.counter) {\n display: inline-block;\n padding: .4em;\n }\n #dropdown .counter {\n left: 2.25em;\n }\n #file-selection {\n position: fixed;\n bottom: 1em;\n left: 50%;\n transform: translateX(-50%);\n display: flex;\n align-items: center;\n background: #fff;\n box-shadow: rgba(0, 0, 0, 0.06) 0px 1px 3px, rgba(0, 0, 0, 0.12) 0px 1px 2px;\n width: 95%;\n max-width: 20em;\n z-index: 1;\n }\n #file-selection .action {\n border-radius: 50%;\n width: auto;\n }\n #file-selection > span {\n display: inline-block;\n margin-left: 1em;\n color: #6f6f6f;\n margin-right: auto;\n }\n #file-selection .action span {\n display: none;\n }\n nav {\n top: 0;\n z-index: 1002;\n background: #fff;\n height: 100%;\n width: 13em;\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);\n /*transition: .1s ease left;*/\n left: -17em;\n padding-top: 0;\n }\n\n body.rtl nav {\n left: unset;\n right: -17em;\n }\n nav.active {\n left: 0;\n }\n\n body.rtl nav.active {\n left: unset;\n right: 0;\n }\n\n .shell__divider {\n height: 12px;\n }\n\n header .menu-button {\n display: inherit;\n }\n header img {\n display: none;\n }\n\n .header .header-menu {\n display: block;\n }\n\n .layout-nav-overlay {\n display: block;\n }\n\n #listing {\n margin-bottom: 5em;\n }\n\n body.rtl #listing {\n margin-right: unset;\n }\n\n body.rtl .breadcrumbs {\n transform: translateX(16em);\n }\n\n body.rtl #nav .wrapper {\n margin-right: unset;\n }\n\n body.rtl .dashboard .row {\n margin-right: unset;\n }\n\n main {\n margin: 0 1em;\n width: calc(100% - 2em);\n }\n\n main.nav-collapsed {\n width: calc(100% - 2em);\n }\n .filecat-search-box--mobile-hidden {\n display: none;\n }\n .chat-input-area {\n padding: 0 16px;\n }\n /* 移动端隐藏输入框拖动条 */\n .chat-input-resize-handle {\n display: none;\n }\n .chat-input-overlay {\n display: none;\n }\n\n .header .header-nav-toggle {\n display: none;\n }\n\n #md-container .md-context {\n padding-left: 2%;\n padding-right: 2%;\n }\n}\n\n@media (max-width: 450px) {\n #listing.list .item .modified {\n display: none;\n }\n #listing.list .item .name {\n width: 100%;\n }\n}\n\n/* 只有鼠标设备才会应用这段样式 hover的值是hover */\n@media (hover: hover) {\n .action:hover {\n background-color: rgba(0, 0, 0, 0.1);\n }\n .action ul li:hover {\n background-color: rgba(0, 0, 0, 0.04);\n }\n .nav_2:hover {\n background-color: rgba(0, 0, 0, 0.1);\n }\n}\n",""]);const a=s;n.d(t,["A",0,a])},98673(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,"/* 目录挂载:挂载目录在文件列表里的特殊标识 */\n\n/*\n * 挂载目录通过云朵图标区分(见 listing-icons.css),不再使用背景色,\n * 双击进入等交互与普通目录完全一致。\n */\n\n/* 只读挂载的小标签 */\n#listing .item .mount-readonly-tag,\n.mount-tip-bar .mount-readonly-tag {\n display: inline-block;\n margin-left: 0.35em;\n padding: 0 0.3em;\n font-size: 0.75em;\n line-height: 1.5;\n border-radius: 0.2em;\n background-color: var(--hover);\n color: var(--textSecondary);\n vertical-align: middle;\n}\n\n/*\n * 进入挂载目录后,列表顶部的提示条(面包屑下方)。\n * 左侧竖线用挂载标识色,与列表项的底色呼应。\n */\n.mount-tip-bar {\n display: flex;\n align-items: center;\n gap: 0.4em;\n margin: 0.3em 0;\n padding: 0.3em 0.6em;\n border-left: 3px solid var(--blue);\n border-radius: 0.2em;\n background-color: var(--hover);\n color: var(--textSecondary);\n font-size: 0.9em;\n}\n\n.mount-tip-bar .material-icons {\n font-size: 1.1em;\n}\n\n/* 挂载设置里的操作按钮排:横排居中,与项目其它页面按钮风格一致 */\n.mount-actions {\n justify-content: center;\n gap: 0.4rem;\n}\n",""]);const a=s;n.d(t,["A",0,a])},52821(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,'\n.nav_list_a {\n --link-border-style: none;\n --link-color: var(--blue);\n align-items: center;\n background: rgba(0, 0, 0, .05);\n border-radius: .2em;\n display: flex;\n flex-shrink: 0;\n padding-bottom: 0.6rem;\n padding-top: 0.6rem;\n padding-left: 1rem;\n padding-right: 1rem;\n transition: all .2s ease-out;\n text-decoration: none;\n position: relative;\n margin: 1rem;\n color: var(--textBlack);\n}\n/* 在链接上悬停时显示灰色遮罩 */\n.nav_list_a:hover::before {\n content: "";\n /* 绝对定位,铺满链接 */\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n /* 设置背景颜色为半透明灰色 */\n background-color: rgba(0, 0, 0, .08);\n /* 隐藏遮罩层 */\n opacity: 0;\n /* 过渡效果 */\n transition: opacity 0.3s ease;\n border-radius: .2em;\n}\n\n/* 在链接上悬停时显示灰色遮罩 */\n.nav_list_a:hover::before {\n /* 显示遮罩层 */\n opacity: 1;\n}\n.nav_list_div {\n padding: 2rem;\n -ms-overflow-style: none;\n\n display: flex;\n flex-wrap: wrap;\n\n gap: 8px;\n\n margin: 0 -20px;\n\n overflow-x: auto;\n scrollbar-width: none;\n\n width: 100%;\n\n align-items: flex-start;\n align-content: flex-start;\n}\n\n',""]);const a=s;n.d(t,["A",0,a])},54622(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,'\n.studio__divider {\n position: relative;\n height: 100%;\n width: 8px;\n z-index: 1000;\n background: rgba(127, 127, 127, 0.1);\n transition: 0.2s ease background;\n cursor: ew-resize;\n touch-action: none;\n user-select: none;\n}\n\n.studio {\n user-select: none;\n display: flex;\n flex-direction: column;\n background-color: #ffffff;\n position: fixed;\n padding-top: 4em;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n z-index: 999;\n}\n.studio .studio-body {\n padding-top: .5em;\n /*padding-left: 16rem;*/\n padding-bottom: 2em;\n width: 100%;\n height: 100%;\n display: flex;\n flex-grow: 1; /* 子项将等比例扩展 */\n}\n\n.studio .studio-nav {\n /*width: 16em;*/\n /*position: fixed;*/\n /*top: 4em;*/\n /*left: 0;*/\n /*z-index: 1;*/\n height: 100%;\n background: #fafafa;\n overflow:auto;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* 下面几条只针对「文件页」(Studio 打开文件夹),不影响 GitStudio ——\n 两者共用 .studio-nav / .studio-editor / .studio__divider 这几个类名。 */\n/* 纵向布局:内容区滚动,底部的「大纲/目录」切换按钮固定 */\n.studio--file .studio-nav {\n display: flex;\n flex-direction: column;\n flex-shrink: 0; /* 宽度由内联样式给定,不允许被右侧编辑器压缩 */\n}\n\n/* 面板内容区(目录树 / 大纲)撑满剩余高度并自己滚动 */\n.studio--file .studio-nav > *:not(.studio-nav-switch) {\n flex: 1;\n min-height: 0;\n overflow: auto;\n}\n\n.studio-nav .studio-item{\n padding-top: .5rem;\n cursor: default;\n text-overflow: ellipsis;\n /*border-left: #1b6d85 1px solid;*/\n}\n\n.studio-item * {\n vertical-align: middle;\n}\n\n.studio-item-title {\n /*overflow: hidden;*/\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.studio-item-title [file-type="folder"]\n{ color: var(--icon-blue) }\n\n.studio-item-title [file-type="file"]\n{ color: var(--iconTertiary) }\n\n.studio-item-title:hover *\n{\n color: var(--hover) ;\n}\n\n/* 当前打开/选中文件的树行常驻高亮(与 hover 区分开,hover 只改文字色)\n 注意:主题里 `.studio .studio-nav,.studio-nav div,.studio-body { background: var(--surfacePrimary) !important }`\n 用了 !important 把背景压成白色,这里必须同样用 !important 才能覆盖 */\n.studio-nav .studio-item-title--active {\n background: var(--primary-light, #d2e3fc) !important;\n border-radius: 2px;\n}\n\n.studio-item-title-tag {\n width: 1.5rem;\n}\n.studio-item-name {\n text-overflow: ellipsis;\n padding-left: .3rem;\n}\n\n.studio-editor {\n min-height: 1em;\n min-width: 0;\n margin: 0 1em 1em auto;\n flex-grow: 1; /* 占据剩余的所有宽度 */\n overflow: hidden;\n height:100%\n}\n\n/* md 编辑器的容器:md 自己带内边距与纸张,这里只负责撑满,不要再加外边距。\n 仅文件页使用,GitStudio 的编辑区不受影响。 */\n.studio--file .studio-editor--md {\n flex-basis: 0;\n margin: 0;\n display: flex;\n}\n\n/* 左侧面板底部的「大纲 ⇄ 目录」切换按钮 */\n.studio-nav-switch {\n flex-shrink: 0;\n display: flex;\n justify-content: flex-start;\n padding: 0.25em 0.5em;\n border-top: 1px solid var(--divider, #e8eaed);\n}\n\n/* ===== GitStudio 专用样式 ===== */\n.git-studio-select-all {\n padding: 6px 12px;\n border-bottom: 1px solid var(--divider, rgba(0,0,0,0.08));\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 12px;\n color: var(--textSecondary, #5f6368);\n cursor: pointer;\n}\n.git-studio-file-item {\n padding: 8px 12px;\n cursor: pointer;\n border-bottom: 1px solid var(--divider, rgba(0,0,0,0.08));\n display: flex;\n align-items: center;\n gap: 8px;\n transition: background 0.2s;\n}\n.git-studio-file-item--selected {\n background: var(--primary-light, #d2e3fc);\n}\n.git-studio-status-badge {\n font-size: 11px;\n font-weight: 600;\n width: 20px;\n height: 20px;\n border-radius: 4px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: #fff;\n flex-shrink: 0;\n}\n.git-studio-filename {\n font-size: 13px;\n color: var(--textPrimary, #202124);\n word-break: break-all;\n}\n.git-studio-log-entry {\n padding: 10px 12px;\n border-bottom: 1px solid var(--divider, rgba(0,0,0,0.08));\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.git-studio-log-hash {\n font-size: 11px;\n font-family: monospace;\n color: var(--primary, #1a73e8);\n background: var(--primary-light, #d2e3fc);\n padding: 2px 6px;\n border-radius: 4px;\n}\n.git-studio-card {\n padding: 12px;\n border-radius: 8px;\n border: 1px solid var(--divider, rgba(0,0,0,0.08));\n background: var(--surfacePrimary, #ffffff);\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.git-studio-card-title {\n font-size: 13px;\n font-weight: 600;\n color: var(--textPrimary, #202124);\n}\n.git-studio-input {\n width: 100%;\n padding: 6px 10px;\n border-radius: 6px;\n border: 1px solid var(--divider, rgba(0,0,0,0.08));\n background: var(--surfacePrimary, #ffffff);\n color: var(--textPrimary, #202124);\n font-size: 13px;\n box-sizing: border-box;\n}\n.git-studio-textarea {\n width: 100%;\n padding: 8px 12px;\n border-radius: 8px;\n border: 1px solid var(--divider, rgba(0,0,0,0.08));\n background: var(--surfacePrimary, #ffffff);\n color: var(--textPrimary, #202124);\n font-size: 13px;\n box-sizing: border-box;\n resize: vertical;\n}\n.git-studio-btn-row {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n.git-studio-btn {\n padding: 6px 12px;\n border-radius: 6px;\n border: 1px solid var(--primary, #1a73e8);\n background: transparent;\n color: var(--primary, #1a73e8);\n cursor: pointer;\n font-size: 12px;\n transition: all 0.2s;\n}\n.git-studio-btn:hover {\n opacity: 0.85;\n}\n.git-studio-branch-chip {\n padding: 4px 10px;\n border-radius: 12px;\n font-size: 11px;\n cursor: pointer;\n opacity: 0.8;\n border: 1px solid var(--divider, rgba(0,0,0,0.08));\n background: transparent;\n color: var(--textSecondary, #5f6368);\n}\n.git-studio-branch-chip--current {\n border: 1px solid var(--secondary, #34a853);\n background: var(--primary-light, #d2e3fc);\n color: var(--secondary, #34a853);\n cursor: default;\n opacity: 1;\n}\n.git-studio-config-row {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.git-studio-config-label {\n font-size: 12px;\n color: var(--textSecondary, #5f6368);\n width: 80px;\n flex-shrink: 0;\n text-align: right;\n}\n.git-studio-proxy-item {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 12px;\n}\n.git-studio-proxy-label {\n width: 100px;\n flex-shrink: 0;\n color: var(--textSecondary, #5f6368);\n}\n\n/* ===== Git 变更面板 ===== */\n.git-scroll {\n flex: 1;\n min-height: 0;\n overflow: auto;\n}\n\n/* 分组标题:仿项目 list 分组风格,浅灰底 + 次要文字色 */\n.git-section__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: .3rem .6rem;\n font-size: .8rem;\n color: var(--textSecondary);\n border-bottom: 1px solid var(--divider);\n position: sticky;\n top: 0;\n background: #fafafa;\n z-index: 1;\n}\n.git-section__title {\n font-weight: 500;\n}\n.git-section__action {\n cursor: pointer;\n}\n.git-section__action:hover {\n color: var(--blue);\n}\n\n/* 变更文件行 */\n.git-file {\n position: relative;\n display: flex;\n align-items: center;\n gap: .4rem;\n padding: .25rem .6rem;\n cursor: pointer;\n font-size: .85rem;\n}\n.git-file:hover {\n background: var(--hover);\n}\n.git-file--active {\n background: var(--hover);\n}\n.git-file__badge {\n width: 1rem;\n flex-shrink: 0;\n text-align: center;\n font-weight: 600;\n font-family: monospace;\n}\n.git-file__badge--add { color: var(--icon-green); }\n.git-file__badge--mod { color: var(--icon-blue); }\n.git-file__badge--del { color: var(--icon-red); }\n.git-file__badge--ren { color: var(--icon-violet); }\n/* 变更列表行内图标压缩到 1rem,与行高匹配(全局 material-icons 为 1.5rem 偏高) */\n.git-file .file-icons i,\n.git-tree__dir .file-icons i {\n font-size: 1rem;\n line-height: 1;\n}\n.git-file__badge--conf { color: var(--icon-orange); }\n.git-file__badge--untracked { color: var(--textSecondary); }\n.git-file__name {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--textPrimary);\n}\n.git-file__dir {\n max-width: 40%;\n font-size: .8rem;\n color: var(--textSecondary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.git-file__op {\n width: 1rem;\n flex-shrink: 0;\n text-align: center;\n font-weight: 600;\n color: var(--textSecondary);\n opacity: 0;\n}\n.git-file:hover .git-file__op {\n opacity: 1;\n}\n.git-file__op:hover {\n color: var(--blue);\n}\n.git-change-empty {\n padding: 2rem 1rem;\n text-align: center;\n color: var(--textSecondary);\n font-size: .85rem;\n}\n\n/* 提交记录行 */\n.git-studio-log-entry {\n padding: .3rem .6rem;\n cursor: default;\n}\n.git-studio-log-entry:hover {\n background: var(--hover);\n}\n.git-log__row {\n display: flex;\n align-items: center;\n gap: .5rem;\n}\n.git-log__msg {\n flex: 1;\n font-size: .85rem;\n color: var(--textPrimary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.git-log__meta {\n padding-left: .2rem;\n font-size: .75rem;\n color: var(--textSecondary);\n}\n\n/* ===== Git 主内容区 ===== */\n.git-main {\n display: flex;\n flex-direction: column;\n gap: .8rem;\n height: 100%;\n min-width: 0;\n overflow: auto;\n}\n\n/* 内容卡片:沿用项目 .card 的白底 + 圆角 + 阴影 */\n.git-card {\n display: flex;\n flex-direction: column;\n gap: .5rem;\n padding: .8rem 1rem;\n background: #fff;\n border-radius: 2px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .08);\n min-width: 0;\n flex-shrink: 0;\n}\n/* diff 卡片需要撑开剩余高度,且自身内部滚动 */\n.git-card--diff {\n flex: 1;\n min-height: 50rem;\n overflow: hidden;\n}\n.git-card--placeholder {\n flex: 1;\n align-items: center;\n justify-content: center;\n color: var(--textSecondary);\n font-size: .85rem;\n}\n\n/* 分支行 */\n.git-branch-row {\n display: flex;\n align-items: center;\n gap: .5rem;\n flex-wrap: wrap;\n}\n.git-branch__name {\n flex-shrink: 0;\n font-size: .9rem;\n font-weight: 500;\n color: var(--textPrimary);\n}\n.git-branch__list {\n display: flex;\n flex: 1;\n flex-wrap: wrap;\n gap: .3rem;\n}\n.git-branch-chip {\n padding: .1rem .5rem;\n font-size: .8rem;\n color: var(--textSecondary);\n border: 1px solid var(--borderPrimary);\n border-radius: 2px;\n cursor: pointer;\n}\n.git-branch-chip:hover {\n color: var(--blue);\n border-color: var(--blue);\n}\n.git-branch-chip--current {\n color: var(--icon-green);\n border-color: var(--icon-green);\n cursor: default;\n}\n\n/* 提交输入框 */\n.git-commit-input {\n box-sizing: border-box;\n width: 100%;\n padding: .4rem .5rem;\n font-family: inherit;\n font-size: .85rem;\n color: var(--textPrimary);\n background: #fff;\n border: 1px solid var(--borderPrimary);\n border-radius: 2px;\n resize: vertical;\n}\n.git-commit-input:focus {\n outline: none;\n border-color: var(--blue);\n}\n\n/* 操作按钮行 */\n.git-btn-row {\n display: flex;\n align-items: center;\n gap: .2rem;\n}\n.git-btn-gap {\n flex: 1;\n}\n\n/* 配置行 */\n.git-config-row {\n display: flex;\n align-items: center;\n gap: .5rem;\n}\n.git-config__label {\n width: 5rem;\n flex-shrink: 0;\n font-size: .85rem;\n color: var(--textSecondary);\n}\n.git-config__value {\n flex: 1;\n font-size: .85rem;\n color: var(--textPrimary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.git-config__input {\n flex: 1;\n min-width: 0;\n}\n\n/* ===== Diff 查看器 ===== */\n.git-diff-header {\n display: flex;\n align-items: center;\n gap: .5rem;\n flex-shrink: 0;\n padding-bottom: .4rem;\n border-bottom: 1px solid var(--divider);\n}\n.git-diff-header__badge {\n flex-shrink: 0;\n padding: .1rem .4rem;\n font-size: .75rem;\n color: var(--textSecondary);\n background: var(--moon-grey);\n border-radius: 2px;\n}\n.git-diff-header__path {\n flex: 1;\n font-size: .85rem;\n font-family: monospace;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.git-diff-header__modes {\n display: flex;\n flex-shrink: 0;\n gap: .2rem;\n}\n\n.git-diff-empty {\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n color: var(--textSecondary);\n font-size: .85rem;\n}\n\n/* ===== 提交详情面板 ===== */\n.git-commit-meta {\n flex-shrink: 0;\n padding-bottom: .4rem;\n border-bottom: 1px solid var(--divider);\n}\n.git-commit-meta__row {\n display: flex;\n align-items: center;\n gap: .5rem;\n}\n.git-commit-meta__hash {\n flex-shrink: 0;\n font-family: monospace;\n font-size: .85rem;\n color: var(--icon-blue);\n}\n.git-commit-meta__subject {\n flex: 1;\n font-size: .9rem;\n color: var(--textPrimary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.git-commit-meta__sub {\n padding-top: .2rem;\n font-size: .75rem;\n color: var(--textSecondary);\n}\n.git-commit-body {\n display: flex;\n flex: 1;\n min-height: 0;\n min-width: 0;\n gap: .6rem;\n}\n/* 改动文件列表 */\n.git-commit-files {\n width: 14rem;\n flex-shrink: 0;\n overflow: auto;\n border-right: 1px solid var(--divider);\n padding-right: .4rem;\n}\n.git-commit-file {\n display: flex;\n align-items: center;\n gap: .3rem;\n padding: .2rem .4rem;\n font-size: .82rem;\n cursor: pointer;\n /* 文件名过长时保持单行,由列表容器横向滚动查看,避免换行挤压行高 */\n white-space: nowrap;\n min-width: max-content;\n}\n.git-commit-file__name {\n flex: 1;\n}\n/* 树形目录行 */\n.git-commit-tree__dir {\n display: flex;\n align-items: center;\n gap: .2rem;\n padding: .2rem .4rem;\n font-size: .82rem;\n cursor: pointer;\n white-space: nowrap;\n}\n.git-commit-tree__dir:hover {\n background: var(--hover);\n}\n.git-commit-tree__dir-name {\n color: var(--textPrimary);\n}\n.git-commit-tree__children {\n padding-left: .9rem;\n}\n.git-commit-file--leaf {\n padding-left: .4rem;\n}\n.git-commit-file:hover {\n background: var(--hover);\n}\n.git-commit-file--active {\n background: var(--hover);\n}\n.git-commit-file__name {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.git-commit-file__stat {\n flex-shrink: 0;\n font-family: monospace;\n font-size: .75rem;\n}\n.git-stat--add { color: var(--icon-green); }\n.git-stat--del { color: var(--icon-red); }\n/* diff 区 */\n.git-commit-diff {\n display: flex;\n flex: 1;\n min-width: 0;\n flex-direction: column;\n overflow: hidden;\n}\n\n/* ===== 逐行归属 ===== */\n.git-blame {\n flex: 1;\n min-height: 0;\n overflow: auto;\n font-family: monospace;\n font-size: .8rem;\n line-height: 1.5;\n}\n.git-blame__row {\n display: flex;\n white-space: pre;\n}\n.git-blame__row:hover {\n background: var(--hover);\n}\n.git-blame__hash {\n width: 4.5rem;\n flex-shrink: 0;\n padding-right: .4rem;\n color: var(--textSecondary);\n user-select: none;\n}\n.git-blame__author {\n width: 7rem;\n flex-shrink: 0;\n padding-right: .4rem;\n overflow: hidden;\n text-overflow: ellipsis;\n user-select: none;\n}\n.git-blame__date {\n width: 7rem;\n flex-shrink: 0;\n padding-right: .4rem;\n color: var(--textSecondary);\n user-select: none;\n}\n.git-blame__num {\n width: 2.5rem;\n flex-shrink: 0;\n padding-right: .5rem;\n text-align: right;\n color: var(--textSecondary);\n user-select: none;\n}\n.git-blame__code {\n flex: 1;\n padding-right: .5rem;\n}\n\n/* ===== 分支操作 ===== */\n.git-branch-chip {\n display: inline-flex;\n align-items: center;\n gap: .2rem;\n}\n.git-branch-chip__ops {\n display: none;\n gap: .2rem;\n}\n.git-branch-chip:hover .git-branch-chip__ops {\n display: inline-flex;\n}\n.git-branch-chip__op:hover {\n color: var(--blue);\n}\n.git-branch-new {\n display: inline-flex;\n align-items: center;\n gap: .2rem;\n}\n.git-branch-new .input {\n width: 8rem;\n}\n\n/* ===== 提交记录行 ===== */\n.git-log__entry {\n display: flex;\n align-items: stretch;\n gap: .3rem;\n /* 左内边距取整数像素,保证图形列落在整数栅格上,避免竖线压在半像素上出现抗锯齿细缝 */\n padding: 0 .5rem 0 4px;\n cursor: pointer;\n}\n/* 行内上下留白交给 .git-log__main 自己撑,图形列整行贯穿不留缝,保证上下行连线接续 */\n.git-log__main {\n padding: .25rem 0;\n}\n/* 主题文件有 `.studio-nav div { background: var(--surfacePrimary) !important; border-radius: var(--border-radius) }`,\n 会把行内每一层 div 都刷成不透明白底加 12px 圆角,导致 hover 底色只在子元素边缘露出、树形连线四角被切掉。\n 此处把提交记录行整棵子树的背景与圆角复位,让 hover 由最外层 .git-log__entry 统一承担。 */\n.studio-nav .git-log__entry,\n.studio-nav .git-log__entry div {\n background: transparent !important;\n border-radius: 0 !important;\n}\n.studio-nav .git-log__entry:hover,\n.studio-nav .git-log__entry--active {\n background: var(--hover) !important;\n}\n/* 提交列表底部的加载中 / 已到底部提示 */\n.git-log__more {\n padding: .6rem 0;\n text-align: center;\n font-size: .8rem;\n color: var(--textSecondary);\n}\n\n/* 树形血缘列(SVG 绘制):占据固定宽度,竖线贯穿整行 */\n.git-log__graph {\n flex-shrink: 0;\n align-self: stretch;\n display: flex;\n}\n/* SVG 宽高由行内属性给定,overflow 可见使连线画出行的 padding 区,保证上下行接续 */\n.git-log__graph > svg {\n display: block;\n overflow: visible;\n}\n/* 竖线强制按像素栅格渲染,避免落在半像素上出现抗锯齿细缝;曲线保持默认平滑,不参与栅格化 */\n.git-log__graph-edge {\n stroke: var(--icon-blue);\n stroke-width: 2;\n stroke-linecap: butt;\n fill: none;\n opacity: .55;\n}\nline.git-log__graph-edge {\n shape-rendering: crispEdges;\n}\n.git-log__graph-dot {\n fill: var(--icon-blue);\n stroke: var(--surfacePrimary);\n stroke-width: 1.5;\n}\n.git-log__graph-dot--unpushed {\n fill: var(--icon-orange);\n}\n.git-log__main {\n flex: 1;\n min-width: 0;\n}\n/* 未推送到上游的提交:圆点橙色、提交信息加粗 */\n.git-log__entry--unpushed .git-log__msg {\n font-weight: 600;\n}\n.git-log__unpushed {\n flex-shrink: 0;\n width: .5rem;\n height: .5rem;\n border-radius: 50%;\n background: var(--icon-orange);\n}\n/* 引用标签(分支名 / tag / HEAD) */\n.git-log__ref {\n flex-shrink: 0;\n padding: 0 .3rem;\n border-radius: 2px;\n font-size: .7rem;\n line-height: 1.3;\n color: var(--icon-green);\n background: rgba(46, 204, 113, .12);\n}\n.git-log__ref--head {\n color: #fff;\n background: var(--blue);\n}\n.git-log__hash {\n flex-shrink: 0;\n font-family: monospace;\n font-size: .8rem;\n color: var(--icon-blue);\n}\n\n/* ===== 文件操作按钮组 ===== */\n.git-file__ops {\n position: absolute;\n top: 50%;\n right: .5rem;\n display: inline-flex;\n align-items: center;\n gap: .3rem;\n transform: translateY(-50%);\n opacity: 0;\n transition: opacity .1s;\n}\n.git-file:hover .git-file__ops,\n.git-file--active .git-file__ops {\n opacity: 1;\n}\n/* 悬停时文件名右侧让出按钮空间,避免被盖住 */\n\n/* ===== 左栏二级菜单适配 =====\n 完整沿用项目标准 .menu 样式(layout/menu.css),\n 仅让 tab 均分宽度以适配窄侧栏,不改动字号、内边距、配色 */\n.git-menu {\n flex-shrink: 0;\n padding-bottom: 0;\n}\n.git-menu .wrapper {\n overflow-x: auto;\n overflow-y: hidden;\n}\n.git-menu ul {\n width: 100%;\n}\n.git-menu ul li {\n flex: 1;\n padding: 1em .3em;\n text-align: center;\n cursor: pointer;\n}\n\n/* Git 左栏:菜单固定在顶部,下方列表独立滚动 */\n.studio-nav--git {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n/* ===== 第三期:子面板(stash / 远程 / 标签 / 冲突) ===== */\n.git-sub-panel__header {\n display: flex;\n align-items: center;\n gap: .4rem;\n padding: .2rem 0;\n}\n.git-sub-panel__title {\n flex: 1;\n font-size: .85rem;\n font-weight: 500;\n color: var(--textPrimary);\n}\n/* 可折叠的子面板标题(如「钩子」) */\n.git-hook .git-sub-panel__title {\n cursor: pointer;\n user-select: none;\n}\n.git-sub-panel__form {\n display: flex;\n flex-direction: column;\n gap: .4rem;\n padding: .4rem 0 .6rem;\n}\n.git-sub-panel__form-actions {\n display: flex;\n align-items: center;\n gap: .4rem;\n}\n.git-sub-panel__hint {\n flex: 1;\n font-size: .78rem;\n color: var(--textSecondary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.git-sub-panel__list {\n max-height: 14rem;\n overflow: auto;\n}\n\n/* 通用子项行(标签 / stash / 远程分支 / 冲突文件) */\n.git-sub-item {\n position: relative;\n display: flex;\n align-items: center;\n gap: .5rem;\n padding: .25rem 5rem .25rem .2rem;\n font-size: .82rem;\n border-bottom: 1px solid var(--divider);\n}\n.git-sub-item:hover {\n background: var(--hover);\n}\n.git-sub-item__name {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--textPrimary);\n}\n.git-sub-item__desc {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--textSecondary);\n}\n.git-sub-item__meta {\n flex-shrink: 0;\n font-size: .75rem;\n color: var(--textSecondary);\n}\n.git-sub-item__ops {\n position: absolute;\n top: 50%;\n right: .5rem;\n display: inline-flex;\n align-items: center;\n gap: .2rem;\n transform: translateY(-50%);\n opacity: 0;\n transition: opacity .1s;\n}\n.git-sub-item:hover .git-sub-item__ops {\n opacity: 1;\n}\n/* 行内重命名输入行 */\n.git-remote__rename {\n display: flex;\n align-items: center;\n gap: .3rem;\n padding: .2rem .5rem .3rem 1.4rem;\n border-bottom: 1px solid var(--divider);\n}\n\n/* 冲突面板 */\n.git-conflict {\n border-left: 3px solid var(--icon-orange);\n}\n.git-conflict__state {\n margin-left: .5rem;\n padding: .05rem .35rem;\n font-size: .72rem;\n font-weight: 400;\n color: var(--icon-orange);\n background: var(--moon-grey);\n border-radius: 2px;\n}\n\n/* 提交搜索 */\n.git-log-wrap {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n.git-log-search {\n display: flex;\n align-items: center;\n gap: .3rem;\n flex-shrink: 0;\n padding: .3rem .4rem;\n border-bottom: 1px solid var(--divider);\n}\n.git-log-search .input {\n min-width: 0;\n font-size: .8rem;\n}\n.git-log-wrap .git-log {\n flex: 1;\n min-height: 0;\n overflow: auto;\n}\n\n/* ===== 第四期:reflog / 仓库信息 / 子模块 / Hook ===== */\n.git-branch__counts {\n display: inline-flex;\n flex-shrink: 0;\n gap: .3rem;\n font-size: .78rem;\n font-family: monospace;\n}\n.git-ahead { color: var(--icon-green); }\n.git-behind { color: var(--icon-orange); }\n\n.git-repo-panel__counts {\n margin-left: .4rem;\n display: inline-flex;\n gap: .3rem;\n}\n\n/* 子模块状态 */\n.git-sub-status--ok { color: var(--icon-green); }\n.git-sub-status--uninitialized { color: var(--textSecondary); }\n.git-sub-status--modified { color: var(--icon-orange); }\n\n/* ===== 第五期:仓库管理 ===== */\n.git-repo-manager__header {\n display: flex;\n align-items: center;\n gap: .4rem;\n padding: .2rem 0;\n}\n.git-repo-manager__dirs {\n display: flex;\n flex-wrap: wrap;\n gap: .3rem;\n}\n.git-repo-manager__dir {\n padding: .1rem .5rem;\n font-size: .78rem;\n color: var(--textSecondary);\n background: var(--moon-grey);\n border-radius: 2px;\n cursor: pointer;\n}\n.git-repo-manager__dir:hover {\n color: var(--blue);\n}\n\n/* ===== 通用勾子编辑器(HookEditor) ===== */\n.hook-item {\n position: relative;\n display: flex;\n align-items: center;\n gap: .5rem;\n padding: .25rem 3.4rem .25rem .2rem;\n font-size: .82rem;\n border-bottom: 1px solid var(--divider);\n}\n.hook-item:hover {\n background: var(--hover);\n}\n.hook-item--editing {\n background: var(--hover);\n}\n.hook-item__dot {\n width: .5rem;\n height: .5rem;\n flex-shrink: 0;\n border-radius: 50%;\n background: var(--borderPrimary);\n}\n.hook-item__dot--on {\n background: var(--icon-green);\n}\n.hook-item__name {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--textPrimary);\n}\n.hook-item__ops {\n position: absolute;\n top: 50%;\n right: .2rem;\n display: inline-flex;\n align-items: center;\n gap: .2rem;\n transform: translateY(-50%);\n opacity: 0;\n transition: opacity .1s;\n}\n.hook-item:hover .hook-item__ops,\n.hook-item--editing .hook-item__ops {\n opacity: 1;\n}\n.hook-item__editor {\n display: flex;\n flex-direction: column;\n gap: .3rem;\n padding: .4rem .2rem .6rem;\n border-bottom: 1px solid var(--divider);\n}\n.hook-item__editor-bar {\n display: flex;\n align-items: center;\n gap: .3rem;\n}\n.hook-item__editor-name {\n flex: 1;\n font-size: .78rem;\n font-family: monospace;\n color: var(--textSecondary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.hook-item__text {\n box-sizing: border-box;\n width: 100%;\n height: 12rem;\n padding: .4rem .5rem;\n font-family: monospace;\n font-size: .78rem;\n line-height: 1.5;\n color: var(--textPrimary);\n background: #fff;\n border: 1px solid var(--borderPrimary);\n border-radius: 2px;\n resize: vertical;\n}\n.hook-item__text:focus {\n outline: none;\n border-color: var(--blue);\n}\n\n/* ===== 变更列表:工具栏 / 全选 / 树形 ===== */\n.git-change-toolbar {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: .2rem;\n padding: .15rem .4rem;\n border-bottom: 1px solid var(--divider);\n}\n.git-section__header input[type="checkbox"] {\n flex-shrink: 0;\n margin: 0 .1rem 0 0;\n}\n.git-file input[type="checkbox"] {\n flex-shrink: 0;\n margin: 0;\n}\n.git-tree__folder {\n font-size: .85rem;\n}\n.git-tree__dir {\n display: flex;\n align-items: center;\n gap: .2rem;\n padding: .2rem .6rem;\n cursor: pointer;\n color: var(--textSecondary);\n}\n.git-tree__dir:hover {\n background: var(--hover);\n}\n.git-tree__arrow {\n width: 1.2rem;\n flex-shrink: 0;\n font-size: 1rem;\n}\n.git-tree__dir-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.git-tree__children {\n padding-left: 1rem;\n}\n\n/* ==================== Ace diff 视图 ==================== */\n/* ext-diff 会创建若干只读 Ace Editor 挂在容器上。\n 注意 Ace 的 .ace_editor 是绝对定位(top/bottom/left/right:0),\n 因此容器不能用 flex 去布局它们(会把宽度压成 0),只能自己用绝对定位排布。 */\n.ace-diff {\n position: relative;\n flex: 1;\n min-height: 0;\n min-width: 0;\n height: 100%;\n font-size: .82rem;\n overflow: hidden;\n}\n/* 并排模式:两个编辑器各占一半,中间一条分隔线 */\n.ace-diff > .ace_editor {\n position: absolute;\n top: 0;\n bottom: 0;\n width: calc(50% - .5px);\n}\n.ace-diff > .ace_editor:first-child {\n left: 0;\n border-right: 1px solid var(--divider);\n}\n.ace-diff > .ace_editor:last-child {\n left: calc(50% + .5px);\n}\n/* 单栏模式只有一个 DOM 编辑器,占满容器 */\n.ace-diff > .ace_editor:only-child {\n left: 0;\n width: 100%;\n border-right: 0;\n}\n\n/* ===== 右侧 AI 聊天面板(Studio 内嵌聊天) ===== */\n/* 分隔线复用 .studio__divider 的观感,单独加 class 便于区分左右 */\n.studio__divider--chat {\n flex-shrink: 0;\n}\n\n/* 面板本体:宽度由内联样式给定,高度撑满 studio-body */\n.studio-chat-panel {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n min-width: 320px;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n border-left: 1px solid var(--divider, #e8eaed);\n background: var(--surfacePrimary, #fff);\n}\n\n/* 面板内的聊天页铺满可用空间(Header 由 ChatPanel 自己渲染) */\n.studio-chat-panel .chat-page {\n flex: 1;\n min-height: 0;\n}\n\n/* 面板较窄,会话列表按比例收窄,给聊天主体留出空间 */\n.studio-chat-panel .chat-session-list {\n /*width: 9.5em;*/\n /*min-width: 9.5em;*/\n padding: 0.4em;\n font-size: 0.9em;\n}\n\n/* ===== 文件页(FileList)的左右分栏 =====\n 左侧是文件目录主体,右侧是 AI 聊天面板(面板关闭时左侧独占整宽)。\n 结构与 Studio 一致,聊天面板直接复用 .studio-chat-panel / .studio__divider--chat */\n.file-list-split {\n display: flex;\n /* main 是 height:100% 且 box-sizing:border-box,其 content 高度即除 Header 外的可用高度,\n 这里取满即可,不产生溢出 */\n height: 100%;\n min-height: 0;\n width: 100%;\n min-width: 0;\n}\n\n/* 左侧文件主体:占据剩余宽度。\n 注意不要在这里加 overflow:auto —— 列表自身的滚动容器(#listing 等)已经负责滚动,\n 多一层滚动会让分页模式的“滚到底加载下一页”检测失效。 */\n.file-list-main {\n flex: 1;\n min-width: 0;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n/* ===== 内嵌画板编辑器(Studio 打开 .draw / .excalidraw) =====\n Excalidraw 要求父容器有确定高度,这里撑满 studio-editor */\n.studio-editor--draw,\n.studio-editor--mind {\n display: flex;\n margin: 0;\n flex-basis: 0;\n min-height: 0;\n}\n\n.excalidraw-inline {\n flex: 1;\n min-width: 0;\n min-height: 0;\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n/* ===== 思维导图编辑器(.mind,基于 simple-mind-map) ===== */\n\n/* 全屏浮层外壳:与 #excalidraw-container 完全对称 */\n#mind-container {\n display: flex;\n flex-direction: column;\n background-color: #fafafa;\n position: fixed;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n z-index: 1000;\n}\n\n/* 从 md 的 ```smm-mind 代码块打开时,要盖在 md 编辑器(同样 z-index:1000)之上 */\n#mind-container.mind-container--over {\n z-index: 1100;\n}\n\n#mind-container .mind-context {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 0;\n}\n\n/* 浮层顶部条:文件名 + 保存 + 关闭 */\n.mind-topbar {\n display: flex;\n align-items: center;\n gap: .3rem;\n flex-shrink: 0;\n height: 2.6rem;\n padding: 0 .6rem;\n background: var(--surfacePrimary, #fff);\n border-bottom: 1px solid var(--divider, #e8eaed);\n}\n\n.mind-topbar__icon {\n font-size: 1.1rem;\n color: var(--icon-blue, #1a73e8);\n}\n\n.mind-topbar__name {\n font-size: .9rem;\n color: var(--textPrimary, #202124);\n}\n\n.mind-wrap {\n flex: 1;\n min-width: 0;\n min-height: 0;\n display: flex;\n flex-direction: column;\n background: var(--surfacePrimary, #fff);\n border: 1px solid var(--divider, #e8eaed);\n}\n\n/* 全屏模式下不需要外边框(浮层已经铺满) */\n.mind-wrap--full {\n border: 0;\n}\n\n.mind-toolbar {\n display: flex;\n align-items: center;\n gap: .2rem;\n flex-shrink: 0;\n padding: .2rem .4rem;\n border-bottom: 1px solid var(--divider, #e8eaed);\n background: var(--surfacePrimary, #fafafa);\n}\n\n.mind-toolbar__gap {\n flex: 1;\n}\n\n.mind-toolbar__zoom {\n min-width: 3.2rem;\n text-align: center;\n font-size: .78rem;\n color: var(--textSecondary, #5f6368);\n font-variant-numeric: tabular-nums;\n}\n\n.mind-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1.8rem;\n height: 1.8rem;\n padding: 0;\n border: 0;\n border-radius: 2px;\n background: transparent;\n color: var(--textPrimary, #202124);\n cursor: pointer;\n}\n\n.mind-btn:hover:not(:disabled) {\n background: var(--hover, rgba(0, 0, 0, .06));\n color: var(--blue, #1a73e8);\n}\n\n.mind-btn:disabled {\n opacity: .35;\n cursor: default;\n}\n\n.mind-btn .material-icons {\n font-size: 1.1rem;\n line-height: 1;\n}\n\n.mind-canvas {\n position: relative;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n/* simple-mind-map 的挂载点,必须撑满容器并给库一个确定尺寸 */\n.mind-mount {\n width: 100%;\n height: 100%;\n}\n\n.mind-mask {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: .9rem;\n color: var(--textSecondary, #5f6368);\n background: var(--surfacePrimary, #fff);\n}\n',""]);const a=s;n.d(t,["A",0,a])},67444(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,"/* Tab 外层包裹容器 */\n.modern-tabs-container {\n display: flex;\n flex-direction: column;\n}\n\n/* Tab 头部导航条 */\n.modern-tabs-nav {\n display: flex;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n margin-bottom: 12px;\n user-select: none;\n}\n\n/* 每一个独立的 Tab 标签页 */\n.modern-tabs-tab {\n padding: 8px 16px;\n margin: 0 4px -1px 0;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n border-top: none;\n border-left: none;\n border-right: none;\n box-shadow: none;\n background-color: transparent;\n color: #666;\n font-weight: normal;\n cursor: pointer;\n opacity: 1;\n /* 之前给你的进阶丝滑过渡效果,这里默认带上 */\n border-bottom: .15rem solid transparent;\n transition: color 0.2s ease, border-color 0.2s ease;\n}\n\n/* 悬浮状态(非禁用时) */\n.modern-tabs-tab:not(.disabled):hover {\n color: #3b82f6;\n}\n\n/* 激活状态 */\n.modern-tabs-tab.active {\n border-bottom-color: #3b82f6;\n color: #3b82f6;\n font-weight: bold;\n /*background-color: #fff;*/\n}\n\n/* 禁用状态 */\n.modern-tabs-tab.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* Tab 面板内容区域 */\n.modern-tab-panel {\n display: none;\n}\n\n.modern-tab-panel.active {\n display: block;\n}",""]);const a=s;n.d(t,["A",0,a])},55905(e,t,n){"use strict";var i=n(31601),r=n.n(i),o=n(76314),s=n.n(o)()(r());s.push([e.id,".upload-files .card.floating {\n left: auto;\n top: auto;\n margin: 0;\n right: 0;\n bottom: 0;\n transform: none;\n overflow-y: auto;\n}\n\n.upload-files .file {\n margin-bottom: 8px;\n}\n\n.upload-files .file .file-name {\n font-size: 1.1em;\n display: flex;\n align-items: center;\n}\n\n.upload-files .file .file-name i {\n margin-right: 5px;\n}\n\n.upload-files .file .file-progress {\n margin-top: 2px;\n width: 100%;\n height: 5px;\n}\n\n.upload-files .file .file-progress div {\n height: 100%;\n background-color: #40c4ff;\n width: 0;\n transition: 0.2s ease width;\n border-radius: 10px;\n}\n\n.upload-files.closed .card-content {\n display: none;\n padding: 0em 1em 1em 1em;\n}\n\n.upload-files .card .card-title {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 0.8em;\n padding: 1em 1em 0em;\n}\n\n.upload-files.closed .card-title {\n font-size: 0.7em;\n padding: 0.5em 1em;\n}\n\n@media (max-width: 450px) {\n .upload-files .card.floating {\n max-width: 100%;\n width: 100%;\n }\n}\n",""]);const a=s;n.d(t,["A",0,a])},76314(e){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n="",i=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),i&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),i&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n}).join("")},t.i=function(e,n,i,r,o){"string"==typeof e&&(e=[[null,e,void 0]]);var s={};if(i)for(var a=0;a<this.length;a++){var l=this[a][0];null!=l&&(s[l]=!0)}for(var c=0;c<e.length;c++){var u=[].concat(e[c]);i&&s[u[0]]||(void 0!==o&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=o),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),r&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=r):u[4]="".concat(r)),t.push(u))}},t}},4417(e){"use strict";e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},31601(e){"use strict";e.exports=function(e){return e[1]}},93413(e){var t;t=function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=6)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.css=t.deepExtend=t.animationEndEvents=void 0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.inArray=function(e,t,n){var i=void 0;if(n){for(i in t)if(t.hasOwnProperty(i)&&t[i]===e)return!0}else for(i in t)if(t.hasOwnProperty(i)&&t[i]===e)return!0;return!1},t.stopPropagation=function(e){void 0!==(e=e||window.event).stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.generateID=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t="noty_"+e+"_";return t+="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})},t.outerHeight=function(e){var t=e.offsetHeight,n=window.getComputedStyle(e);return t+=parseInt(n.marginTop)+parseInt(n.marginBottom)},t.addListener=o,t.hasClass=s,t.addClass=function(e,t){var n=l(e),i=n+t;s(n,t)||(e.className=i.substring(1))},t.removeClass=function(e,t){var n=l(e),i=void 0;s(e,t)&&(i=n.replace(" "+t+" "," "),e.className=i.substring(1,i.length-1))},t.remove=a,t.classList=l,t.visibilityChangeFlow=function(){var e=void 0,t=void 0;function n(){r.PageHidden?setTimeout(function(){Object.keys(r.Store).forEach(function(e){r.Store.hasOwnProperty(e)&&r.Store[e].options.visibilityControl&&r.Store[e].stop()})},100):setTimeout(function(){Object.keys(r.Store).forEach(function(e){r.Store.hasOwnProperty(e)&&r.Store[e].options.visibilityControl&&r.Store[e].resume()}),r.queueRenderAll()},100)}void 0!==document.hidden?(e="hidden",t="visibilitychange"):void 0!==document.msHidden?(e="msHidden",t="msvisibilitychange"):void 0!==document.webkitHidden&&(e="webkitHidden",t="webkitvisibilitychange"),t&&o(document,t,function(){r.PageHidden=document[e],n()}),o(window,"blur",function(){r.PageHidden=!0,n()}),o(window,"focus",function(){r.PageHidden=!1,n()})},t.createAudioElements=function(e){if(e.hasSound){var t=document.createElement("audio");e.options.sounds.sources.forEach(function(e){var n=document.createElement("source");n.src=e,n.type="audio/"+e.match(/\.([^.]+)$/)[1],t.appendChild(n)}),e.barDom?e.barDom.appendChild(t):document.querySelector("body").appendChild(t),t.volume=e.options.sounds.volume,e.soundPlayed||(t.play(),e.soundPlayed=!0),t.onended=function(){a(t)}}};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function o(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];t=t.split(" ");for(var r=0;r<t.length;r++)document.addEventListener?e.addEventListener(t[r],n,i):document.attachEvent&&e.attachEvent("on"+t[r],n)}function s(e,t){return("string"==typeof e?e:l(e)).indexOf(" "+t+" ")>=0}function a(e){e.parentNode&&e.parentNode.removeChild(e)}function l(e){return(" "+(e&&e.className||"")+" ").replace(/\s+/gi," ")}t.animationEndEvents="webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",t.deepExtend=function e(t){t=t||{};for(var n=1;n<arguments.length;n++){var r=arguments[n];if(r)for(var o in r)r.hasOwnProperty(o)&&(Array.isArray(r[o])?t[o]=r[o]:"object"===i(r[o])&&null!==r[o]?t[o]=e(t[o],r[o]):t[o]=r[o])}return t},t.css=function(){var e=["Webkit","O","Moz","ms"],t={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(e,t){return t.toUpperCase()}),t[n]||(t[n]=function(t){var n=document.body.style;if(t in n)return t;for(var i=e.length,r=t.charAt(0).toUpperCase()+t.slice(1),o=void 0;i--;)if((o=e[i]+r)in n)return o;return t}(n))}function i(e,t,i){t=n(t),e.style[t]=i}return function(e,t){var n=arguments,r=void 0,o=void 0;if(2===n.length)for(r in t)t.hasOwnProperty(r)&&void 0!==(o=t[r])&&t.hasOwnProperty(r)&&i(e,r,o);else i(e,n[1],n[2])}}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Defaults=t.Store=t.Queues=t.DefaultMaxVisible=t.docTitle=t.DocModalCount=t.PageHidden=void 0,t.getQueueCounts=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"global",t=0,n=a;return l.hasOwnProperty(e)&&(n=l[e].maxVisible,Object.keys(c).forEach(function(n){c[n].options.queue!==e||c[n].closed||t++})),{current:t,maxVisible:n}},t.addToQueue=function(e){l.hasOwnProperty(e.options.queue)||(l[e.options.queue]={maxVisible:a,queue:[]}),l[e.options.queue].queue.push(e)},t.removeFromQueue=function(e){if(l.hasOwnProperty(e.options.queue)){var t=[];Object.keys(l[e.options.queue].queue).forEach(function(n){l[e.options.queue].queue[n].id!==e.id&&t.push(l[e.options.queue].queue[n])}),l[e.options.queue].queue=t}},t.queueRender=u,t.queueRenderAll=function(){Object.keys(l).forEach(function(e){u(e)})},t.ghostFix=function(e){var t=i.generateID("ghost"),n=document.createElement("div");n.setAttribute("id",t),i.css(n,{height:i.outerHeight(e.barDom)+"px"}),e.barDom.insertAdjacentHTML("afterend",n.outerHTML),i.remove(e.barDom),n=document.getElementById(t),i.addClass(n,"noty_fix_effects_height"),i.addListener(n,i.animationEndEvents,function(){i.remove(n)})},t.build=function(e){!function(e){if(e.options.container)e.layoutDom=document.querySelector(e.options.container);else{var t="noty_layout__"+e.options.layout;e.layoutDom=document.querySelector("div#"+t),e.layoutDom||(e.layoutDom=document.createElement("div"),e.layoutDom.setAttribute("id",t),e.layoutDom.setAttribute("role","alert"),e.layoutDom.setAttribute("aria-live","polite"),i.addClass(e.layoutDom,"noty_layout"),document.querySelector("body").appendChild(e.layoutDom))}}(e);var t='<div class="noty_body">'+e.options.text+"</div>"+function(e){if(d(e)){var t=document.createElement("div");return i.addClass(t,"noty_buttons"),Object.keys(e.options.buttons).forEach(function(n){t.appendChild(e.options.buttons[n].dom)}),e.options.buttons.forEach(function(e){t.appendChild(e.dom)}),t.outerHTML}return""}(e)+'<div class="noty_progressbar"></div>';e.barDom=document.createElement("div"),e.barDom.setAttribute("id",e.id),i.addClass(e.barDom,"noty_bar noty_type__"+e.options.type+" noty_theme__"+e.options.theme),e.barDom.innerHTML=t,f(e,"onTemplate")},t.hasButtons=d,t.handleModal=function(e){var n,o;e.options.modal&&(0===r&&(n=document.querySelector("body"),o=document.createElement("div"),i.addClass(o,"noty_modal"),n.insertBefore(o,n.firstChild),i.addClass(o,"noty_modal_open"),i.addListener(o,i.animationEndEvents,function(){i.removeClass(o,"noty_modal_open")})),t.DocModalCount=r+=1)},t.handleModalClose=function(e){if(e.options.modal&&r>0&&(t.DocModalCount=r-=1,r<=0)){var n=document.querySelector(".noty_modal");n&&(i.removeClass(n,"noty_modal_open"),i.addClass(n,"noty_modal_close"),i.addListener(n,i.animationEndEvents,function(){i.remove(n)}))}},t.queueClose=h,t.dequeueClose=p,t.fire=f,t.openFlow=function(e){f(e,"afterShow"),h(e),i.addListener(e.barDom,"mouseenter",function(){p(e)}),i.addListener(e.barDom,"mouseleave",function(){h(e)})},t.closeFlow=function(e){delete c[e.id],e.closing=!1,f(e,"afterClose"),i.remove(e.barDom),0!==e.layoutDom.querySelectorAll(".noty_bar").length||e.options.container||i.remove(e.layoutDom),(i.inArray("docVisible",e.options.titleCount.conditions)||i.inArray("docHidden",e.options.titleCount.conditions))&&s.decrement(),u(e.options.queue)};var i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(0));t.PageHidden=!1;var r=t.DocModalCount=0,o={originalTitle:null,count:0,changed:!1,timer:-1},s=t.docTitle={increment:function(){o.count++,s._update()},decrement:function(){o.count--,o.count<=0?s._clear():s._update()},_update:function(){var e=document.title;o.changed?document.title="("+o.count+") "+o.originalTitle:(o.originalTitle=e,document.title="("+o.count+") "+e,o.changed=!0)},_clear:function(){o.changed&&(o.count=0,document.title=o.originalTitle,o.changed=!1)}},a=t.DefaultMaxVisible=5,l=t.Queues={global:{maxVisible:a,queue:[]}},c=t.Store={};function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"global";if(l.hasOwnProperty(e)){var t=l[e].queue.shift();t&&t.show()}}function d(e){return!(!e.options.buttons||!Object.keys(e.options.buttons).length)}function h(e){e.options.timeout&&(e.options.progressBar&&e.progressDom&&i.css(e.progressDom,{transition:"width "+e.options.timeout+"ms linear",width:"0%"}),clearTimeout(e.closeTimer),e.closeTimer=setTimeout(function(){e.close()},e.options.timeout))}function p(e){e.options.timeout&&e.closeTimer&&(clearTimeout(e.closeTimer),e.closeTimer=-1,e.options.progressBar&&e.progressDom&&i.css(e.progressDom,{transition:"width 0ms linear",width:"100%"}))}function f(e,t){e.listeners.hasOwnProperty(t)&&e.listeners[t].forEach(function(t){"function"==typeof t&&t.apply(e)})}t.Defaults={type:"alert",layout:"topRight",theme:"mint",text:"",timeout:!1,progressBar:!0,closeWith:["click"],animation:{open:"noty_effects_open",close:"noty_effects_close"},id:!1,force:!1,killer:!1,queue:"global",container:!1,buttons:[],callbacks:{beforeShow:null,onShow:null,afterShow:null,onClose:null,afterClose:null,onClick:null,onHover:null,onTemplate:null},sounds:{sources:[],volume:1,conditions:[]},titleCount:{conditions:[]},modal:!1,visibilityControl:!1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NotyButton=void 0;var i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(0));t.NotyButton=function e(t,n,r){var o=this,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.dom=document.createElement("button"),this.dom.innerHTML=t,this.id=s.id=s.id||i.generateID("button"),this.cb=r,Object.keys(s).forEach(function(e){o.dom.setAttribute(e,s[e])}),i.addClass(this.dom,n||"noty_btn"),this}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();t.Push=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/service-worker.js";return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.subData={},this.workerPath=t,this.listeners={onPermissionGranted:[],onPermissionDenied:[],onSubscriptionSuccess:[],onSubscriptionCancel:[],onWorkerError:[],onWorkerSuccess:[],onWorkerNotSupported:[]},this}return i(e,[{key:"on",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};return"function"==typeof t&&this.listeners.hasOwnProperty(e)&&this.listeners[e].push(t),this}},{key:"fire",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this.listeners.hasOwnProperty(e)&&this.listeners[e].forEach(function(e){"function"==typeof e&&e.apply(t,n)})}},{key:"create",value:function(){console.log("NOT IMPLEMENTED YET")}},{key:"isSupported",value:function(){var e=!1;try{e=window.Notification||window.webkitNotifications||navigator.mozNotification||window.external&&void 0!==window.external.msIsSiteMode()}catch(e){}return e}},{key:"getPermissionStatus",value:function(){var e="default";if(window.Notification&&window.Notification.permissionLevel)e=window.Notification.permissionLevel;else if(window.webkitNotifications&&window.webkitNotifications.checkPermission)switch(window.webkitNotifications.checkPermission()){case 1:e="default";break;case 0:e="granted";break;default:e="denied"}else window.Notification&&window.Notification.permission?e=window.Notification.permission:navigator.mozNotification?e="granted":window.external&&void 0!==window.external.msIsSiteMode()&&(e=window.external.msIsSiteMode()?"granted":"default");return e.toString().toLowerCase()}},{key:"getEndpoint",value:function(e){var t=e.endpoint,n=e.subscriptionId;return n&&-1===t.indexOf(n)&&(t+="/"+n),t}},{key:"isSWRegistered",value:function(){try{return"activated"===navigator.serviceWorker.controller.state}catch(e){return!1}}},{key:"unregisterWorker",value:function(){var e=this;"serviceWorker"in navigator&&navigator.serviceWorker.getRegistrations().then(function(t){var n=!0,i=!1,r=void 0;try{for(var o,s=t[Symbol.iterator]();!(n=(o=s.next()).done);n=!0)o.value.unregister(),e.fire("onSubscriptionCancel")}catch(e){i=!0,r=e}finally{try{!n&&s.return&&s.return()}finally{if(i)throw r}}})}},{key:"requestSubscription",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=this,i=this.getPermissionStatus(),r=function(i){"granted"===i?(e.fire("onPermissionGranted"),"serviceWorker"in navigator?navigator.serviceWorker.register(e.workerPath).then(function(){navigator.serviceWorker.ready.then(function(e){n.fire("onWorkerSuccess"),e.pushManager.subscribe({userVisibleOnly:t}).then(function(e){var t=e.getKey("p256dh"),i=e.getKey("auth");n.subData={endpoint:n.getEndpoint(e),p256dh:t?window.btoa(String.fromCharCode.apply(null,new Uint8Array(t))):null,auth:i?window.btoa(String.fromCharCode.apply(null,new Uint8Array(i))):null},n.fire("onSubscriptionSuccess",[n.subData])}).catch(function(e){n.fire("onWorkerError",[e])})})}):n.fire("onWorkerNotSupported")):"denied"===i&&(e.fire("onPermissionDenied"),e.unregisterWorker())};"default"===i?window.Notification&&window.Notification.requestPermission?window.Notification.requestPermission(r):window.webkitNotifications&&window.webkitNotifications.checkPermission&&window.webkitNotifications.requestPermission(r):r(i)}}]),e}()},function(e,t,n){(function(t,i){var r;r=function(){"use strict";function e(e){return"function"==typeof e}var r=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},o=0,s=void 0,a=void 0,l=function(e,t){g[o]=e,g[o+1]=t,2===(o+=2)&&(a?a(m):M())},c="undefined"!=typeof window?window:void 0,u=c||{},d=u.MutationObserver||u.WebKitMutationObserver,h="undefined"==typeof self&&void 0!==t&&"[object process]"==={}.toString.call(t),p="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function f(){var e=setTimeout;return function(){return e(m,1)}}var g=new Array(1e3);function m(){for(var e=0;e<o;e+=2)(0,g[e])(g[e+1]),g[e]=void 0,g[e+1]=void 0;o=0}var y,w,b,v,M=void 0;function x(e,t){var n=arguments,i=this,r=new this.constructor(N);void 0===r[_]&&Y(r);var o,s=i._state;return s?(o=n[s-1],l(function(){return U(s,r,o,i._result)})):O(i,r,e,t),r}function L(e){if(e&&"object"==typeof e&&e.constructor===this)return e;var t=new this(N);return j(t,e),t}h?M=function(){return t.nextTick(m)}:d?(w=0,b=new d(m),v=document.createTextNode(""),b.observe(v,{characterData:!0}),M=function(){v.data=w=++w%2}):p?((y=new MessageChannel).port1.onmessage=m,M=function(){return y.port2.postMessage(0)}):M=void 0===c?function(){try{var e=n(9);return void 0!==(s=e.runOnLoop||e.runOnContext)?function(){s(m)}:f()}catch(e){return f()}}():f();var _=Math.random().toString(36).substring(16);function N(){}var S=void 0,C=1,T=2,k=new R;function A(e){try{return e.then}catch(e){return k.error=e,k}}function D(t,n,i){n.constructor===t.constructor&&i===x&&n.constructor.resolve===L?function(e,t){t._state===C?E(e,t._result):t._state===T?I(e,t._result):O(t,void 0,function(t){return j(e,t)},function(t){return I(e,t)})}(t,n):i===k?(I(t,k.error),k.error=null):void 0===i?E(t,n):e(i)?function(e,t,n){l(function(e){var i=!1,r=function(e,t,n,i){try{e.call(t,n,i)}catch(e){return e}}(n,t,function(n){i||(i=!0,t!==n?j(e,n):E(e,n))},function(t){i||(i=!0,I(e,t))},e._label);!i&&r&&(i=!0,I(e,r))},e)}(t,n,i):E(t,n)}function j(e,t){var n,i;e===t?I(e,new TypeError("You cannot resolve a promise with itself")):(i=typeof(n=t),null===n||"object"!==i&&"function"!==i?E(e,t):D(e,t,A(t)))}function z(e){e._onerror&&e._onerror(e._result),$(e)}function E(e,t){e._state===S&&(e._result=t,e._state=C,0!==e._subscribers.length&&l($,e))}function I(e,t){e._state===S&&(e._state=T,e._result=t,l(z,e))}function O(e,t,n,i){var r=e._subscribers,o=r.length;e._onerror=null,r[o]=t,r[o+C]=n,r[o+T]=i,0===o&&e._state&&l($,e)}function $(e){var t=e._subscribers,n=e._state;if(0!==t.length){for(var i=void 0,r=void 0,o=e._result,s=0;s<t.length;s+=3)i=t[s],r=t[s+n],i?U(n,i,r,o):r(o);e._subscribers.length=0}}function R(){this.error=null}var P=new R;function U(t,n,i,r){var o=e(i),s=void 0,a=void 0,l=void 0,c=void 0;if(o){if(s=function(e,t){try{return e(t)}catch(e){return P.error=e,P}}(i,r),s===P?(c=!0,a=s.error,s.error=null):l=!0,n===s)return void I(n,new TypeError("A promises callback cannot return that same promise."))}else s=r,l=!0;n._state!==S||(o&&l?j(n,s):c?I(n,a):t===C?E(n,s):t===T&&I(n,s))}var F=0;function Y(e){e[_]=F++,e._state=void 0,e._result=void 0,e._subscribers=[]}function Q(e,t){this._instanceConstructor=e,this.promise=new e(N),this.promise[_]||Y(this.promise),r(t)?(this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?E(this.promise,this._result):(this.length=this.length||0,this._enumerate(t),0===this._remaining&&E(this.promise,this._result))):I(this.promise,new Error("Array Methods must be provided an Array"))}function W(e){this[_]=F++,this._result=this._state=void 0,this._subscribers=[],N!==e&&("function"!=typeof e&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof W?function(e,t){try{t(function(t){j(e,t)},function(t){I(e,t)})}catch(t){I(e,t)}}(this,e):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return Q.prototype._enumerate=function(e){for(var t=0;this._state===S&&t<e.length;t++)this._eachEntry(e[t],t)},Q.prototype._eachEntry=function(e,t){var n=this._instanceConstructor,i=n.resolve;if(i===L){var r=A(e);if(r===x&&e._state!==S)this._settledAt(e._state,t,e._result);else if("function"!=typeof r)this._remaining--,this._result[t]=e;else if(n===W){var o=new n(N);D(o,e,r),this._willSettleAt(o,t)}else this._willSettleAt(new n(function(t){return t(e)}),t)}else this._willSettleAt(i(e),t)},Q.prototype._settledAt=function(e,t,n){var i=this.promise;i._state===S&&(this._remaining--,e===T?I(i,n):this._result[t]=n),0===this._remaining&&E(i,this._result)},Q.prototype._willSettleAt=function(e,t){var n=this;O(e,void 0,function(e){return n._settledAt(C,t,e)},function(e){return n._settledAt(T,t,e)})},W.all=function(e){return new Q(this,e).promise},W.race=function(e){var t=this;return r(e)?new t(function(n,i){for(var r=e.length,o=0;o<r;o++)t.resolve(e[o]).then(n,i)}):new t(function(e,t){return t(new TypeError("You must pass an array to race."))})},W.resolve=L,W.reject=function(e){var t=new this(N);return I(t,e),t},W._setScheduler=function(e){a=e},W._setAsap=function(e){l=e},W._asap=l,W.prototype={constructor:W,then:x,catch:function(e){return this.then(null,e)}},W.polyfill=function(){var e=void 0;if(void 0!==i)e=i;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var t=e.Promise;if(t){var n=null;try{n=Object.prototype.toString.call(t.resolve())}catch(e){}if("[object Promise]"===n&&!t.cast)return}e.Promise=W},W.Promise=W,W},e.exports=r()}).call(t,n(7),n(8))},function(e,t){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();n(5);var r,o=n(4),s=(r=o)&&r.__esModule?r:{default:r},a=d(n(0)),l=d(n(1)),c=n(2),u=n(3);function d(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}var h=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.options=a.deepExtend({},l.Defaults,t),l.Store[this.options.id]?l.Store[this.options.id]:(this.id=this.options.id||a.generateID("bar"),this.closeTimer=-1,this.barDom=null,this.layoutDom=null,this.progressDom=null,this.showing=!1,this.shown=!1,this.closed=!1,this.closing=!1,this.killable=this.options.timeout||this.options.closeWith.length>0,this.hasSound=this.options.sounds.sources.length>0,this.soundPlayed=!1,this.listeners={beforeShow:[],onShow:[],afterShow:[],onClose:[],afterClose:[],onClick:[],onHover:[],onTemplate:[]},this.promises={show:null,close:null},this.on("beforeShow",this.options.callbacks.beforeShow),this.on("onShow",this.options.callbacks.onShow),this.on("afterShow",this.options.callbacks.afterShow),this.on("onClose",this.options.callbacks.onClose),this.on("afterClose",this.options.callbacks.afterClose),this.on("onClick",this.options.callbacks.onClick),this.on("onHover",this.options.callbacks.onHover),this.on("onTemplate",this.options.callbacks.onTemplate),this)}return i(e,[{key:"on",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};return"function"==typeof t&&this.listeners.hasOwnProperty(e)&&this.listeners[e].push(t),this}},{key:"show",value:function(){var t=this;if(this.showing||this.shown)return this;!0===this.options.killer?e.closeAll():"string"==typeof this.options.killer&&e.closeAll(this.options.killer);var n=l.getQueueCounts(this.options.queue);if(n.current>=n.maxVisible||l.PageHidden&&this.options.visibilityControl)return l.addToQueue(this),l.PageHidden&&this.hasSound&&a.inArray("docHidden",this.options.sounds.conditions)&&a.createAudioElements(this),l.PageHidden&&a.inArray("docHidden",this.options.titleCount.conditions)&&l.docTitle.increment(),this;if(l.Store[this.id]=this,l.fire(this,"beforeShow"),this.showing=!0,this.closing)return this.showing=!1,this;if(l.build(this),l.handleModal(this),this.options.force?this.layoutDom.insertBefore(this.barDom,this.layoutDom.firstChild):this.layoutDom.appendChild(this.barDom),this.hasSound&&!this.soundPlayed&&a.inArray("docVisible",this.options.sounds.conditions)&&a.createAudioElements(this),a.inArray("docVisible",this.options.titleCount.conditions)&&l.docTitle.increment(),this.shown=!0,this.closed=!1,l.hasButtons(this)&&Object.keys(this.options.buttons).forEach(function(e){var n=t.barDom.querySelector("#"+t.options.buttons[e].id);a.addListener(n,"click",function(n){a.stopPropagation(n),t.options.buttons[e].cb(t)})}),this.progressDom=this.barDom.querySelector(".noty_progressbar"),a.inArray("click",this.options.closeWith)&&(a.addClass(this.barDom,"noty_close_with_click"),a.addListener(this.barDom,"click",function(e){a.stopPropagation(e),l.fire(t,"onClick"),t.close()},!1)),a.addListener(this.barDom,"mouseenter",function(){l.fire(t,"onHover")},!1),this.options.timeout&&a.addClass(this.barDom,"noty_has_timeout"),this.options.progressBar&&a.addClass(this.barDom,"noty_has_progressbar"),a.inArray("button",this.options.closeWith)){a.addClass(this.barDom,"noty_close_with_button");var i=document.createElement("div");a.addClass(i,"noty_close_button"),i.innerHTML="×",this.barDom.appendChild(i),a.addListener(i,"click",function(e){a.stopPropagation(e),t.close()},!1)}return l.fire(this,"onShow"),null===this.options.animation.open?this.promises.show=new s.default(function(e){e()}):"function"==typeof this.options.animation.open?this.promises.show=new s.default(this.options.animation.open.bind(this)):(a.addClass(this.barDom,this.options.animation.open),this.promises.show=new s.default(function(e){a.addListener(t.barDom,a.animationEndEvents,function(){a.removeClass(t.barDom,t.options.animation.open),e()})})),this.promises.show.then(function(){var e=t;setTimeout(function(){l.openFlow(e)},100)}),this}},{key:"stop",value:function(){return l.dequeueClose(this),this}},{key:"resume",value:function(){return l.queueClose(this),this}},{key:"setTimeout",value:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(e){if(this.stop(),this.options.timeout=e,this.barDom){this.options.timeout?a.addClass(this.barDom,"noty_has_timeout"):a.removeClass(this.barDom,"noty_has_timeout");var t=this;setTimeout(function(){t.resume()},100)}return this})},{key:"setText",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.barDom&&(this.barDom.querySelector(".noty_body").innerHTML=e),t&&(this.options.text=e),this}},{key:"setType",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.barDom&&(a.classList(this.barDom).split(" ").forEach(function(e){"noty_type__"===e.substring(0,11)&&a.removeClass(t.barDom,e)}),a.addClass(this.barDom,"noty_type__"+e)),n&&(this.options.type=e),this}},{key:"setTheme",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.barDom&&(a.classList(this.barDom).split(" ").forEach(function(e){"noty_theme__"===e.substring(0,12)&&a.removeClass(t.barDom,e)}),a.addClass(this.barDom,"noty_theme__"+e)),n&&(this.options.theme=e),this}},{key:"close",value:function(){var e=this;return this.closed?this:this.shown?(l.fire(this,"onClose"),this.closing=!0,null===this.options.animation.close||!1===this.options.animation.close?this.promises.close=new s.default(function(e){e()}):"function"==typeof this.options.animation.close?this.promises.close=new s.default(this.options.animation.close.bind(this)):(a.addClass(this.barDom,this.options.animation.close),this.promises.close=new s.default(function(t){a.addListener(e.barDom,a.animationEndEvents,function(){e.options.force?a.remove(e.barDom):l.ghostFix(e),t()})})),this.promises.close.then(function(){l.closeFlow(e),l.handleModalClose(e)}),this.closed=!0,this):(l.removeFromQueue(this),this)}}],[{key:"closeAll",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return Object.keys(l.Store).forEach(function(t){e?l.Store[t].options.queue===e&&l.Store[t].killable&&l.Store[t].close():l.Store[t].killable&&l.Store[t].close()}),this}},{key:"clearQueue",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"global";return l.Queues.hasOwnProperty(e)&&(l.Queues[e].queue=[]),this}},{key:"overrideDefaults",value:function(e){return l.Defaults=a.deepExtend({},l.Defaults,e),this}},{key:"setMaxVisible",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l.DefaultMaxVisible,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"global";return l.Queues.hasOwnProperty(t)||(l.Queues[t]={maxVisible:e,queue:[]}),l.Queues[t].maxVisible=e,this}},{key:"button",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments[2],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new c.NotyButton(e,t,n,i)}},{key:"version",value:function(){return"3.2.0-beta"}},{key:"Push",value:function(e){return new u.Push(e)}},{key:"Queues",get:function(){return l.Queues}},{key:"PageHidden",get:function(){return l.PageHidden}}]),e}();t.default=h,"undefined"!=typeof window&&a.visibilityChangeFlow(),e.exports=t.default},function(e,t){var n,i,r=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{i="function"==typeof clearTimeout?clearTimeout:s}catch(e){i=s}}();var l,c=[],u=!1,d=-1;function h(){u&&l&&(u=!1,l.length?c=l.concat(c):d=-1,c.length&&p())}function p(){if(!u){var e=a(h);u=!0;for(var t=c.length;t;){for(l=c,c=[];++d<t;)l&&l[d].run();d=-1,t=c.length}l=null,u=!1,function(e){if(i===clearTimeout)return clearTimeout(e);if((i===s||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(e);try{return i(e)}catch(t){try{return i.call(null,e)}catch(t){return i.call(this,e)}}}(e)}}function f(e,t){this.fun=e,this.array=t}function g(){}r.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new f(e,t)),1!==c.length||u||a(p)},f.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=g,r.addListener=g,r.once=g,r.off=g,r.removeListener=g,r.removeAllListeners=g,r.emit=g,r.prependListener=g,r.prependOnceListener=g,r.listeners=function(e){return[]},r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){}])},e.exports=t()},79240(e,t){"use strict";function n(e){const t=e.lastIndexOf(".");return-1===t||0===t?"":e.slice(t)}function i(e){let t="\\";for(const n of e)if("/"===n||"\\"===n){t=n;break}return t}t.Jn=function(e,t){let n=i(e);if("."===t)return e;if(".."===t){if(e.length>1){let t=e[e.length-1]===n?1:0;for(let i=e.length-1-t;i>=0;i--)if(e[i]===n)return e.substring(0,i+1)}return e}return e.endsWith(n)&&t.startsWith(n)?e.slice(0,-1)+t:e.endsWith(n)||t.startsWith(n)?e+t:e+n+t},t.Z1=function(e){if("string"!=typeof e)return!1;return/^[a-zA-Z]:[\\\/]/.test(e)||/^\//.test(e)};const r={".com":4,".exe":3,".bat":2,".cmd":1}},31247(e,t,n){"use strict";var i=n(69982),r=n(96540),o=n(40961);function s(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function a(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function l(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{!!(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function c(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function u(e){if(31===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function d(e){if(l(e)!==e)throw Error(s(188))}function h(e){var t=e.tag;if(5===t||26===t||27===t||6===t)return e;for(e=e.child;null!==e;){if(null!==(t=h(e)))return t;e=e.sibling}return null}var p=Object.assign,f=Symbol.for("react.element"),g=Symbol.for("react.transitional.element"),m=Symbol.for("react.portal"),y=Symbol.for("react.fragment"),w=Symbol.for("react.strict_mode"),b=Symbol.for("react.profiler"),v=Symbol.for("react.consumer"),M=Symbol.for("react.context"),x=Symbol.for("react.forward_ref"),L=Symbol.for("react.suspense"),_=Symbol.for("react.suspense_list"),N=Symbol.for("react.memo"),S=Symbol.for("react.lazy");Symbol.for("react.scope");var C=Symbol.for("react.activity");Symbol.for("react.legacy_hidden"),Symbol.for("react.tracing_marker");var T=Symbol.for("react.memo_cache_sentinel");Symbol.for("react.view_transition");var k=Symbol.iterator;function A(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=k&&e[k]||e["@@iterator"])?e:null}var D=Symbol.for("react.client.reference");function j(e){if(null==e)return null;if("function"==typeof e)return e.$$typeof===D?null:e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case y:return"Fragment";case b:return"Profiler";case w:return"StrictMode";case L:return"Suspense";case _:return"SuspenseList";case C:return"Activity"}if("object"==typeof e)switch(e.$$typeof){case m:return"Portal";case M:return e.displayName||"Context";case v:return(e._context.displayName||"Context")+".Consumer";case x:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case N:return null!==(t=e.displayName||null)?t:j(e.type)||"Memo";case S:t=e._payload,e=e._init;try{return j(e(t))}catch(e){}}return null}var z=Array.isArray,E=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,I=o.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,O={pending:!1,data:null,method:null,action:null},$=[],R=-1;function P(e){return{current:e}}function U(e){0>R||(e.current=$[R],$[R]=null,R--)}function F(e,t){R++,$[R]=e.current,e.current=t}var Y,Q,W=P(null),B=P(null),H=P(null),V=P(null);function G(e,t){switch(F(H,t),F(B,e),F(W,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?yd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=wd(t=yd(t),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}U(W),F(W,e)}function K(){U(W),U(B),U(H)}function q(e){null!==e.memoizedState&&F(V,e);var t=W.current,n=wd(t,e.type);t!==n&&(F(B,e),F(W,n))}function Z(e){B.current===e&&(U(W),U(B)),V.current===e&&(U(V),uh._currentValue=O)}function X(e){if(void 0===Y)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Y=t&&t[1]||"",Q=-1<e.stack.indexOf("\n at")?" (<anonymous>)":-1<e.stack.indexOf("@")?"@unknown:0:0":""}return"\n"+Y+e+Q}var J=!1;function ee(e,t){if(!e||J)return"";J=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var i={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var i=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){i=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){i=e}(n=e())&&"function"==typeof n.catch&&n.catch(function(){})}}catch(e){if(e&&i&&"string"==typeof e.stack)return[e.stack,i.stack]}return[null,null]}};i.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var r=Object.getOwnPropertyDescriptor(i.DetermineComponentFrameRoot,"name");r&&r.configurable&&Object.defineProperty(i.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var o=i.DetermineComponentFrameRoot(),s=o[0],a=o[1];if(s&&a){var l=s.split("\n"),c=a.split("\n");for(r=i=0;i<l.length&&!l[i].includes("DetermineComponentFrameRoot");)i++;for(;r<c.length&&!c[r].includes("DetermineComponentFrameRoot");)r++;if(i===l.length||r===c.length)for(i=l.length-1,r=c.length-1;1<=i&&0<=r&&l[i]!==c[r];)r--;for(;1<=i&&0<=r;i--,r--)if(l[i]!==c[r]){if(1!==i||1!==r)do{if(i--,0>--r||l[i]!==c[r]){var u="\n"+l[i].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),u}}while(1<=i&&0<=r);break}}}finally{J=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?X(n):""}function te(e,t){switch(e.tag){case 26:case 27:case 5:return X(e.type);case 16:return X("Lazy");case 13:return e.child!==t&&null!==t?X("Suspense Fallback"):X("Suspense");case 19:return X("SuspenseList");case 0:case 15:return ee(e.type,!1);case 11:return ee(e.type.render,!1);case 1:return ee(e.type,!0);case 31:return X("Activity");default:return""}}function ne(e){try{var t="",n=null;do{t+=te(e,n),n=e,e=e.return}while(e);return t}catch(e){return"\nError generating stack: "+e.message+"\n"+e.stack}}var ie=Object.prototype.hasOwnProperty,re=i.unstable_scheduleCallback,oe=i.unstable_cancelCallback,se=i.unstable_shouldYield,ae=i.unstable_requestPaint,le=i.unstable_now,ce=i.unstable_getCurrentPriorityLevel,ue=i.unstable_ImmediatePriority,de=i.unstable_UserBlockingPriority,he=i.unstable_NormalPriority,pe=i.unstable_LowPriority,fe=i.unstable_IdlePriority,ge=i.log,me=i.unstable_setDisableYieldValue,ye=null,we=null;function be(e){if("function"==typeof ge&&me(e),we&&"function"==typeof we.setStrictMode)try{we.setStrictMode(ye,e)}catch(e){}}var ve=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(Me(e)/xe|0)|0},Me=Math.log,xe=Math.LN2;var Le=256,_e=262144,Ne=4194304;function Se(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return 261888&e;case 262144:case 524288:case 1048576:case 2097152:return 3932160&e;case 4194304:case 8388608:case 16777216:case 33554432:return 62914560&e;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ce(e,t,n){var i=e.pendingLanes;if(0===i)return 0;var r=0,o=e.suspendedLanes,s=e.pingedLanes;e=e.warmLanes;var a=134217727&i;return 0!==a?0!==(i=a&~o)?r=Se(i):0!==(s&=a)?r=Se(s):n||0!==(n=a&~e)&&(r=Se(n)):0!==(a=i&~o)?r=Se(a):0!==s?r=Se(s):n||0!==(n=i&~e)&&(r=Se(n)),0===r?0:0!==t&&t!==r&&0===(t&o)&&((o=r&-r)>=(n=t&-t)||32===o&&4194048&n)?t:r}function Te(e,t){return 0===(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function ke(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function Ae(){var e=Ne;return!(62914560&(Ne<<=1))&&(Ne=4194304),e}function De(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function je(e,t){e.pendingLanes|=t,268435456!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ze(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var i=31-ve(t);e.entangledLanes|=t,e.entanglements[i]=1073741824|e.entanglements[i]|261930&n}function Ee(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var i=31-ve(n),r=1<<i;r&t|e[i]&t&&(e[i]|=t),n&=~r}}function Ie(e,t){var n=t&-t;return 0!==((n=42&n?1:Oe(n))&(e.suspendedLanes|t))?0:n}function Oe(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function $e(e){return 2<(e&=-e)?8<e?134217727&e?32:268435456:8:2}function Re(){var e=I.p;return 0!==e?e:void 0===(e=window.event)?32:Sh(e.type)}function Pe(e,t){var n=I.p;try{return I.p=e,t()}finally{I.p=n}}var Ue=Math.random().toString(36).slice(2),Fe="__reactFiber$"+Ue,Ye="__reactProps$"+Ue,Qe="__reactContainer$"+Ue,We="__reactEvents$"+Ue,Be="__reactListeners$"+Ue,He="__reactHandles$"+Ue,Ve="__reactResources$"+Ue,Ge="__reactMarker$"+Ue;function Ke(e){delete e[Fe],delete e[Ye],delete e[We],delete e[Be],delete e[He]}function qe(e){var t=e[Fe];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Qe]||n[Fe]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Od(e);null!==e;){if(n=e[Fe])return n;e=Od(e)}return t}n=(e=n).parentNode}return null}function Ze(e){if(e=e[Fe]||e[Qe]){var t=e.tag;if(5===t||6===t||13===t||31===t||26===t||27===t||3===t)return e}return null}function Xe(e){var t=e.tag;if(5===t||26===t||27===t||6===t)return e.stateNode;throw Error(s(33))}function Je(e){var t=e[Ve];return t||(t=e[Ve]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function et(e){e[Ge]=!0}var tt=new Set,nt={};function it(e,t){rt(e,t),rt(e+"Capture",t)}function rt(e,t){for(nt[e]=t,e=0;e<t.length;e++)tt.add(t[e])}var ot=RegExp("^[: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][: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]*$"),st={},at={};function lt(e,t,n){if(r=t,ie.call(at,r)||!ie.call(st,r)&&(ot.test(r)?at[r]=!0:(st[r]=!0,0)))if(null===n)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":return void e.removeAttribute(t);case"boolean":var i=t.toLowerCase().slice(0,5);if("data-"!==i&&"aria-"!==i)return void e.removeAttribute(t)}e.setAttribute(t,""+n)}var r}function ct(e,t,n){if(null===n)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":return void e.removeAttribute(t)}e.setAttribute(t,""+n)}}function ut(e,t,n,i){if(null===i)e.removeAttribute(n);else{switch(typeof i){case"undefined":case"function":case"symbol":case"boolean":return void e.removeAttribute(n)}e.setAttributeNS(t,n,""+i)}}function dt(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function ht(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function pt(e){if(!e._valueTracker){var t=ht(e)?"checked":"value";e._valueTracker=function(e,t,n){var i=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&void 0!==i&&"function"==typeof i.get&&"function"==typeof i.set){var r=i.get,o=i.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return r.call(this)},set:function(e){n=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:i.enumerable}),{getValue:function(){return n},setValue:function(e){n=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e,t,""+e[t])}}function ft(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),i="";return e&&(i=ht(e)?e.checked?"true":"false":e.value),(e=i)!==n&&(t.setValue(e),!0)}function gt(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}var mt=/[\n"\\]/g;function yt(e){return e.replace(mt,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function wt(e,t,n,i,r,o,s,a){e.name="",null!=s&&"function"!=typeof s&&"symbol"!=typeof s&&"boolean"!=typeof s?e.type=s:e.removeAttribute("type"),null!=t?"number"===s?(0===t&&""===e.value||e.value!=t)&&(e.value=""+dt(t)):e.value!==""+dt(t)&&(e.value=""+dt(t)):"submit"!==s&&"reset"!==s||e.removeAttribute("value"),null!=t?vt(e,s,dt(t)):null!=n?vt(e,s,dt(n)):null!=i&&e.removeAttribute("value"),null==r&&null!=o&&(e.defaultChecked=!!o),null!=r&&(e.checked=r&&"function"!=typeof r&&"symbol"!=typeof r),null!=a&&"function"!=typeof a&&"symbol"!=typeof a&&"boolean"!=typeof a?e.name=""+dt(a):e.removeAttribute("name")}function bt(e,t,n,i,r,o,s,a){if(null!=o&&"function"!=typeof o&&"symbol"!=typeof o&&"boolean"!=typeof o&&(e.type=o),null!=t||null!=n){if(("submit"===o||"reset"===o)&&null==t)return void pt(e);n=null!=n?""+dt(n):"",t=null!=t?""+dt(t):n,a||t===e.value||(e.value=t),e.defaultValue=t}i="function"!=typeof(i=null!=i?i:r)&&"symbol"!=typeof i&&!!i,e.checked=a?e.checked:!!i,e.defaultChecked=!!i,null!=s&&"function"!=typeof s&&"symbol"!=typeof s&&"boolean"!=typeof s&&(e.name=s),pt(e)}function vt(e,t,n){"number"===t&&gt(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function Mt(e,t,n,i){if(e=e.options,t){t={};for(var r=0;r<n.length;r++)t["$"+n[r]]=!0;for(n=0;n<e.length;n++)r=t.hasOwnProperty("$"+e[n].value),e[n].selected!==r&&(e[n].selected=r),r&&i&&(e[n].defaultSelected=!0)}else{for(n=""+dt(n),t=null,r=0;r<e.length;r++){if(e[r].value===n)return e[r].selected=!0,void(i&&(e[r].defaultSelected=!0));null!==t||e[r].disabled||(t=e[r])}null!==t&&(t.selected=!0)}}function xt(e,t,n){null==t||((t=""+dt(t))!==e.value&&(e.value=t),null!=n)?e.defaultValue=null!=n?""+dt(n):"":e.defaultValue!==t&&(e.defaultValue=t)}function Lt(e,t,n,i){if(null==t){if(null!=i){if(null!=n)throw Error(s(92));if(z(i)){if(1<i.length)throw Error(s(93));i=i[0]}n=i}null==n&&(n=""),t=n}n=dt(t),e.defaultValue=n,(i=e.textContent)===n&&""!==i&&null!==i&&(e.value=i),pt(e)}function _t(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var Nt=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function St(e,t,n){var i=0===t.indexOf("--");null==n||"boolean"==typeof n||""===n?i?e.setProperty(t,""):"float"===t?e.cssFloat="":e[t]="":i?e.setProperty(t,n):"number"!=typeof n||0===n||Nt.has(t)?"float"===t?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function Ct(e,t,n){if(null!=t&&"object"!=typeof t)throw Error(s(62));if(e=e.style,null!=n){for(var i in n)!n.hasOwnProperty(i)||null!=t&&t.hasOwnProperty(i)||(0===i.indexOf("--")?e.setProperty(i,""):"float"===i?e.cssFloat="":e[i]="");for(var r in t)i=t[r],t.hasOwnProperty(r)&&n[r]!==i&&St(e,r,i)}else for(var o in t)t.hasOwnProperty(o)&&St(e,o,t[o])}function Tt(e){if(-1===e.indexOf("-"))return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var kt=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),At=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Dt(e){return At.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function jt(){}var zt=null;function Et(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var It=null,Ot=null;function $t(e){var t=Ze(e);if(t&&(e=t.stateNode)){var n=e[Ye]||null;e:switch(e=t.stateNode,t.type){case"input":if(wt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name="'+yt(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var i=n[t];if(i!==e&&i.form===e.form){var r=i[Ye]||null;if(!r)throw Error(s(90));wt(i,r.value,r.defaultValue,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name)}}for(t=0;t<n.length;t++)(i=n[t]).form===e.form&&ft(i)}break e;case"textarea":xt(e,n.value,n.defaultValue);break e;case"select":null!=(t=n.value)&&Mt(e,!!n.multiple,t,!1)}}}var Rt=!1;function Pt(e,t,n){if(Rt)return e(t,n);Rt=!0;try{return e(t)}finally{if(Rt=!1,(null!==It||null!==Ot)&&(Jc(),It&&(t=It,e=Ot,Ot=It=null,$t(t),e)))for(t=0;t<e.length;t++)$t(e[t])}}function Ut(e,t){var n=e.stateNode;if(null===n)return null;var i=n[Ye]||null;if(null===i)return null;n=i[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(i=!i.disabled)||(i=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!i;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(s(231,t,typeof n));return n}var Ft=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),Yt=!1;if(Ft)try{var Qt={};Object.defineProperty(Qt,"passive",{get:function(){Yt=!0}}),window.addEventListener("test",Qt,Qt),window.removeEventListener("test",Qt,Qt)}catch(e){Yt=!1}var Wt=null,Bt=null,Ht=null;function Vt(){if(Ht)return Ht;var e,t,n=Bt,i=n.length,r="value"in Wt?Wt.value:Wt.textContent,o=r.length;for(e=0;e<i&&n[e]===r[e];e++);var s=i-e;for(t=1;t<=s&&n[i-t]===r[o-t];t++);return Ht=r.slice(e,1<t?1-t:void 0)}function Gt(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function Kt(){return!0}function qt(){return!1}function Zt(e){function t(t,n,i,r,o){for(var s in this._reactName=t,this._targetInst=i,this.type=n,this.nativeEvent=r,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(s)&&(t=e[s],this[s]=t?t(r):r[s]);return this.isDefaultPrevented=(null!=r.defaultPrevented?r.defaultPrevented:!1===r.returnValue)?Kt:qt,this.isPropagationStopped=qt,this}return p(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=Kt)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=Kt)},persist:function(){},isPersistent:Kt}),t}var Xt,Jt,en,tn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},nn=Zt(tn),rn=p({},tn,{view:0,detail:0}),on=Zt(rn),sn=p({},rn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:yn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==en&&(en&&"mousemove"===e.type?(Xt=e.screenX-en.screenX,Jt=e.screenY-en.screenY):Jt=Xt=0,en=e),Xt)},movementY:function(e){return"movementY"in e?e.movementY:Jt}}),an=Zt(sn),ln=Zt(p({},sn,{dataTransfer:0})),cn=Zt(p({},rn,{relatedTarget:0})),un=Zt(p({},tn,{animationName:0,elapsedTime:0,pseudoElement:0})),dn=Zt(p({},tn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}})),hn=Zt(p({},tn,{data:0})),pn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},fn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},gn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function mn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=gn[e])&&!!t[e]}function yn(){return mn}var wn=Zt(p({},rn,{key:function(e){if(e.key){var t=pn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=Gt(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?fn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:yn,charCode:function(e){return"keypress"===e.type?Gt(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?Gt(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}})),bn=Zt(p({},sn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),vn=Zt(p({},rn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:yn})),Mn=Zt(p({},tn,{propertyName:0,elapsedTime:0,pseudoElement:0})),xn=Zt(p({},sn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),Ln=Zt(p({},tn,{newState:0,oldState:0})),_n=[9,13,27,32],Nn=Ft&&"CompositionEvent"in window,Sn=null;Ft&&"documentMode"in document&&(Sn=document.documentMode);var Cn=Ft&&"TextEvent"in window&&!Sn,Tn=Ft&&(!Nn||Sn&&8<Sn&&11>=Sn),kn=String.fromCharCode(32),An=!1;function Dn(e,t){switch(e){case"keyup":return-1!==_n.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function jn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var zn=!1;var En={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function In(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!En[e.type]:"textarea"===t}function On(e,t,n,i){It?Ot?Ot.push(i):Ot=[i]:It=i,0<(t=id(t,"onChange")).length&&(n=new nn("onChange","change",null,n,i),e.push({event:n,listeners:t}))}var $n=null,Rn=null;function Pn(e){Ku(e,0)}function Un(e){if(ft(Xe(e)))return e}function Fn(e,t){if("change"===e)return t}var Yn=!1;if(Ft){var Qn;if(Ft){var Wn="oninput"in document;if(!Wn){var Bn=document.createElement("div");Bn.setAttribute("oninput","return;"),Wn="function"==typeof Bn.oninput}Qn=Wn}else Qn=!1;Yn=Qn&&(!document.documentMode||9<document.documentMode)}function Hn(){$n&&($n.detachEvent("onpropertychange",Vn),Rn=$n=null)}function Vn(e){if("value"===e.propertyName&&Un(Rn)){var t=[];On(t,Rn,e,Et(e)),Pt(Pn,t)}}function Gn(e,t,n){"focusin"===e?(Hn(),Rn=n,($n=t).attachEvent("onpropertychange",Vn)):"focusout"===e&&Hn()}function Kn(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Un(Rn)}function qn(e,t){if("click"===e)return Un(t)}function Zn(e,t){if("input"===e||"change"===e)return Un(t)}var Xn="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function Jn(e,t){if(Xn(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(i=0;i<n.length;i++){var r=n[i];if(!ie.call(t,r)||!Xn(e[r],t[r]))return!1}return!0}function ei(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ti(e,t){var n,i=ei(e);for(e=0;i;){if(3===i.nodeType){if(n=e+i.textContent.length,e<=t&&n>=t)return{node:i,offset:t-e};e=n}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=ei(i)}}function ni(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?ni(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function ii(e){for(var t=gt((e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window).document);t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=gt((e=t.contentWindow).document)}return t}function ri(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var oi=Ft&&"documentMode"in document&&11>=document.documentMode,si=null,ai=null,li=null,ci=!1;function ui(e,t,n){var i=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;ci||null==si||si!==gt(i)||("selectionStart"in(i=si)&&ri(i)?i={start:i.selectionStart,end:i.selectionEnd}:i={anchorNode:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset},li&&Jn(li,i)||(li=i,0<(i=id(ai,"onSelect")).length&&(t=new nn("onSelect","select",null,t,n),e.push({event:t,listeners:i}),t.target=si)))}function di(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var hi={animationend:di("Animation","AnimationEnd"),animationiteration:di("Animation","AnimationIteration"),animationstart:di("Animation","AnimationStart"),transitionrun:di("Transition","TransitionRun"),transitionstart:di("Transition","TransitionStart"),transitioncancel:di("Transition","TransitionCancel"),transitionend:di("Transition","TransitionEnd")},pi={},fi={};function gi(e){if(pi[e])return pi[e];if(!hi[e])return e;var t,n=hi[e];for(t in n)if(n.hasOwnProperty(t)&&t in fi)return pi[e]=n[t];return e}Ft&&(fi=document.createElement("div").style,"AnimationEvent"in window||(delete hi.animationend.animation,delete hi.animationiteration.animation,delete hi.animationstart.animation),"TransitionEvent"in window||delete hi.transitionend.transition);var mi=gi("animationend"),yi=gi("animationiteration"),wi=gi("animationstart"),bi=gi("transitionrun"),vi=gi("transitionstart"),Mi=gi("transitioncancel"),xi=gi("transitionend"),Li=new Map,_i="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Ni(e,t){Li.set(e,t),it(t,[e])}_i.push("scrollEnd");var Si="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)},Ci=[],Ti=0,ki=0;function Ai(){for(var e=Ti,t=ki=Ti=0;t<e;){var n=Ci[t];Ci[t++]=null;var i=Ci[t];Ci[t++]=null;var r=Ci[t];Ci[t++]=null;var o=Ci[t];if(Ci[t++]=null,null!==i&&null!==r){var s=i.pending;null===s?r.next=r:(r.next=s.next,s.next=r),i.pending=r}0!==o&&Ei(n,r,o)}}function Di(e,t,n,i){Ci[Ti++]=e,Ci[Ti++]=t,Ci[Ti++]=n,Ci[Ti++]=i,ki|=i,e.lanes|=i,null!==(e=e.alternate)&&(e.lanes|=i)}function ji(e,t,n,i){return Di(e,t,n,i),Ii(e)}function zi(e,t){return Di(e,null,null,t),Ii(e)}function Ei(e,t,n){e.lanes|=n;var i=e.alternate;null!==i&&(i.lanes|=n);for(var r=!1,o=e.return;null!==o;)o.childLanes|=n,null!==(i=o.alternate)&&(i.childLanes|=n),22===o.tag&&(null===(e=o.stateNode)||1&e._visibility||(r=!0)),e=o,o=o.return;return 3===e.tag?(o=e.stateNode,r&&null!==t&&(r=31-ve(n),null===(i=(e=o.hiddenUpdates)[r])?e[r]=[t]:i.push(t),t.lane=536870912|n),o):null}function Ii(e){if(50<Wc)throw Wc=0,Bc=null,Error(s(185));for(var t=e.return;null!==t;)t=(e=t).return;return 3===e.tag?e.stateNode:null}var Oi={};function $i(e,t,n,i){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ri(e,t,n,i){return new $i(e,t,n,i)}function Pi(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ui(e,t){var n=e.alternate;return null===n?((n=Ri(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=65011712&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function Fi(e,t){e.flags&=65011714;var n=e.alternate;return null===n?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function Yi(e,t,n,i,r,o){var a=0;if(i=e,"function"==typeof e)Pi(e)&&(a=1);else if("string"==typeof e)a=function(e,t,n){if(1===n||null!=t.itemProp)return!1;switch(e){case"meta":case"title":return!0;case"style":if("string"!=typeof t.precedence||"string"!=typeof t.href||""===t.href)break;return!0;case"link":if("string"!=typeof t.rel||"string"!=typeof t.href||""===t.href||t.onLoad||t.onError)break;return"stylesheet"!==t.rel||(e=t.disabled,"string"==typeof t.precedence&&null==e);case"script":if(t.async&&"function"!=typeof t.async&&"symbol"!=typeof t.async&&!t.onLoad&&!t.onError&&t.src&&"string"==typeof t.src)return!0}return!1}(e,n,W.current)?26:"html"===e||"head"===e||"body"===e?27:5;else e:switch(e){case C:return(e=Ri(31,n,t,r)).elementType=C,e.lanes=o,e;case y:return Qi(n.children,r,o,t);case w:a=8,r|=24;break;case b:return(e=Ri(12,n,t,2|r)).elementType=b,e.lanes=o,e;case L:return(e=Ri(13,n,t,r)).elementType=L,e.lanes=o,e;case _:return(e=Ri(19,n,t,r)).elementType=_,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case M:a=10;break e;case v:a=9;break e;case x:a=11;break e;case N:a=14;break e;case S:a=16,i=null;break e}a=29,n=Error(s(130,null===e?"null":typeof e,"")),i=null}return(t=Ri(a,n,t,r)).elementType=e,t.type=i,t.lanes=o,t}function Qi(e,t,n,i){return(e=Ri(7,e,i,t)).lanes=n,e}function Wi(e,t,n){return(e=Ri(6,e,null,t)).lanes=n,e}function Bi(e){var t=Ri(18,null,null,0);return t.stateNode=e,t}function Hi(e,t,n){return(t=Ri(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var Vi=new WeakMap;function Gi(e,t){if("object"==typeof e&&null!==e){var n=Vi.get(e);return void 0!==n?n:(t={value:e,source:t,stack:ne(t)},Vi.set(e,t),t)}return{value:e,source:t,stack:ne(t)}}var Ki=[],qi=0,Zi=null,Xi=0,Ji=[],er=0,tr=null,nr=1,ir="";function rr(e,t){Ki[qi++]=Xi,Ki[qi++]=Zi,Zi=e,Xi=t}function or(e,t,n){Ji[er++]=nr,Ji[er++]=ir,Ji[er++]=tr,tr=e;var i=nr;e=ir;var r=32-ve(i)-1;i&=~(1<<r),n+=1;var o=32-ve(t)+r;if(30<o){var s=r-r%5;o=(i&(1<<s)-1).toString(32),i>>=s,r-=s,nr=1<<32-ve(t)+r|n<<r|i,ir=o+e}else nr=1<<o|n<<r|i,ir=e}function sr(e){null!==e.return&&(rr(e,1),or(e,1,0))}function ar(e){for(;e===Zi;)Zi=Ki[--qi],Ki[qi]=null,Xi=Ki[--qi],Ki[qi]=null;for(;e===tr;)tr=Ji[--er],Ji[er]=null,ir=Ji[--er],Ji[er]=null,nr=Ji[--er],Ji[er]=null}function lr(e,t){Ji[er++]=nr,Ji[er++]=ir,Ji[er++]=tr,nr=t.id,ir=t.overflow,tr=e}var cr=null,ur=null,dr=!1,hr=null,pr=!1,fr=Error(s(519));function gr(e){throw Mr(Gi(Error(s(418,1<arguments.length&&void 0!==arguments[1]&&arguments[1]?"text":"HTML","")),e)),fr}function mr(e){var t=e.stateNode,n=e.type,i=e.memoizedProps;switch(t[Fe]=e,t[Ye]=i,n){case"dialog":qu("cancel",t),qu("close",t);break;case"iframe":case"object":case"embed":qu("load",t);break;case"video":case"audio":for(n=0;n<Vu.length;n++)qu(Vu[n],t);break;case"source":qu("error",t);break;case"img":case"image":case"link":qu("error",t),qu("load",t);break;case"details":qu("toggle",t);break;case"input":qu("invalid",t),bt(t,i.value,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name,!0);break;case"select":qu("invalid",t);break;case"textarea":qu("invalid",t),Lt(t,i.value,i.defaultValue,i.children)}"string"!=typeof(n=i.children)&&"number"!=typeof n&&"bigint"!=typeof n||t.textContent===""+n||!0===i.suppressHydrationWarning||cd(t.textContent,n)?(null!=i.popover&&(qu("beforetoggle",t),qu("toggle",t)),null!=i.onScroll&&qu("scroll",t),null!=i.onScrollEnd&&qu("scrollend",t),null!=i.onClick&&(t.onclick=jt),t=!0):t=!1,t||gr(e,!0)}function yr(e){for(cr=e.return;cr;)switch(cr.tag){case 5:case 31:case 13:return void(pr=!1);case 27:case 3:return void(pr=!0);default:cr=cr.return}}function wr(e){if(e!==cr)return!1;if(!dr)return yr(e),dr=!0,!1;var t,n=e.tag;if((t=3!==n&&27!==n)&&((t=5===n)&&(t=!("form"!==(t=e.type)&&"button"!==t)||bd(e.type,e.memoizedProps)),t=!t),t&&ur&&gr(e),yr(e),13===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(s(317));ur=Id(e)}else if(31===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(s(317));ur=Id(e)}else 27===n?(n=ur,Sd(e.type)?(e=Ed,Ed=null,ur=e):ur=n):ur=cr?zd(e.stateNode.nextSibling):null;return!0}function br(){ur=cr=null,dr=!1}function vr(){var e=hr;return null!==e&&(null===Ac?Ac=e:Ac.push.apply(Ac,e),hr=null),e}function Mr(e){null===hr?hr=[e]:hr.push(e)}var xr=P(null),Lr=null,_r=null;function Nr(e,t,n){F(xr,t._currentValue),t._currentValue=n}function Sr(e){e._currentValue=xr.current,U(xr)}function Cr(e,t,n){for(;null!==e;){var i=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==i&&(i.childLanes|=t)):null!==i&&(i.childLanes&t)!==t&&(i.childLanes|=t),e===n)break;e=e.return}}function Tr(e,t,n,i){var r=e.child;for(null!==r&&(r.return=e);null!==r;){var o=r.dependencies;if(null!==o){var a=r.child;o=o.firstContext;e:for(;null!==o;){var l=o;o=r;for(var c=0;c<t.length;c++)if(l.context===t[c]){o.lanes|=n,null!==(l=o.alternate)&&(l.lanes|=n),Cr(o.return,n,e),i||(a=null);break e}o=l.next}}else if(18===r.tag){if(null===(a=r.return))throw Error(s(341));a.lanes|=n,null!==(o=a.alternate)&&(o.lanes|=n),Cr(a,n,e),a=null}else a=r.child;if(null!==a)a.return=r;else for(a=r;null!==a;){if(a===e){a=null;break}if(null!==(r=a.sibling)){r.return=a.return,a=r;break}a=a.return}r=a}}function kr(e,t,n,i){e=null;for(var r=t,o=!1;null!==r;){if(!o)if(524288&r.flags)o=!0;else if(262144&r.flags)break;if(10===r.tag){var a=r.alternate;if(null===a)throw Error(s(387));if(null!==(a=a.memoizedProps)){var l=r.type;Xn(r.pendingProps.value,a.value)||(null!==e?e.push(l):e=[l])}}else if(r===V.current){if(null===(a=r.alternate))throw Error(s(387));a.memoizedState.memoizedState!==r.memoizedState.memoizedState&&(null!==e?e.push(uh):e=[uh])}r=r.return}null!==e&&Tr(t,e,n,i),t.flags|=262144}function Ar(e){for(e=e.firstContext;null!==e;){if(!Xn(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function Dr(e){Lr=e,_r=null,null!==(e=e.dependencies)&&(e.firstContext=null)}function jr(e){return Er(Lr,e)}function zr(e,t){return null===Lr&&Dr(e),Er(e,t)}function Er(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},null===_r){if(null===e)throw Error(s(308));_r=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else _r=_r.next=t;return n}var Ir="undefined"!=typeof AbortController?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},Or=i.unstable_scheduleCallback,$r=i.unstable_NormalPriority,Rr={$$typeof:M,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Pr(){return{controller:new Ir,data:new Map,refCount:0}}function Ur(e){e.refCount--,0===e.refCount&&Or($r,function(){e.controller.abort()})}var Fr=null,Yr=0,Qr=0,Wr=null;function Br(){if(0===--Yr&&null!==Fr){null!==Wr&&(Wr.status="fulfilled");var e=Fr;Fr=null,Qr=0,Wr=null;for(var t=0;t<e.length;t++)(0,e[t])()}}var Hr=E.S;E.S=function(e,t){zc=le(),"object"==typeof t&&null!==t&&"function"==typeof t.then&&function(e,t){if(null===Fr){var n=Fr=[];Yr=0,Qr=Yu(),Wr={status:"pending",value:void 0,then:function(e){n.push(e)}}}Yr++,t.then(Br,Br)}(0,t),null!==Hr&&Hr(e,t)};var Vr=P(null);function Gr(){var e=Vr.current;return null!==e?e:fc.pooledCache}function Kr(e,t){F(Vr,null===t?Vr.current:t.pool)}function qr(){var e=Gr();return null===e?null:{parent:Rr._currentValue,pool:e}}var Zr=Error(s(460)),Xr=Error(s(474)),Jr=Error(s(542)),eo={then:function(){}};function to(e){return"fulfilled"===(e=e.status)||"rejected"===e}function no(e,t,n){switch(void 0===(n=e[n])?e.push(t):n!==t&&(t.then(jt,jt),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw so(e=t.reason),e;default:if("string"==typeof t.status)t.then(jt,jt);else{if(null!==(e=fc)&&100<e.shellSuspendCounter)throw Error(s(482));(e=t).status="pending",e.then(function(e){if("pending"===t.status){var n=t;n.status="fulfilled",n.value=e}},function(e){if("pending"===t.status){var n=t;n.status="rejected",n.reason=e}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw so(e=t.reason),e}throw ro=t,Zr}}function io(e){try{return(0,e._init)(e._payload)}catch(e){if(null!==e&&"object"==typeof e&&"function"==typeof e.then)throw ro=e,Zr;throw e}}var ro=null;function oo(){if(null===ro)throw Error(s(459));var e=ro;return ro=null,e}function so(e){if(e===Zr||e===Jr)throw Error(s(483))}var ao=null,lo=0;function co(e){var t=lo;return lo+=1,null===ao&&(ao=[]),no(ao,e,t)}function uo(e,t){t=t.props.ref,e.ref=void 0!==t?t:null}function ho(e,t){if(t.$$typeof===f)throw Error(s(525));throw e=Object.prototype.toString.call(t),Error(s(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function po(e){function t(t,n){if(e){var i=t.deletions;null===i?(t.deletions=[n],t.flags|=16):i.push(n)}}function n(n,i){if(!e)return null;for(;null!==i;)t(n,i),i=i.sibling;return null}function i(e){for(var t=new Map;null!==e;)null!==e.key?t.set(e.key,e):t.set(e.index,e),e=e.sibling;return t}function r(e,t){return(e=Ui(e,t)).index=0,e.sibling=null,e}function o(t,n,i){return t.index=i,e?null!==(i=t.alternate)?(i=i.index)<n?(t.flags|=67108866,n):i:(t.flags|=67108866,n):(t.flags|=1048576,n)}function a(t){return e&&null===t.alternate&&(t.flags|=67108866),t}function l(e,t,n,i){return null===t||6!==t.tag?((t=Wi(n,e.mode,i)).return=e,t):((t=r(t,n)).return=e,t)}function c(e,t,n,i){var o=n.type;return o===y?d(e,t,n.props.children,i,n.key):null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===S&&io(o)===t.type)?(uo(t=r(t,n.props),n),t.return=e,t):(uo(t=Yi(n.type,n.key,n.props,null,e.mode,i),n),t.return=e,t)}function u(e,t,n,i){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Hi(n,e.mode,i)).return=e,t):((t=r(t,n.children||[])).return=e,t)}function d(e,t,n,i,o){return null===t||7!==t.tag?((t=Qi(n,e.mode,i,o)).return=e,t):((t=r(t,n)).return=e,t)}function h(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t||"bigint"==typeof t)return(t=Wi(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case g:return uo(n=Yi(t.type,t.key,t.props,null,e.mode,n),t),n.return=e,n;case m:return(t=Hi(t,e.mode,n)).return=e,t;case S:return h(e,t=io(t),n)}if(z(t)||A(t))return(t=Qi(t,e.mode,n,null)).return=e,t;if("function"==typeof t.then)return h(e,co(t),n);if(t.$$typeof===M)return h(e,zr(e,t),n);ho(e,t)}return null}function p(e,t,n,i){var r=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n||"bigint"==typeof n)return null!==r?null:l(e,t,""+n,i);if("object"==typeof n&&null!==n){switch(n.$$typeof){case g:return n.key===r?c(e,t,n,i):null;case m:return n.key===r?u(e,t,n,i):null;case S:return p(e,t,n=io(n),i)}if(z(n)||A(n))return null!==r?null:d(e,t,n,i,null);if("function"==typeof n.then)return p(e,t,co(n),i);if(n.$$typeof===M)return p(e,t,zr(e,n),i);ho(e,n)}return null}function f(e,t,n,i,r){if("string"==typeof i&&""!==i||"number"==typeof i||"bigint"==typeof i)return l(t,e=e.get(n)||null,""+i,r);if("object"==typeof i&&null!==i){switch(i.$$typeof){case g:return c(t,e=e.get(null===i.key?n:i.key)||null,i,r);case m:return u(t,e=e.get(null===i.key?n:i.key)||null,i,r);case S:return f(e,t,n,i=io(i),r)}if(z(i)||A(i))return d(t,e=e.get(n)||null,i,r,null);if("function"==typeof i.then)return f(e,t,n,co(i),r);if(i.$$typeof===M)return f(e,t,n,zr(t,i),r);ho(t,i)}return null}function w(l,c,u,d){if("object"==typeof u&&null!==u&&u.type===y&&null===u.key&&(u=u.props.children),"object"==typeof u&&null!==u){switch(u.$$typeof){case g:e:{for(var b=u.key;null!==c;){if(c.key===b){if((b=u.type)===y){if(7===c.tag){n(l,c.sibling),(d=r(c,u.props.children)).return=l,l=d;break e}}else if(c.elementType===b||"object"==typeof b&&null!==b&&b.$$typeof===S&&io(b)===c.type){n(l,c.sibling),uo(d=r(c,u.props),u),d.return=l,l=d;break e}n(l,c);break}t(l,c),c=c.sibling}u.type===y?((d=Qi(u.props.children,l.mode,d,u.key)).return=l,l=d):(uo(d=Yi(u.type,u.key,u.props,null,l.mode,d),u),d.return=l,l=d)}return a(l);case m:e:{for(b=u.key;null!==c;){if(c.key===b){if(4===c.tag&&c.stateNode.containerInfo===u.containerInfo&&c.stateNode.implementation===u.implementation){n(l,c.sibling),(d=r(c,u.children||[])).return=l,l=d;break e}n(l,c);break}t(l,c),c=c.sibling}(d=Hi(u,l.mode,d)).return=l,l=d}return a(l);case S:return w(l,c,u=io(u),d)}if(z(u))return function(r,s,a,l){for(var c=null,u=null,d=s,g=s=0,m=null;null!==d&&g<a.length;g++){d.index>g?(m=d,d=null):m=d.sibling;var y=p(r,d,a[g],l);if(null===y){null===d&&(d=m);break}e&&d&&null===y.alternate&&t(r,d),s=o(y,s,g),null===u?c=y:u.sibling=y,u=y,d=m}if(g===a.length)return n(r,d),dr&&rr(r,g),c;if(null===d){for(;g<a.length;g++)null!==(d=h(r,a[g],l))&&(s=o(d,s,g),null===u?c=d:u.sibling=d,u=d);return dr&&rr(r,g),c}for(d=i(d);g<a.length;g++)null!==(m=f(d,r,g,a[g],l))&&(e&&null!==m.alternate&&d.delete(null===m.key?g:m.key),s=o(m,s,g),null===u?c=m:u.sibling=m,u=m);return e&&d.forEach(function(e){return t(r,e)}),dr&&rr(r,g),c}(l,c,u,d);if(A(u)){if("function"!=typeof(b=A(u)))throw Error(s(150));return function(r,a,l,c){if(null==l)throw Error(s(151));for(var u=null,d=null,g=a,m=a=0,y=null,w=l.next();null!==g&&!w.done;m++,w=l.next()){g.index>m?(y=g,g=null):y=g.sibling;var b=p(r,g,w.value,c);if(null===b){null===g&&(g=y);break}e&&g&&null===b.alternate&&t(r,g),a=o(b,a,m),null===d?u=b:d.sibling=b,d=b,g=y}if(w.done)return n(r,g),dr&&rr(r,m),u;if(null===g){for(;!w.done;m++,w=l.next())null!==(w=h(r,w.value,c))&&(a=o(w,a,m),null===d?u=w:d.sibling=w,d=w);return dr&&rr(r,m),u}for(g=i(g);!w.done;m++,w=l.next())null!==(w=f(g,r,m,w.value,c))&&(e&&null!==w.alternate&&g.delete(null===w.key?m:w.key),a=o(w,a,m),null===d?u=w:d.sibling=w,d=w);return e&&g.forEach(function(e){return t(r,e)}),dr&&rr(r,m),u}(l,c,u=b.call(u),d)}if("function"==typeof u.then)return w(l,c,co(u),d);if(u.$$typeof===M)return w(l,c,zr(l,u),d);ho(l,u)}return"string"==typeof u&&""!==u||"number"==typeof u||"bigint"==typeof u?(u=""+u,null!==c&&6===c.tag?(n(l,c.sibling),(d=r(c,u)).return=l,l=d):(n(l,c),(d=Wi(u,l.mode,d)).return=l,l=d),a(l)):n(l,c)}return function(e,t,n,i){try{lo=0;var r=w(e,t,n,i);return ao=null,r}catch(t){if(t===Zr||t===Jr)throw t;var o=Ri(29,t,null,e.mode);return o.lanes=i,o.return=e,o}}}var fo=po(!0),go=po(!1),mo=!1;function yo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function wo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function bo(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function vo(e,t,n){var i=e.updateQueue;if(null===i)return null;if(i=i.shared,2&pc){var r=i.pending;return null===r?t.next=t:(t.next=r.next,r.next=t),i.pending=t,t=Ii(e),Ei(e,null,n),t}return Di(e,i,t,n),Ii(e)}function Mo(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194048&n)){var i=t.lanes;n|=i&=e.pendingLanes,t.lanes=n,Ee(e,n)}}function xo(e,t){var n=e.updateQueue,i=e.alternate;if(null!==i&&n===(i=i.updateQueue)){var r=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var s={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};null===o?r=o=s:o=o.next=s,n=n.next}while(null!==n);null===o?r=o=t:o=o.next=t}else r=o=t;return n={baseState:i.baseState,firstBaseUpdate:r,lastBaseUpdate:o,shared:i.shared,callbacks:i.callbacks},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Lo=!1;function _o(){if(Lo){if(null!==Wr)throw Wr}}function No(e,t,n,i){Lo=!1;var r=e.updateQueue;mo=!1;var o=r.firstBaseUpdate,s=r.lastBaseUpdate,a=r.shared.pending;if(null!==a){r.shared.pending=null;var l=a,c=l.next;l.next=null,null===s?o=c:s.next=c,s=l;var u=e.alternate;null!==u&&((a=(u=u.updateQueue).lastBaseUpdate)!==s&&(null===a?u.firstBaseUpdate=c:a.next=c,u.lastBaseUpdate=l))}if(null!==o){var d=r.baseState;for(s=0,u=c=l=null,a=o;;){var h=-536870913&a.lane,f=h!==a.lane;if(f?(mc&h)===h:(i&h)===h){0!==h&&h===Qr&&(Lo=!0),null!==u&&(u=u.next={lane:0,tag:a.tag,payload:a.payload,callback:null,next:null});e:{var g=e,m=a;h=t;var y=n;switch(m.tag){case 1:if("function"==typeof(g=m.payload)){d=g.call(y,d,h);break e}d=g;break e;case 3:g.flags=-65537&g.flags|128;case 0:if(null==(h="function"==typeof(g=m.payload)?g.call(y,d,h):g))break e;d=p({},d,h);break e;case 2:mo=!0}}null!==(h=a.callback)&&(e.flags|=64,f&&(e.flags|=8192),null===(f=r.callbacks)?r.callbacks=[h]:f.push(h))}else f={lane:h,tag:a.tag,payload:a.payload,callback:a.callback,next:null},null===u?(c=u=f,l=d):u=u.next=f,s|=h;if(null===(a=a.next)){if(null===(a=r.shared.pending))break;a=(f=a).next,f.next=null,r.lastBaseUpdate=f,r.shared.pending=null}}null===u&&(l=d),r.baseState=l,r.firstBaseUpdate=c,r.lastBaseUpdate=u,null===o&&(r.shared.lanes=0),_c|=s,e.lanes=s,e.memoizedState=d}}function So(e,t){if("function"!=typeof e)throw Error(s(191,e));e.call(t)}function Co(e,t){var n=e.callbacks;if(null!==n)for(e.callbacks=null,e=0;e<n.length;e++)So(n[e],t)}var To=P(null),ko=P(0);function Ao(e,t){F(ko,e=xc),F(To,t),xc=e|t.baseLanes}function Do(){F(ko,xc),F(To,To.current)}function jo(){xc=ko.current,U(To),U(ko)}var zo=P(null),Eo=null;function Io(e){var t=e.alternate;F(Uo,1&Uo.current),F(zo,e),null===Eo&&(null===t||null!==To.current||null!==t.memoizedState)&&(Eo=e)}function Oo(e){F(Uo,Uo.current),F(zo,e),null===Eo&&(Eo=e)}function $o(e){22===e.tag?(F(Uo,Uo.current),F(zo,e),null===Eo&&(Eo=e)):Ro()}function Ro(){F(Uo,Uo.current),F(zo,zo.current)}function Po(e){U(zo),Eo===e&&(Eo=null),U(Uo)}var Uo=P(0);function Fo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||Dd(n)||jd(n)))return t}else if(19!==t.tag||"forwards"!==t.memoizedProps.revealOrder&&"backwards"!==t.memoizedProps.revealOrder&&"unstable_legacy-backwards"!==t.memoizedProps.revealOrder&&"together"!==t.memoizedProps.revealOrder){if(null!==t.child){t.child.return=t,t=t.child;continue}}else if(128&t.flags)return t;if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Yo=0,Qo=null,Wo=null,Bo=null,Ho=!1,Vo=!1,Go=!1,Ko=0,qo=0,Zo=null,Xo=0;function Jo(){throw Error(s(321))}function es(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Xn(e[n],t[n]))return!1;return!0}function ts(e,t,n,i,r,o){return Yo=o,Qo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,E.H=null===e||null===e.memoizedState?ma:ya,Go=!1,o=n(i,r),Go=!1,Vo&&(o=is(t,n,i,r)),ns(e),o}function ns(e){E.H=ga;var t=null!==Wo&&null!==Wo.next;if(Yo=0,Bo=Wo=Qo=null,Ho=!1,qo=0,Zo=null,t)throw Error(s(300));null===e||za||null!==(e=e.dependencies)&&Ar(e)&&(za=!0)}function is(e,t,n,i){Qo=e;var r=0;do{if(Vo&&(Zo=null),qo=0,Vo=!1,25<=r)throw Error(s(301));if(r+=1,Bo=Wo=null,null!=e.updateQueue){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,null!=o.memoCache&&(o.memoCache.index=0)}E.H=wa,o=t(n,i)}while(Vo);return o}function rs(){var e=E.H,t=e.useState()[0];return t="function"==typeof t.then?us(t):t,e=e.useState()[0],(null!==Wo?Wo.memoizedState:null)!==e&&(Qo.flags|=1024),t}function os(){var e=0!==Ko;return Ko=0,e}function ss(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function as(e){if(Ho){for(e=e.memoizedState;null!==e;){var t=e.queue;null!==t&&(t.pending=null),e=e.next}Ho=!1}Yo=0,Bo=Wo=Qo=null,Vo=!1,qo=Ko=0,Zo=null}function ls(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===Bo?Qo.memoizedState=Bo=e:Bo=Bo.next=e,Bo}function cs(){if(null===Wo){var e=Qo.alternate;e=null!==e?e.memoizedState:null}else e=Wo.next;var t=null===Bo?Qo.memoizedState:Bo.next;if(null!==t)Bo=t,Wo=e;else{if(null===e){if(null===Qo.alternate)throw Error(s(467));throw Error(s(310))}e={memoizedState:(Wo=e).memoizedState,baseState:Wo.baseState,baseQueue:Wo.baseQueue,queue:Wo.queue,next:null},null===Bo?Qo.memoizedState=Bo=e:Bo=Bo.next=e}return Bo}function us(e){var t=qo;return qo+=1,null===Zo&&(Zo=[]),e=no(Zo,e,t),t=Qo,null===(null===Bo?t.memoizedState:Bo.next)&&(t=t.alternate,E.H=null===t||null===t.memoizedState?ma:ya),e}function ds(e){if(null!==e&&"object"==typeof e){if("function"==typeof e.then)return us(e);if(e.$$typeof===M)return jr(e)}throw Error(s(438,String(e)))}function hs(e){var t=null,n=Qo.updateQueue;if(null!==n&&(t=n.memoCache),null==t){var i=Qo.alternate;null!==i&&(null!==(i=i.updateQueue)&&(null!=(i=i.memoCache)&&(t={data:i.data.map(function(e){return e.slice()}),index:0})))}if(null==t&&(t={data:[],index:0}),null===n&&(n={lastEffect:null,events:null,stores:null,memoCache:null},Qo.updateQueue=n),n.memoCache=t,void 0===(n=t.data[t.index]))for(n=t.data[t.index]=Array(e),i=0;i<e;i++)n[i]=T;return t.index++,n}function ps(e,t){return"function"==typeof t?t(e):t}function fs(e){return gs(cs(),Wo,e)}function gs(e,t,n){var i=e.queue;if(null===i)throw Error(s(311));i.lastRenderedReducer=n;var r=e.baseQueue,o=i.pending;if(null!==o){if(null!==r){var a=r.next;r.next=o.next,o.next=a}t.baseQueue=r=o,i.pending=null}if(o=e.baseState,null===r)e.memoizedState=o;else{var l=a=null,c=null,u=t=r.next,d=!1;do{var h=-536870913&u.lane;if(h!==u.lane?(mc&h)===h:(Yo&h)===h){var p=u.revertLane;if(0===p)null!==c&&(c=c.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),h===Qr&&(d=!0);else{if((Yo&p)===p){u=u.next,p===Qr&&(d=!0);continue}h={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},null===c?(l=c=h,a=o):c=c.next=h,Qo.lanes|=p,_c|=p}h=u.action,Go&&n(o,h),o=u.hasEagerState?u.eagerState:n(o,h)}else p={lane:h,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},null===c?(l=c=p,a=o):c=c.next=p,Qo.lanes|=h,_c|=h;u=u.next}while(null!==u&&u!==t);if(null===c?a=o:c.next=l,!Xn(o,e.memoizedState)&&(za=!0,d&&null!==(n=Wr)))throw n;e.memoizedState=o,e.baseState=a,e.baseQueue=c,i.lastRenderedState=o}return null===r&&(i.lanes=0),[e.memoizedState,i.dispatch]}function ms(e){var t=cs(),n=t.queue;if(null===n)throw Error(s(311));n.lastRenderedReducer=e;var i=n.dispatch,r=n.pending,o=t.memoizedState;if(null!==r){n.pending=null;var a=r=r.next;do{o=e(o,a.action),a=a.next}while(a!==r);Xn(o,t.memoizedState)||(za=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,i]}function ys(e,t,n){var i=Qo,r=cs(),o=dr;if(o){if(void 0===n)throw Error(s(407));n=n()}else n=t();var a=!Xn((Wo||r).memoizedState,n);if(a&&(r.memoizedState=n,za=!0),r=r.queue,Ys(vs.bind(null,i,r,e),[e]),r.getSnapshot!==t||a||null!==Bo&&1&Bo.memoizedState.tag){if(i.flags|=2048,$s(9,{destroy:void 0},bs.bind(null,i,r,n,t),null),null===fc)throw Error(s(349));o||127&Yo||ws(i,t,n)}return n}function ws(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=Qo.updateQueue)?(t={lastEffect:null,events:null,stores:null,memoCache:null},Qo.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function bs(e,t,n,i){t.value=n,t.getSnapshot=i,Ms(t)&&xs(e)}function vs(e,t,n){return n(function(){Ms(t)&&xs(e)})}function Ms(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Xn(e,n)}catch(e){return!0}}function xs(e){var t=zi(e,2);null!==t&&Gc(t,e,2)}function Ls(e){var t=ls();if("function"==typeof e){var n=e;if(e=n(),Go){be(!0);try{n()}finally{be(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ps,lastRenderedState:e},t}function _s(e,t,n,i){return e.baseState=n,gs(e,Wo,"function"==typeof i?i:ps)}function Ns(e,t,n,i,r){if(ha(e))throw Error(s(485));if(null!==(e=t.action)){var o={payload:r,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};null!==E.T?n(!0):o.isTransition=!1,i(o),null===(n=t.pending)?(o.next=t.pending=o,Ss(t,o)):(o.next=n.next,t.pending=n.next=o)}}function Ss(e,t){var n=t.action,i=t.payload,r=e.state;if(t.isTransition){var o=E.T,s={};E.T=s;try{var a=n(r,i),l=E.S;null!==l&&l(s,a),Cs(e,t,a)}catch(n){ks(e,t,n)}finally{null!==o&&null!==s.types&&(o.types=s.types),E.T=o}}else try{Cs(e,t,o=n(r,i))}catch(n){ks(e,t,n)}}function Cs(e,t,n){null!==n&&"object"==typeof n&&"function"==typeof n.then?n.then(function(n){Ts(e,t,n)},function(n){return ks(e,t,n)}):Ts(e,t,n)}function Ts(e,t,n){t.status="fulfilled",t.value=n,As(t),e.state=n,null!==(t=e.pending)&&((n=t.next)===t?e.pending=null:(n=n.next,t.next=n,Ss(e,n)))}function ks(e,t,n){var i=e.pending;if(e.pending=null,null!==i){i=i.next;do{t.status="rejected",t.reason=n,As(t),t=t.next}while(t!==i)}e.action=null}function As(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Ds(e,t){return t}function js(e,t){if(dr){var n=fc.formState;if(null!==n){e:{var i=Qo;if(dr){if(ur){t:{for(var r=ur,o=pr;8!==r.nodeType;){if(!o){r=null;break t}if(null===(r=zd(r.nextSibling))){r=null;break t}}r="F!"===(o=r.data)||"F"===o?r:null}if(r){ur=zd(r.nextSibling),i="F!"===r.data;break e}}gr(i)}i=!1}i&&(t=n[0])}}return(n=ls()).memoizedState=n.baseState=t,i={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ds,lastRenderedState:t},n.queue=i,n=ca.bind(null,Qo,i),i.dispatch=n,i=Ls(!1),o=da.bind(null,Qo,!1,i.queue),r={state:t,dispatch:null,action:e,pending:null},(i=ls()).queue=r,n=Ns.bind(null,Qo,r,o,n),r.dispatch=n,i.memoizedState=e,[t,n,!1]}function zs(e){return Es(cs(),Wo,e)}function Es(e,t,n){if(t=gs(e,t,Ds)[0],e=fs(ps)[0],"object"==typeof t&&null!==t&&"function"==typeof t.then)try{var i=us(t)}catch(e){if(e===Zr)throw Jr;throw e}else i=t;var r=(t=cs()).queue,o=r.dispatch;return n!==t.memoizedState&&(Qo.flags|=2048,$s(9,{destroy:void 0},Is.bind(null,r,n),null)),[i,o,e]}function Is(e,t){e.action=t}function Os(e){var t=cs(),n=Wo;if(null!==n)return Es(t,n,e);cs(),t=t.memoizedState;var i=(n=cs()).queue.dispatch;return n.memoizedState=e,[t,i,!1]}function $s(e,t,n,i){return e={tag:e,create:n,deps:i,inst:t,next:null},null===(t=Qo.updateQueue)&&(t={lastEffect:null,events:null,stores:null,memoCache:null},Qo.updateQueue=t),null===(n=t.lastEffect)?t.lastEffect=e.next=e:(i=n.next,n.next=e,e.next=i,t.lastEffect=e),e}function Rs(){return cs().memoizedState}function Ps(e,t,n,i){var r=ls();Qo.flags|=e,r.memoizedState=$s(1|t,{destroy:void 0},n,void 0===i?null:i)}function Us(e,t,n,i){var r=cs();i=void 0===i?null:i;var o=r.memoizedState.inst;null!==Wo&&null!==i&&es(i,Wo.memoizedState.deps)?r.memoizedState=$s(t,o,n,i):(Qo.flags|=e,r.memoizedState=$s(1|t,o,n,i))}function Fs(e,t){Ps(8390656,8,e,t)}function Ys(e,t){Us(2048,8,e,t)}function Qs(e){var t=cs().memoizedState;return function(e){Qo.flags|=4;var t=Qo.updateQueue;if(null===t)t={lastEffect:null,events:null,stores:null,memoCache:null},Qo.updateQueue=t,t.events=[e];else{var n=t.events;null===n?t.events=[e]:n.push(e)}}({ref:t,nextImpl:e}),function(){if(2&pc)throw Error(s(440));return t.impl.apply(void 0,arguments)}}function Ws(e,t){return Us(4,2,e,t)}function Bs(e,t){return Us(4,4,e,t)}function Hs(e,t){if("function"==typeof t){e=e();var n=t(e);return function(){"function"==typeof n?n():t(null)}}if(null!=t)return e=e(),t.current=e,function(){t.current=null}}function Vs(e,t,n){n=null!=n?n.concat([e]):null,Us(4,4,Hs.bind(null,t,e),n)}function Gs(){}function Ks(e,t){var n=cs();t=void 0===t?null:t;var i=n.memoizedState;return null!==t&&es(t,i[1])?i[0]:(n.memoizedState=[e,t],e)}function qs(e,t){var n=cs();t=void 0===t?null:t;var i=n.memoizedState;if(null!==t&&es(t,i[1]))return i[0];if(i=e(),Go){be(!0);try{e()}finally{be(!1)}}return n.memoizedState=[i,t],i}function Zs(e,t,n){return void 0===n||1073741824&Yo&&!(261930&mc)?e.memoizedState=t:(e.memoizedState=n,e=Vc(),Qo.lanes|=e,_c|=e,n)}function Xs(e,t,n,i){return Xn(n,t)?n:null!==To.current?(e=Zs(e,n,i),Xn(e,t)||(za=!0),e):42&Yo&&(!(1073741824&Yo)||261930&mc)?(e=Vc(),Qo.lanes|=e,_c|=e,t):(za=!0,e.memoizedState=n)}function Js(e,t,n,i,r){var o=I.p;I.p=0!==o&&8>o?o:8;var s,a,l,c=E.T,u={};E.T=u,da(e,!1,t,n);try{var d=r(),h=E.S;if(null!==h&&h(u,d),null!==d&&"object"==typeof d&&"function"==typeof d.then)ua(e,t,(s=i,a=[],l={status:"pending",value:null,reason:null,then:function(e){a.push(e)}},d.then(function(){l.status="fulfilled",l.value=s;for(var e=0;e<a.length;e++)(0,a[e])(s)},function(e){for(l.status="rejected",l.reason=e,e=0;e<a.length;e++)(0,a[e])(void 0)}),l),Hc());else ua(e,t,i,Hc())}catch(n){ua(e,t,{then:function(){},status:"rejected",reason:n},Hc())}finally{I.p=o,null!==c&&null!==u.types&&(c.types=u.types),E.T=c}}function ea(){}function ta(e,t,n,i){if(5!==e.tag)throw Error(s(476));var r=na(e).queue;Js(e,r,t,O,null===n?ea:function(){return ia(e),n(i)})}function na(e){var t=e.memoizedState;if(null!==t)return t;var n={};return(t={memoizedState:O,baseState:O,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ps,lastRenderedState:O},next:null}).next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ps,lastRenderedState:n},next:null},e.memoizedState=t,null!==(e=e.alternate)&&(e.memoizedState=t),t}function ia(e){var t=na(e);null===t.next&&(t=e.alternate.memoizedState),ua(e,t.next.queue,{},Hc())}function ra(){return jr(uh)}function oa(){return cs().memoizedState}function sa(){return cs().memoizedState}function aa(e){for(var t=e.return;null!==t;){switch(t.tag){case 24:case 3:var n=Hc(),i=vo(t,e=bo(n),n);return null!==i&&(Gc(i,t,n),Mo(i,t,n)),t={cache:Pr()},void(e.payload=t)}t=t.return}}function la(e,t,n){var i=Hc();n={lane:i,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},ha(e)?pa(t,n):null!==(n=ji(e,t,n,i))&&(Gc(n,e,i),fa(n,t,i))}function ca(e,t,n){ua(e,t,n,Hc())}function ua(e,t,n,i){var r={lane:i,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(ha(e))pa(t,r);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var s=t.lastRenderedState,a=o(s,n);if(r.hasEagerState=!0,r.eagerState=a,Xn(a,s))return Di(e,t,r,0),null===fc&&Ai(),!1}catch(e){}if(null!==(n=ji(e,t,r,i)))return Gc(n,e,i),fa(n,t,i),!0}return!1}function da(e,t,n,i){if(i={lane:2,revertLane:Yu(),gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},ha(e)){if(t)throw Error(s(479))}else null!==(t=ji(e,n,i,2))&&Gc(t,e,2)}function ha(e){var t=e.alternate;return e===Qo||null!==t&&t===Qo}function pa(e,t){Vo=Ho=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function fa(e,t,n){if(4194048&n){var i=t.lanes;n|=i&=e.pendingLanes,t.lanes=n,Ee(e,n)}}var ga={readContext:jr,use:ds,useCallback:Jo,useContext:Jo,useEffect:Jo,useImperativeHandle:Jo,useLayoutEffect:Jo,useInsertionEffect:Jo,useMemo:Jo,useReducer:Jo,useRef:Jo,useState:Jo,useDebugValue:Jo,useDeferredValue:Jo,useTransition:Jo,useSyncExternalStore:Jo,useId:Jo,useHostTransitionStatus:Jo,useFormState:Jo,useActionState:Jo,useOptimistic:Jo,useMemoCache:Jo,useCacheRefresh:Jo};ga.useEffectEvent=Jo;var ma={readContext:jr,use:ds,useCallback:function(e,t){return ls().memoizedState=[e,void 0===t?null:t],e},useContext:jr,useEffect:Fs,useImperativeHandle:function(e,t,n){n=null!=n?n.concat([e]):null,Ps(4194308,4,Hs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ps(4194308,4,e,t)},useInsertionEffect:function(e,t){Ps(4,2,e,t)},useMemo:function(e,t){var n=ls();t=void 0===t?null:t;var i=e();if(Go){be(!0);try{e()}finally{be(!1)}}return n.memoizedState=[i,t],i},useReducer:function(e,t,n){var i=ls();if(void 0!==n){var r=n(t);if(Go){be(!0);try{n(t)}finally{be(!1)}}}else r=t;return i.memoizedState=i.baseState=r,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:r},i.queue=e,e=e.dispatch=la.bind(null,Qo,e),[i.memoizedState,e]},useRef:function(e){return e={current:e},ls().memoizedState=e},useState:function(e){var t=(e=Ls(e)).queue,n=ca.bind(null,Qo,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Gs,useDeferredValue:function(e,t){return Zs(ls(),e,t)},useTransition:function(){var e=Ls(!1);return e=Js.bind(null,Qo,e.queue,!0,!1),ls().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var i=Qo,r=ls();if(dr){if(void 0===n)throw Error(s(407));n=n()}else{if(n=t(),null===fc)throw Error(s(349));127&mc||ws(i,t,n)}r.memoizedState=n;var o={value:n,getSnapshot:t};return r.queue=o,Fs(vs.bind(null,i,o,e),[e]),i.flags|=2048,$s(9,{destroy:void 0},bs.bind(null,i,o,n,t),null),n},useId:function(){var e=ls(),t=fc.identifierPrefix;if(dr){var n=ir;t="_"+t+"R_"+(n=(nr&~(1<<32-ve(nr)-1)).toString(32)+n),0<(n=Ko++)&&(t+="H"+n.toString(32)),t+="_"}else t="_"+t+"r_"+(n=Xo++).toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:ra,useFormState:js,useActionState:js,useOptimistic:function(e){var t=ls();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=da.bind(null,Qo,!0,n),n.dispatch=t,[e,t]},useMemoCache:hs,useCacheRefresh:function(){return ls().memoizedState=aa.bind(null,Qo)},useEffectEvent:function(e){var t=ls(),n={impl:e};return t.memoizedState=n,function(){if(2&pc)throw Error(s(440));return n.impl.apply(void 0,arguments)}}},ya={readContext:jr,use:ds,useCallback:Ks,useContext:jr,useEffect:Ys,useImperativeHandle:Vs,useInsertionEffect:Ws,useLayoutEffect:Bs,useMemo:qs,useReducer:fs,useRef:Rs,useState:function(){return fs(ps)},useDebugValue:Gs,useDeferredValue:function(e,t){return Xs(cs(),Wo.memoizedState,e,t)},useTransition:function(){var e=fs(ps)[0],t=cs().memoizedState;return["boolean"==typeof e?e:us(e),t]},useSyncExternalStore:ys,useId:oa,useHostTransitionStatus:ra,useFormState:zs,useActionState:zs,useOptimistic:function(e,t){return _s(cs(),0,e,t)},useMemoCache:hs,useCacheRefresh:sa};ya.useEffectEvent=Qs;var wa={readContext:jr,use:ds,useCallback:Ks,useContext:jr,useEffect:Ys,useImperativeHandle:Vs,useInsertionEffect:Ws,useLayoutEffect:Bs,useMemo:qs,useReducer:ms,useRef:Rs,useState:function(){return ms(ps)},useDebugValue:Gs,useDeferredValue:function(e,t){var n=cs();return null===Wo?Zs(n,e,t):Xs(n,Wo.memoizedState,e,t)},useTransition:function(){var e=ms(ps)[0],t=cs().memoizedState;return["boolean"==typeof e?e:us(e),t]},useSyncExternalStore:ys,useId:oa,useHostTransitionStatus:ra,useFormState:Os,useActionState:Os,useOptimistic:function(e,t){var n=cs();return null!==Wo?_s(n,0,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:hs,useCacheRefresh:sa};function ba(e,t,n,i){n=null==(n=n(i,t=e.memoizedState))?t:p({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}wa.useEffectEvent=Qs;var va={enqueueSetState:function(e,t,n){e=e._reactInternals;var i=Hc(),r=bo(i);r.payload=t,null!=n&&(r.callback=n),null!==(t=vo(e,r,i))&&(Gc(t,e,i),Mo(t,e,i))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var i=Hc(),r=bo(i);r.tag=1,r.payload=t,null!=n&&(r.callback=n),null!==(t=vo(e,r,i))&&(Gc(t,e,i),Mo(t,e,i))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Hc(),i=bo(n);i.tag=2,null!=t&&(i.callback=t),null!==(t=vo(e,i,n))&&(Gc(t,e,n),Mo(t,e,n))}};function Ma(e,t,n,i,r,o,s){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(i,o,s):!t.prototype||!t.prototype.isPureReactComponent||(!Jn(n,i)||!Jn(r,o))}function xa(e,t,n,i){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,i),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,i),t.state!==e&&va.enqueueReplaceState(t,t.state,null)}function La(e,t){var n=t;if("ref"in t)for(var i in n={},t)"ref"!==i&&(n[i]=t[i]);if(e=e.defaultProps)for(var r in n===t&&(n=p({},n)),e)void 0===n[r]&&(n[r]=e[r]);return n}function _a(e){Si(e)}function Na(e){console.error(e)}function Sa(e){Si(e)}function Ca(e,t){try{(0,e.onUncaughtError)(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function Ta(e,t,n){try{(0,e.onCaughtError)(n.value,{componentStack:n.stack,errorBoundary:1===t.tag?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function ka(e,t,n){return(n=bo(n)).tag=3,n.payload={element:null},n.callback=function(){Ca(e,t)},n}function Aa(e){return(e=bo(e)).tag=3,e}function Da(e,t,n,i){var r=n.type.getDerivedStateFromError;if("function"==typeof r){var o=i.value;e.payload=function(){return r(o)},e.callback=function(){Ta(t,n,i)}}var s=n.stateNode;null!==s&&"function"==typeof s.componentDidCatch&&(e.callback=function(){Ta(t,n,i),"function"!=typeof r&&(null===Oc?Oc=new Set([this]):Oc.add(this));var e=i.stack;this.componentDidCatch(i.value,{componentStack:null!==e?e:""})})}var ja=Error(s(461)),za=!1;function Ea(e,t,n,i){t.child=null===e?go(t,null,n,i):fo(t,e.child,n,i)}function Ia(e,t,n,i,r){n=n.render;var o=t.ref;if("ref"in i){var s={};for(var a in i)"ref"!==a&&(s[a]=i[a])}else s=i;return Dr(t),i=ts(e,t,n,s,o,r),a=os(),null===e||za?(dr&&a&&sr(t),t.flags|=1,Ea(e,t,i,r),t.child):(ss(e,t,r),rl(e,t,r))}function Oa(e,t,n,i,r){if(null===e){var o=n.type;return"function"!=typeof o||Pi(o)||void 0!==o.defaultProps||null!==n.compare?((e=Yi(n.type,null,i,t,t.mode,r)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,$a(e,t,o,i,r))}if(o=e.child,!ol(e,r)){var s=o.memoizedProps;if((n=null!==(n=n.compare)?n:Jn)(s,i)&&e.ref===t.ref)return rl(e,t,r)}return t.flags|=1,(e=Ui(o,i)).ref=t.ref,e.return=t,t.child=e}function $a(e,t,n,i,r){if(null!==e){var o=e.memoizedProps;if(Jn(o,i)&&e.ref===t.ref){if(za=!1,t.pendingProps=i=o,!ol(e,r))return t.lanes=e.lanes,rl(e,t,r);131072&e.flags&&(za=!0)}}return Wa(e,t,n,i,r)}function Ra(e,t,n,i){var r=i.children,o=null!==e?e.memoizedState:null;if(null===e&&null===t.stateNode&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),"hidden"===i.mode){if(128&t.flags){if(o=null!==o?o.baseLanes|n:n,null!==e){for(i=t.child=e.child,r=0;null!==i;)r=r|i.lanes|i.childLanes,i=i.sibling;i=r&~o}else i=0,t.child=null;return Ua(e,t,o,n,i)}if(!(536870912&n))return i=t.lanes=536870912,Ua(e,t,null!==o?o.baseLanes|n:n,n,i);t.memoizedState={baseLanes:0,cachePool:null},null!==e&&Kr(0,null!==o?o.cachePool:null),null!==o?Ao(t,o):Do(),$o(t)}else null!==o?(Kr(0,o.cachePool),Ao(t,o),Ro(),t.memoizedState=null):(null!==e&&Kr(0,null),Do(),Ro());return Ea(e,t,r,n),t.child}function Pa(e,t){return null!==e&&22===e.tag||null!==t.stateNode||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function Ua(e,t,n,i,r){var o=Gr();return o=null===o?null:{parent:Rr._currentValue,pool:o},t.memoizedState={baseLanes:n,cachePool:o},null!==e&&Kr(0,null),Do(),$o(t),null!==e&&kr(e,t,i,!0),t.childLanes=r,null}function Fa(e,t){return(t=Ja({mode:t.mode,children:t.children},e.mode)).ref=e.ref,e.child=t,t.return=e,t}function Ya(e,t,n){return fo(t,e.child,null,n),(e=Fa(t,t.pendingProps)).flags|=2,Po(t),t.memoizedState=null,e}function Qa(e,t){var n=t.ref;if(null===n)null!==e&&null!==e.ref&&(t.flags|=4194816);else{if("function"!=typeof n&&"object"!=typeof n)throw Error(s(284));null!==e&&e.ref===n||(t.flags|=4194816)}}function Wa(e,t,n,i,r){return Dr(t),n=ts(e,t,n,i,void 0,r),i=os(),null===e||za?(dr&&i&&sr(t),t.flags|=1,Ea(e,t,n,r),t.child):(ss(e,t,r),rl(e,t,r))}function Ba(e,t,n,i,r,o){return Dr(t),t.updateQueue=null,n=is(t,i,n,r),ns(e),i=os(),null===e||za?(dr&&i&&sr(t),t.flags|=1,Ea(e,t,n,o),t.child):(ss(e,t,o),rl(e,t,o))}function Ha(e,t,n,i,r){if(Dr(t),null===t.stateNode){var o=Oi,s=n.contextType;"object"==typeof s&&null!==s&&(o=jr(s)),o=new n(i,o),t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,o.updater=va,t.stateNode=o,o._reactInternals=t,(o=t.stateNode).props=i,o.state=t.memoizedState,o.refs={},yo(t),s=n.contextType,o.context="object"==typeof s&&null!==s?jr(s):Oi,o.state=t.memoizedState,"function"==typeof(s=n.getDerivedStateFromProps)&&(ba(t,n,s,i),o.state=t.memoizedState),"function"==typeof n.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(s=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),s!==o.state&&va.enqueueReplaceState(o,o.state,null),No(t,i,o,r),_o(),o.state=t.memoizedState),"function"==typeof o.componentDidMount&&(t.flags|=4194308),i=!0}else if(null===e){o=t.stateNode;var a=t.memoizedProps,l=La(n,a);o.props=l;var c=o.context,u=n.contextType;s=Oi,"object"==typeof u&&null!==u&&(s=jr(u));var d=n.getDerivedStateFromProps;u="function"==typeof d||"function"==typeof o.getSnapshotBeforeUpdate,a=t.pendingProps!==a,u||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(a||c!==s)&&xa(t,o,i,s),mo=!1;var h=t.memoizedState;o.state=h,No(t,i,o,r),_o(),c=t.memoizedState,a||h!==c||mo?("function"==typeof d&&(ba(t,n,d,i),c=t.memoizedState),(l=mo||Ma(t,n,l,i,h,c,s))?(u||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||("function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"==typeof o.componentDidMount&&(t.flags|=4194308)):("function"==typeof o.componentDidMount&&(t.flags|=4194308),t.memoizedProps=i,t.memoizedState=c),o.props=i,o.state=c,o.context=s,i=l):("function"==typeof o.componentDidMount&&(t.flags|=4194308),i=!1)}else{o=t.stateNode,wo(e,t),u=La(n,s=t.memoizedProps),o.props=u,d=t.pendingProps,h=o.context,c=n.contextType,l=Oi,"object"==typeof c&&null!==c&&(l=jr(c)),(c="function"==typeof(a=n.getDerivedStateFromProps)||"function"==typeof o.getSnapshotBeforeUpdate)||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(s!==d||h!==l)&&xa(t,o,i,l),mo=!1,h=t.memoizedState,o.state=h,No(t,i,o,r),_o();var p=t.memoizedState;s!==d||h!==p||mo||null!==e&&null!==e.dependencies&&Ar(e.dependencies)?("function"==typeof a&&(ba(t,n,a,i),p=t.memoizedState),(u=mo||Ma(t,n,u,i,h,p,l)||null!==e&&null!==e.dependencies&&Ar(e.dependencies))?(c||"function"!=typeof o.UNSAFE_componentWillUpdate&&"function"!=typeof o.componentWillUpdate||("function"==typeof o.componentWillUpdate&&o.componentWillUpdate(i,p,l),"function"==typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(i,p,l)),"function"==typeof o.componentDidUpdate&&(t.flags|=4),"function"==typeof o.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof o.componentDidUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),"function"!=typeof o.getSnapshotBeforeUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),t.memoizedProps=i,t.memoizedState=p),o.props=i,o.state=p,o.context=l,i=u):("function"!=typeof o.componentDidUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),"function"!=typeof o.getSnapshotBeforeUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),i=!1)}return o=i,Qa(e,t),i=!!(128&t.flags),o||i?(o=t.stateNode,n=i&&"function"!=typeof n.getDerivedStateFromError?null:o.render(),t.flags|=1,null!==e&&i?(t.child=fo(t,e.child,null,r),t.child=fo(t,null,n,r)):Ea(e,t,n,r),t.memoizedState=o.state,e=t.child):e=rl(e,t,r),e}function Va(e,t,n,i){return br(),t.flags|=256,Ea(e,t,n,i),t.child}var Ga={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Ka(e){return{baseLanes:e,cachePool:qr()}}function qa(e,t,n){return e=null!==e?e.childLanes&~n:0,t&&(e|=Cc),e}function Za(e,t,n){var i,r=t.pendingProps,o=!1,a=!!(128&t.flags);if((i=a)||(i=(null===e||null!==e.memoizedState)&&!!(2&Uo.current)),i&&(o=!0,t.flags&=-129),i=!!(32&t.flags),t.flags&=-33,null===e){if(dr){if(o?Io(t):Ro(),(e=ur)?null!==(e=null!==(e=Ad(e,pr))&&"&"!==e.data?e:null)&&(t.memoizedState={dehydrated:e,treeContext:null!==tr?{id:nr,overflow:ir}:null,retryLane:536870912,hydrationErrors:null},(n=Bi(e)).return=t,t.child=n,cr=t,ur=null):e=null,null===e)throw gr(t);return jd(e)?t.lanes=32:t.lanes=536870912,null}var l=r.children;return r=r.fallback,o?(Ro(),l=Ja({mode:"hidden",children:l},o=t.mode),r=Qi(r,o,n,null),l.return=t,r.return=t,l.sibling=r,t.child=l,(r=t.child).memoizedState=Ka(n),r.childLanes=qa(e,i,n),t.memoizedState=Ga,Pa(null,r)):(Io(t),Xa(t,l))}var c=e.memoizedState;if(null!==c&&null!==(l=c.dehydrated)){if(a)256&t.flags?(Io(t),t.flags&=-257,t=el(e,t,n)):null!==t.memoizedState?(Ro(),t.child=e.child,t.flags|=128,t=null):(Ro(),l=r.fallback,o=t.mode,r=Ja({mode:"visible",children:r.children},o),(l=Qi(l,o,n,null)).flags|=2,r.return=t,l.return=t,r.sibling=l,t.child=r,fo(t,e.child,null,n),(r=t.child).memoizedState=Ka(n),r.childLanes=qa(e,i,n),t.memoizedState=Ga,t=Pa(null,r));else if(Io(t),jd(l)){if(i=l.nextSibling&&l.nextSibling.dataset)var u=i.dgst;i=u,(r=Error(s(419))).stack="",r.digest=i,Mr({value:r,source:null,stack:null}),t=el(e,t,n)}else if(za||kr(e,t,n,!1),i=0!==(n&e.childLanes),za||i){if(null!==(i=fc)&&(0!==(r=Ie(i,n))&&r!==c.retryLane))throw c.retryLane=r,zi(e,r),Gc(i,e,r),ja;Dd(l)||su(),t=el(e,t,n)}else Dd(l)?(t.flags|=192,t.child=e.child,t=null):(e=c.treeContext,ur=zd(l.nextSibling),cr=t,dr=!0,hr=null,pr=!1,null!==e&&lr(t,e),(t=Xa(t,r.children)).flags|=4096);return t}return o?(Ro(),l=r.fallback,o=t.mode,u=(c=e.child).sibling,(r=Ui(c,{mode:"hidden",children:r.children})).subtreeFlags=65011712&c.subtreeFlags,null!==u?l=Ui(u,l):(l=Qi(l,o,n,null)).flags|=2,l.return=t,r.return=t,r.sibling=l,t.child=r,Pa(null,r),r=t.child,null===(l=e.child.memoizedState)?l=Ka(n):(null!==(o=l.cachePool)?(c=Rr._currentValue,o=o.parent!==c?{parent:c,pool:c}:o):o=qr(),l={baseLanes:l.baseLanes|n,cachePool:o}),r.memoizedState=l,r.childLanes=qa(e,i,n),t.memoizedState=Ga,Pa(e.child,r)):(Io(t),e=(n=e.child).sibling,(n=Ui(n,{mode:"visible",children:r.children})).return=t,n.sibling=null,null!==e&&(null===(i=t.deletions)?(t.deletions=[e],t.flags|=16):i.push(e)),t.child=n,t.memoizedState=null,n)}function Xa(e,t){return(t=Ja({mode:"visible",children:t},e.mode)).return=e,e.child=t}function Ja(e,t){return(e=Ri(22,e,null,t)).lanes=0,e}function el(e,t,n){return fo(t,e.child,null,n),(e=Xa(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function tl(e,t,n){e.lanes|=t;var i=e.alternate;null!==i&&(i.lanes|=t),Cr(e.return,t,n)}function nl(e,t,n,i,r,o){var s=e.memoizedState;null===s?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:i,tail:n,tailMode:r,treeForkCount:o}:(s.isBackwards=t,s.rendering=null,s.renderingStartTime=0,s.last=i,s.tail=n,s.tailMode=r,s.treeForkCount=o)}function il(e,t,n){var i=t.pendingProps,r=i.revealOrder,o=i.tail;i=i.children;var s=Uo.current,a=!!(2&s);if(a?(s=1&s|2,t.flags|=128):s&=1,F(Uo,s),Ea(e,t,i,n),i=dr?Xi:0,!a&&null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&tl(e,n,t);else if(19===e.tag)tl(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(r){case"forwards":for(n=t.child,r=null;null!==n;)null!==(e=n.alternate)&&null===Fo(e)&&(r=n),n=n.sibling;null===(n=r)?(r=t.child,t.child=null):(r=n.sibling,n.sibling=null),nl(t,!1,r,n,o,i);break;case"backwards":case"unstable_legacy-backwards":for(n=null,r=t.child,t.child=null;null!==r;){if(null!==(e=r.alternate)&&null===Fo(e)){t.child=r;break}e=r.sibling,r.sibling=n,n=r,r=e}nl(t,!0,n,null,o,i);break;case"together":nl(t,!1,null,null,void 0,i);break;default:t.memoizedState=null}return t.child}function rl(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),_c|=t.lanes,0===(n&t.childLanes)){if(null===e)return null;if(kr(e,t,n,!1),0===(n&t.childLanes))return null}if(null!==e&&t.child!==e.child)throw Error(s(153));if(null!==t.child){for(n=Ui(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Ui(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function ol(e,t){return 0!==(e.lanes&t)||!(null===(e=e.dependencies)||!Ar(e))}function sl(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps)za=!0;else{if(!(ol(e,n)||128&t.flags))return za=!1,function(e,t,n){switch(t.tag){case 3:G(t,t.stateNode.containerInfo),Nr(0,Rr,e.memoizedState.cache),br();break;case 27:case 5:q(t);break;case 4:G(t,t.stateNode.containerInfo);break;case 10:Nr(0,t.type,t.memoizedProps.value);break;case 31:if(null!==t.memoizedState)return t.flags|=128,Oo(t),null;break;case 13:var i=t.memoizedState;if(null!==i)return null!==i.dehydrated?(Io(t),t.flags|=128,null):0!==(n&t.child.childLanes)?Za(e,t,n):(Io(t),null!==(e=rl(e,t,n))?e.sibling:null);Io(t);break;case 19:var r=!!(128&e.flags);if((i=0!==(n&t.childLanes))||(kr(e,t,n,!1),i=0!==(n&t.childLanes)),r){if(i)return il(e,t,n);t.flags|=128}if(null!==(r=t.memoizedState)&&(r.rendering=null,r.tail=null,r.lastEffect=null),F(Uo,Uo.current),i)break;return null;case 22:return t.lanes=0,Ra(e,t,n,t.pendingProps);case 24:Nr(0,Rr,e.memoizedState.cache)}return rl(e,t,n)}(e,t,n);za=!!(131072&e.flags)}else za=!1,dr&&1048576&t.flags&&or(t,Xi,t.index);switch(t.lanes=0,t.tag){case 16:e:{var i=t.pendingProps;if(e=io(t.elementType),t.type=e,"function"!=typeof e){if(null!=e){var r=e.$$typeof;if(r===x){t.tag=11,t=Ia(null,t,e,i,n);break e}if(r===N){t.tag=14,t=Oa(null,t,e,i,n);break e}}throw t=j(e)||e,Error(s(306,t,""))}Pi(e)?(i=La(e,i),t.tag=1,t=Ha(null,t,e,i,n)):(t.tag=0,t=Wa(null,t,e,i,n))}return t;case 0:return Wa(e,t,t.type,t.pendingProps,n);case 1:return Ha(e,t,i=t.type,r=La(i,t.pendingProps),n);case 3:e:{if(G(t,t.stateNode.containerInfo),null===e)throw Error(s(387));i=t.pendingProps;var o=t.memoizedState;r=o.element,wo(e,t),No(t,i,null,n);var a=t.memoizedState;if(i=a.cache,Nr(0,Rr,i),i!==o.cache&&Tr(t,[Rr],n,!0),_o(),i=a.element,o.isDehydrated){if(o={element:i,isDehydrated:!1,cache:a.cache},t.updateQueue.baseState=o,t.memoizedState=o,256&t.flags){t=Va(e,t,i,n);break e}if(i!==r){Mr(r=Gi(Error(s(424)),t)),t=Va(e,t,i,n);break e}if(9===(e=t.stateNode.containerInfo).nodeType)e=e.body;else e="HTML"===e.nodeName?e.ownerDocument.body:e;for(ur=zd(e.firstChild),cr=t,dr=!0,hr=null,pr=!0,n=go(t,null,i,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(br(),i===r){t=rl(e,t,n);break e}Ea(e,t,i,n)}t=t.child}return t;case 26:return Qa(e,t),null===e?(n=Bd(t.type,null,t.pendingProps,null))?t.memoizedState=n:dr||(n=t.type,e=t.pendingProps,(i=md(H.current).createElement(n))[Fe]=t,i[Ye]=e,hd(i,n,e),et(i),t.stateNode=i):t.memoizedState=Bd(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return q(t),null===e&&dr&&(i=t.stateNode=$d(t.type,t.pendingProps,H.current),cr=t,pr=!0,r=ur,Sd(t.type)?(Ed=r,ur=zd(i.firstChild)):ur=r),Ea(e,t,t.pendingProps.children,n),Qa(e,t),null===e&&(t.flags|=4194304),t.child;case 5:return null===e&&dr&&((r=i=ur)&&(null!==(i=function(e,t,n,i){for(;1===e.nodeType;){var r=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!i&&("INPUT"!==e.nodeName||"hidden"!==e.type))break}else if(i){if(!e[Ge])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if("stylesheet"===(o=e.getAttribute("rel"))&&e.hasAttribute("data-precedence"))break;if(o!==r.rel||e.getAttribute("href")!==(null==r.href||""===r.href?null:r.href)||e.getAttribute("crossorigin")!==(null==r.crossOrigin?null:r.crossOrigin)||e.getAttribute("title")!==(null==r.title?null:r.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(((o=e.getAttribute("src"))!==(null==r.src?null:r.src)||e.getAttribute("type")!==(null==r.type?null:r.type)||e.getAttribute("crossorigin")!==(null==r.crossOrigin?null:r.crossOrigin))&&o&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else{if("input"!==t||"hidden"!==e.type)return e;var o=null==r.name?null:""+r.name;if("hidden"===r.type&&e.getAttribute("name")===o)return e}if(null===(e=zd(e.nextSibling)))break}return null}(i,t.type,t.pendingProps,pr))?(t.stateNode=i,cr=t,ur=zd(i.firstChild),pr=!1,r=!0):r=!1),r||gr(t)),q(t),r=t.type,o=t.pendingProps,a=null!==e?e.memoizedProps:null,i=o.children,bd(r,o)?i=null:null!==a&&bd(r,a)&&(t.flags|=32),null!==t.memoizedState&&(r=ts(e,t,rs,null,null,n),uh._currentValue=r),Qa(e,t),Ea(e,t,i,n),t.child;case 6:return null===e&&dr&&((e=n=ur)&&(null!==(n=function(e,t,n){if(""===t)return null;for(;3!==e.nodeType;){if((1!==e.nodeType||"INPUT"!==e.nodeName||"hidden"!==e.type)&&!n)return null;if(null===(e=zd(e.nextSibling)))return null}return e}(n,t.pendingProps,pr))?(t.stateNode=n,cr=t,ur=null,e=!0):e=!1),e||gr(t)),null;case 13:return Za(e,t,n);case 4:return G(t,t.stateNode.containerInfo),i=t.pendingProps,null===e?t.child=fo(t,null,i,n):Ea(e,t,i,n),t.child;case 11:return Ia(e,t,t.type,t.pendingProps,n);case 7:return Ea(e,t,t.pendingProps,n),t.child;case 8:case 12:return Ea(e,t,t.pendingProps.children,n),t.child;case 10:return i=t.pendingProps,Nr(0,t.type,i.value),Ea(e,t,i.children,n),t.child;case 9:return r=t.type._context,i=t.pendingProps.children,Dr(t),i=i(r=jr(r)),t.flags|=1,Ea(e,t,i,n),t.child;case 14:return Oa(e,t,t.type,t.pendingProps,n);case 15:return $a(e,t,t.type,t.pendingProps,n);case 19:return il(e,t,n);case 31:return function(e,t,n){var i=t.pendingProps,r=!!(128&t.flags);if(t.flags&=-129,null===e){if(dr){if("hidden"===i.mode)return e=Fa(t,i),t.lanes=536870912,Pa(null,e);if(Oo(t),(e=ur)?null!==(e=null!==(e=Ad(e,pr))&&"&"===e.data?e:null)&&(t.memoizedState={dehydrated:e,treeContext:null!==tr?{id:nr,overflow:ir}:null,retryLane:536870912,hydrationErrors:null},(n=Bi(e)).return=t,t.child=n,cr=t,ur=null):e=null,null===e)throw gr(t);return t.lanes=536870912,null}return Fa(t,i)}var o=e.memoizedState;if(null!==o){var a=o.dehydrated;if(Oo(t),r)if(256&t.flags)t.flags&=-257,t=Ya(e,t,n);else{if(null===t.memoizedState)throw Error(s(558));t.child=e.child,t.flags|=128,t=null}else if(za||kr(e,t,n,!1),r=0!==(n&e.childLanes),za||r){if(null!==(i=fc)&&0!==(a=Ie(i,n))&&a!==o.retryLane)throw o.retryLane=a,zi(e,a),Gc(i,e,a),ja;su(),t=Ya(e,t,n)}else e=o.treeContext,ur=zd(a.nextSibling),cr=t,dr=!0,hr=null,pr=!1,null!==e&&lr(t,e),(t=Fa(t,i)).flags|=4096;return t}return(e=Ui(e.child,{mode:i.mode,children:i.children})).ref=t.ref,t.child=e,e.return=t,e}(e,t,n);case 22:return Ra(e,t,n,t.pendingProps);case 24:return Dr(t),i=jr(Rr),null===e?(null===(r=Gr())&&(r=fc,o=Pr(),r.pooledCache=o,o.refCount++,null!==o&&(r.pooledCacheLanes|=n),r=o),t.memoizedState={parent:i,cache:r},yo(t),Nr(0,Rr,r)):(0!==(e.lanes&n)&&(wo(e,t),No(t,null,null,n),_o()),r=e.memoizedState,o=t.memoizedState,r.parent!==i?(r={parent:i,cache:i},t.memoizedState=r,0===t.lanes&&(t.memoizedState=t.updateQueue.baseState=r),Nr(0,Rr,i)):(i=o.cache,Nr(0,Rr,i),i!==r.cache&&Tr(t,[Rr],n,!0))),Ea(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(s(156,t.tag))}function al(e){e.flags|=4}function ll(e,t,n,i,r){if((t=!!(32&e.mode))&&(t=!1),t){if(e.flags|=16777216,(335544128&r)===r)if(e.stateNode.complete)e.flags|=8192;else{if(!iu())throw ro=eo,Xr;e.flags|=8192}}else e.flags&=-16777217}function cl(e,t){if("stylesheet"!==t.type||4&t.state.loading)e.flags&=-16777217;else if(e.flags|=16777216,!rh(t)){if(!iu())throw ro=eo,Xr;e.flags|=8192}}function ul(e,t){null!==t&&(e.flags|=4),16384&e.flags&&(t=22!==e.tag?Ae():536870912,e.lanes|=t,Tc|=t)}function dl(e,t){if(!dr)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var i=null;null!==n;)null!==n.alternate&&(i=n),n=n.sibling;null===i?t||null===e.tail?e.tail=null:e.tail.sibling=null:i.sibling=null}}function hl(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,i=0;if(t)for(var r=e.child;null!==r;)n|=r.lanes|r.childLanes,i|=65011712&r.subtreeFlags,i|=65011712&r.flags,r.return=e,r=r.sibling;else for(r=e.child;null!==r;)n|=r.lanes|r.childLanes,i|=r.subtreeFlags,i|=r.flags,r.return=e,r=r.sibling;return e.subtreeFlags|=i,e.childLanes=n,t}function pl(e,t,n){var i=t.pendingProps;switch(ar(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:case 1:return hl(t),null;case 3:return n=t.stateNode,i=null,null!==e&&(i=e.memoizedState.cache),t.memoizedState.cache!==i&&(t.flags|=2048),Sr(Rr),K(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),null!==e&&null!==e.child||(wr(t)?al(t):null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,vr())),hl(t),null;case 26:var r=t.type,o=t.memoizedState;return null===e?(al(t),null!==o?(hl(t),cl(t,o)):(hl(t),ll(t,r,0,0,n))):o?o!==e.memoizedState?(al(t),hl(t),cl(t,o)):(hl(t),t.flags&=-16777217):((e=e.memoizedProps)!==i&&al(t),hl(t),ll(t,r,0,0,n)),null;case 27:if(Z(t),n=H.current,r=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==i&&al(t);else{if(!i){if(null===t.stateNode)throw Error(s(166));return hl(t),null}e=W.current,wr(t)?mr(t):(e=$d(r,i,n),t.stateNode=e,al(t))}return hl(t),null;case 5:if(Z(t),r=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==i&&al(t);else{if(!i){if(null===t.stateNode)throw Error(s(166));return hl(t),null}if(o=W.current,wr(t))mr(t);else{var a=md(H.current);switch(o){case 1:o=a.createElementNS("http://www.w3.org/2000/svg",r);break;case 2:o=a.createElementNS("http://www.w3.org/1998/Math/MathML",r);break;default:switch(r){case"svg":o=a.createElementNS("http://www.w3.org/2000/svg",r);break;case"math":o=a.createElementNS("http://www.w3.org/1998/Math/MathML",r);break;case"script":(o=a.createElement("div")).innerHTML="<script><\/script>",o=o.removeChild(o.firstChild);break;case"select":o="string"==typeof i.is?a.createElement("select",{is:i.is}):a.createElement("select"),i.multiple?o.multiple=!0:i.size&&(o.size=i.size);break;default:o="string"==typeof i.is?a.createElement(r,{is:i.is}):a.createElement(r)}}o[Fe]=t,o[Ye]=i;e:for(a=t.child;null!==a;){if(5===a.tag||6===a.tag)o.appendChild(a.stateNode);else if(4!==a.tag&&27!==a.tag&&null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break e;for(;null===a.sibling;){if(null===a.return||a.return===t)break e;a=a.return}a.sibling.return=a.return,a=a.sibling}t.stateNode=o;e:switch(hd(o,r,i),r){case"button":case"input":case"select":case"textarea":i=!!i.autoFocus;break e;case"img":i=!0;break e;default:i=!1}i&&al(t)}}return hl(t),ll(t,t.type,null===e||e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==i&&al(t);else{if("string"!=typeof i&&null===t.stateNode)throw Error(s(166));if(e=H.current,wr(t)){if(e=t.stateNode,n=t.memoizedProps,i=null,null!==(r=cr))switch(r.tag){case 27:case 5:i=r.memoizedProps}e[Fe]=t,(e=!!(e.nodeValue===n||null!==i&&!0===i.suppressHydrationWarning||cd(e.nodeValue,n)))||gr(t,!0)}else(e=md(e).createTextNode(i))[Fe]=t,t.stateNode=e}return hl(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(i=wr(t),null!==n){if(null===e){if(!i)throw Error(s(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(s(557));e[Fe]=t}else br(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;hl(t),e=!1}else n=vr(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return 256&t.flags?(Po(t),t):(Po(t),null);if(128&t.flags)throw Error(s(558))}return hl(t),null;case 13:if(i=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(r=wr(t),null!==i&&null!==i.dehydrated){if(null===e){if(!r)throw Error(s(318));if(!(r=null!==(r=t.memoizedState)?r.dehydrated:null))throw Error(s(317));r[Fe]=t}else br(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;hl(t),r=!1}else r=vr(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=r),r=!0;if(!r)return 256&t.flags?(Po(t),t):(Po(t),null)}return Po(t),128&t.flags?(t.lanes=n,t):(n=null!==i,e=null!==e&&null!==e.memoizedState,n&&(r=null,null!==(i=t.child).alternate&&null!==i.alternate.memoizedState&&null!==i.alternate.memoizedState.cachePool&&(r=i.alternate.memoizedState.cachePool.pool),o=null,null!==i.memoizedState&&null!==i.memoizedState.cachePool&&(o=i.memoizedState.cachePool.pool),o!==r&&(i.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),ul(t,t.updateQueue),hl(t),null);case 4:return K(),null===e&&Ju(t.stateNode.containerInfo),hl(t),null;case 10:return Sr(t.type),hl(t),null;case 19:if(U(Uo),null===(i=t.memoizedState))return hl(t),null;if(r=!!(128&t.flags),null===(o=i.rendering))if(r)dl(i,!1);else{if(0!==Lc||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(o=Fo(e))){for(t.flags|=128,dl(i,!1),e=o.updateQueue,t.updateQueue=e,ul(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)Fi(n,e),n=n.sibling;return F(Uo,1&Uo.current|2),dr&&rr(t,i.treeForkCount),t.child}e=e.sibling}null!==i.tail&&le()>Ec&&(t.flags|=128,r=!0,dl(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=Fo(o))){if(t.flags|=128,r=!0,e=e.updateQueue,t.updateQueue=e,ul(t,e),dl(i,!0),null===i.tail&&"hidden"===i.tailMode&&!o.alternate&&!dr)return hl(t),null}else 2*le()-i.renderingStartTime>Ec&&536870912!==n&&(t.flags|=128,r=!0,dl(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(null!==(e=i.last)?e.sibling=o:t.child=o,i.last=o)}return null!==i.tail?(e=i.tail,i.rendering=e,i.tail=e.sibling,i.renderingStartTime=le(),e.sibling=null,n=Uo.current,F(Uo,r?1&n|2:1&n),dr&&rr(t,i.treeForkCount),e):(hl(t),null);case 22:case 23:return Po(t),jo(),i=null!==t.memoizedState,null!==e?null!==e.memoizedState!==i&&(t.flags|=8192):i&&(t.flags|=8192),i?!!(536870912&n)&&!(128&t.flags)&&(hl(t),6&t.subtreeFlags&&(t.flags|=8192)):hl(t),null!==(n=t.updateQueue)&&ul(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),i=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(i=t.memoizedState.cachePool.pool),i!==n&&(t.flags|=2048),null!==e&&U(Vr),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Sr(Rr),hl(t),null;case 25:case 30:return null}throw Error(s(156,t.tag))}function fl(e,t){switch(ar(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Sr(Rr),K(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return Z(t),null;case 31:if(null!==t.memoizedState){if(Po(t),null===t.alternate)throw Error(s(340));br()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(Po(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(s(340));br()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return U(Uo),null;case 4:return K(),null;case 10:return Sr(t.type),null;case 22:case 23:return Po(t),jo(),null!==e&&U(Vr),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return Sr(Rr),null;default:return null}}function gl(e,t){switch(ar(t),t.tag){case 3:Sr(Rr),K();break;case 26:case 27:case 5:Z(t);break;case 4:K();break;case 31:null!==t.memoizedState&&Po(t);break;case 13:Po(t);break;case 19:U(Uo);break;case 10:Sr(t.type);break;case 22:case 23:Po(t),jo(),null!==e&&U(Vr);break;case 24:Sr(Rr)}}function ml(e,t){try{var n=t.updateQueue,i=null!==n?n.lastEffect:null;if(null!==i){var r=i.next;n=r;do{if((n.tag&e)===e){i=void 0;var o=n.create,s=n.inst;i=o(),s.destroy=i}n=n.next}while(n!==r)}}catch(e){Lu(t,t.return,e)}}function yl(e,t,n){try{var i=t.updateQueue,r=null!==i?i.lastEffect:null;if(null!==r){var o=r.next;i=o;do{if((i.tag&e)===e){var s=i.inst,a=s.destroy;if(void 0!==a){s.destroy=void 0,r=t;var l=n,c=a;try{c()}catch(e){Lu(r,l,e)}}}i=i.next}while(i!==o)}}catch(e){Lu(t,t.return,e)}}function wl(e){var t=e.updateQueue;if(null!==t){var n=e.stateNode;try{Co(t,n)}catch(t){Lu(e,e.return,t)}}}function bl(e,t,n){n.props=La(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Lu(e,t,n)}}function vl(e,t){try{var n=e.ref;if(null!==n){switch(e.tag){case 26:case 27:case 5:var i=e.stateNode;break;default:i=e.stateNode}"function"==typeof n?e.refCleanup=n(i):n.current=i}}catch(n){Lu(e,t,n)}}function Ml(e,t){var n=e.ref,i=e.refCleanup;if(null!==n)if("function"==typeof i)try{i()}catch(n){Lu(e,t,n)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if("function"==typeof n)try{n(null)}catch(n){Lu(e,t,n)}else n.current=null}function xl(e){var t=e.type,n=e.memoizedProps,i=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&i.focus();break e;case"img":n.src?i.src=n.src:n.srcSet&&(i.srcset=n.srcSet)}}catch(t){Lu(e,e.return,t)}}function Ll(e,t,n){try{var i=e.stateNode;!function(e,t,n,i){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var r=null,o=null,a=null,l=null,c=null,u=null,d=null;for(f in n){var h=n[f];if(n.hasOwnProperty(f)&&null!=h)switch(f){case"checked":case"value":break;case"defaultValue":c=h;default:i.hasOwnProperty(f)||ud(e,t,f,null,i,h)}}for(var p in i){var f=i[p];if(h=n[p],i.hasOwnProperty(p)&&(null!=f||null!=h))switch(p){case"type":o=f;break;case"name":r=f;break;case"checked":u=f;break;case"defaultChecked":d=f;break;case"value":a=f;break;case"defaultValue":l=f;break;case"children":case"dangerouslySetInnerHTML":if(null!=f)throw Error(s(137,t));break;default:f!==h&&ud(e,t,p,f,i,h)}}return void wt(e,a,l,c,u,d,o,r);case"select":for(o in f=a=l=p=null,n)if(c=n[o],n.hasOwnProperty(o)&&null!=c)switch(o){case"value":break;case"multiple":f=c;default:i.hasOwnProperty(o)||ud(e,t,o,null,i,c)}for(r in i)if(o=i[r],c=n[r],i.hasOwnProperty(r)&&(null!=o||null!=c))switch(r){case"value":p=o;break;case"defaultValue":l=o;break;case"multiple":a=o;default:o!==c&&ud(e,t,r,o,i,c)}return t=l,n=a,i=f,void(null!=p?Mt(e,!!n,p,!1):!!i!=!!n&&(null!=t?Mt(e,!!n,t,!0):Mt(e,!!n,n?[]:"",!1)));case"textarea":for(l in f=p=null,n)if(r=n[l],n.hasOwnProperty(l)&&null!=r&&!i.hasOwnProperty(l))switch(l){case"value":case"children":break;default:ud(e,t,l,null,i,r)}for(a in i)if(r=i[a],o=n[a],i.hasOwnProperty(a)&&(null!=r||null!=o))switch(a){case"value":p=r;break;case"defaultValue":f=r;break;case"children":break;case"dangerouslySetInnerHTML":if(null!=r)throw Error(s(91));break;default:r!==o&&ud(e,t,a,r,i,o)}return void xt(e,p,f);case"option":for(var g in n)if(p=n[g],n.hasOwnProperty(g)&&null!=p&&!i.hasOwnProperty(g))if("selected"===g)e.selected=!1;else ud(e,t,g,null,i,p);for(c in i)if(p=i[c],f=n[c],i.hasOwnProperty(c)&&p!==f&&(null!=p||null!=f))if("selected"===c)e.selected=p&&"function"!=typeof p&&"symbol"!=typeof p;else ud(e,t,c,p,i,f);return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var m in n)p=n[m],n.hasOwnProperty(m)&&null!=p&&!i.hasOwnProperty(m)&&ud(e,t,m,null,i,p);for(u in i)if(p=i[u],f=n[u],i.hasOwnProperty(u)&&p!==f&&(null!=p||null!=f))switch(u){case"children":case"dangerouslySetInnerHTML":if(null!=p)throw Error(s(137,t));break;default:ud(e,t,u,p,i,f)}return;default:if(Tt(t)){for(var y in n)p=n[y],n.hasOwnProperty(y)&&void 0!==p&&!i.hasOwnProperty(y)&&dd(e,t,y,void 0,i,p);for(d in i)p=i[d],f=n[d],!i.hasOwnProperty(d)||p===f||void 0===p&&void 0===f||dd(e,t,d,p,i,f);return}}for(var w in n)p=n[w],n.hasOwnProperty(w)&&null!=p&&!i.hasOwnProperty(w)&&ud(e,t,w,null,i,p);for(h in i)p=i[h],f=n[h],!i.hasOwnProperty(h)||p===f||null==p&&null==f||ud(e,t,h,p,i,f)}(i,e.type,n,t),i[Ye]=t}catch(t){Lu(e,e.return,t)}}function _l(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&Sd(e.type)||4===e.tag}function Nl(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||_l(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&Sd(e.type))continue e;if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function Sl(e,t,n){var i=e.tag;if(5===i||6===i)e=e.stateNode,t?(9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).insertBefore(e,t):((t=9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=jt));else if(4!==i&&(27===i&&Sd(e.type)&&(n=e.stateNode,t=null),null!==(e=e.child)))for(Sl(e,t,n),e=e.sibling;null!==e;)Sl(e,t,n),e=e.sibling}function Cl(e,t,n){var i=e.tag;if(5===i||6===i)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==i&&(27===i&&Sd(e.type)&&(n=e.stateNode),null!==(e=e.child)))for(Cl(e,t,n),e=e.sibling;null!==e;)Cl(e,t,n),e=e.sibling}function Tl(e){var t=e.stateNode,n=e.memoizedProps;try{for(var i=e.type,r=t.attributes;r.length;)t.removeAttributeNode(r[0]);hd(t,i,n),t[Fe]=e,t[Ye]=n}catch(t){Lu(e,e.return,t)}}var kl=!1,Al=!1,Dl=!1,jl="function"==typeof WeakSet?WeakSet:Set,zl=null;function El(e,t,n){var i=n.flags;switch(n.tag){case 0:case 11:case 15:Gl(e,n),4&i&&ml(5,n);break;case 1:if(Gl(e,n),4&i)if(e=n.stateNode,null===t)try{e.componentDidMount()}catch(e){Lu(n,n.return,e)}else{var r=La(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(r,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){Lu(n,n.return,e)}}64&i&&wl(n),512&i&&vl(n,n.return);break;case 3:if(Gl(e,n),64&i&&null!==(e=n.updateQueue)){if(t=null,null!==n.child)switch(n.child.tag){case 27:case 5:case 1:t=n.child.stateNode}try{Co(e,t)}catch(e){Lu(n,n.return,e)}}break;case 27:null===t&&4&i&&Tl(n);case 26:case 5:Gl(e,n),null===t&&4&i&&xl(n),512&i&&vl(n,n.return);break;case 12:Gl(e,n);break;case 31:Gl(e,n),4&i&&Ul(e,n);break;case 13:Gl(e,n),4&i&&Fl(e,n),64&i&&(null!==(e=n.memoizedState)&&(null!==(e=e.dehydrated)&&function(e,t){var n=e.ownerDocument;if("$~"===e.data)e._reactRetry=t;else if("$?"!==e.data||"loading"!==n.readyState)t();else{var i=function(){t(),n.removeEventListener("DOMContentLoaded",i)};n.addEventListener("DOMContentLoaded",i),e._reactRetry=i}}(e,n=Cu.bind(null,n))));break;case 22:if(!(i=null!==n.memoizedState||kl)){t=null!==t&&null!==t.memoizedState||Al,r=kl;var o=Al;kl=i,(Al=t)&&!o?ql(e,n,!!(8772&n.subtreeFlags)):Gl(e,n),kl=r,Al=o}break;case 30:break;default:Gl(e,n)}}function Il(e){var t=e.alternate;null!==t&&(e.alternate=null,Il(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&Ke(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Ol=null,$l=!1;function Rl(e,t,n){for(n=n.child;null!==n;)Pl(e,t,n),n=n.sibling}function Pl(e,t,n){if(we&&"function"==typeof we.onCommitFiberUnmount)try{we.onCommitFiberUnmount(ye,n)}catch(e){}switch(n.tag){case 26:Al||Ml(n,t),Rl(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode).parentNode.removeChild(n);break;case 27:Al||Ml(n,t);var i=Ol,r=$l;Sd(n.type)&&(Ol=n.stateNode,$l=!1),Rl(e,t,n),Rd(n.stateNode),Ol=i,$l=r;break;case 5:Al||Ml(n,t);case 6:if(i=Ol,r=$l,Ol=null,Rl(e,t,n),$l=r,null!==(Ol=i))if($l)try{(9===Ol.nodeType?Ol.body:"HTML"===Ol.nodeName?Ol.ownerDocument.body:Ol).removeChild(n.stateNode)}catch(e){Lu(n,t,e)}else try{Ol.removeChild(n.stateNode)}catch(e){Lu(n,t,e)}break;case 18:null!==Ol&&($l?(Cd(9===(e=Ol).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e,n.stateNode),Wh(e)):Cd(Ol,n.stateNode));break;case 4:i=Ol,r=$l,Ol=n.stateNode.containerInfo,$l=!0,Rl(e,t,n),Ol=i,$l=r;break;case 0:case 11:case 14:case 15:yl(2,n,t),Al||yl(4,n,t),Rl(e,t,n);break;case 1:Al||(Ml(n,t),"function"==typeof(i=n.stateNode).componentWillUnmount&&bl(n,t,i)),Rl(e,t,n);break;case 21:Rl(e,t,n);break;case 22:Al=(i=Al)||null!==n.memoizedState,Rl(e,t,n),Al=i;break;default:Rl(e,t,n)}}function Ul(e,t){if(null===t.memoizedState&&(null!==(e=t.alternate)&&null!==(e=e.memoizedState))){e=e.dehydrated;try{Wh(e)}catch(e){Lu(t,t.return,e)}}}function Fl(e,t){if(null===t.memoizedState&&(null!==(e=t.alternate)&&(null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))))try{Wh(e)}catch(e){Lu(t,t.return,e)}}function Yl(e,t){var n=function(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return null===t&&(t=e.stateNode=new jl),t;case 22:return null===(t=(e=e.stateNode)._retryCache)&&(t=e._retryCache=new jl),t;default:throw Error(s(435,e.tag))}}(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var i=Tu.bind(null,e,t);t.then(i,i)}})}function Ql(e,t){var n=t.deletions;if(null!==n)for(var i=0;i<n.length;i++){var r=n[i],o=e,a=t,l=a;e:for(;null!==l;){switch(l.tag){case 27:if(Sd(l.type)){Ol=l.stateNode,$l=!1;break e}break;case 5:Ol=l.stateNode,$l=!1;break e;case 3:case 4:Ol=l.stateNode.containerInfo,$l=!0;break e}l=l.return}if(null===Ol)throw Error(s(160));Pl(o,a,r),Ol=null,$l=!1,null!==(o=r.alternate)&&(o.return=null),r.return=null}if(13886&t.subtreeFlags)for(t=t.child;null!==t;)Bl(t,e),t=t.sibling}var Wl=null;function Bl(e,t){var n=e.alternate,i=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:Ql(t,e),Hl(e),4&i&&(yl(3,e,e.return),ml(3,e),yl(5,e,e.return));break;case 1:Ql(t,e),Hl(e),512&i&&(Al||null===n||Ml(n,n.return)),64&i&&kl&&(null!==(e=e.updateQueue)&&(null!==(i=e.callbacks)&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=null===n?i:n.concat(i))));break;case 26:var r=Wl;if(Ql(t,e),Hl(e),512&i&&(Al||null===n||Ml(n,n.return)),4&i){var o=null!==n?n.memoizedState:null;if(i=e.memoizedState,null===n)if(null===i)if(null===e.stateNode){e:{i=e.type,n=e.memoizedProps,r=r.ownerDocument||r;t:switch(i){case"title":(!(o=r.getElementsByTagName("title")[0])||o[Ge]||o[Fe]||"http://www.w3.org/2000/svg"===o.namespaceURI||o.hasAttribute("itemprop"))&&(o=r.createElement(i),r.head.insertBefore(o,r.querySelector("head > title"))),hd(o,i,n),o[Fe]=e,et(o),i=o;break e;case"link":var a=nh("link","href",r).get(i+(n.href||""));if(a)for(var l=0;l<a.length;l++)if((o=a[l]).getAttribute("href")===(null==n.href||""===n.href?null:n.href)&&o.getAttribute("rel")===(null==n.rel?null:n.rel)&&o.getAttribute("title")===(null==n.title?null:n.title)&&o.getAttribute("crossorigin")===(null==n.crossOrigin?null:n.crossOrigin)){a.splice(l,1);break t}hd(o=r.createElement(i),i,n),r.head.appendChild(o);break;case"meta":if(a=nh("meta","content",r).get(i+(n.content||"")))for(l=0;l<a.length;l++)if((o=a[l]).getAttribute("content")===(null==n.content?null:""+n.content)&&o.getAttribute("name")===(null==n.name?null:n.name)&&o.getAttribute("property")===(null==n.property?null:n.property)&&o.getAttribute("http-equiv")===(null==n.httpEquiv?null:n.httpEquiv)&&o.getAttribute("charset")===(null==n.charSet?null:n.charSet)){a.splice(l,1);break t}hd(o=r.createElement(i),i,n),r.head.appendChild(o);break;default:throw Error(s(468,i))}o[Fe]=e,et(o),i=o}e.stateNode=i}else ih(r,e.type,e.stateNode);else e.stateNode=Zd(r,i,e.memoizedProps);else o!==i?(null===o?null!==n.stateNode&&(n=n.stateNode).parentNode.removeChild(n):o.count--,null===i?ih(r,e.type,e.stateNode):Zd(r,i,e.memoizedProps)):null===i&&null!==e.stateNode&&Ll(e,e.memoizedProps,n.memoizedProps)}break;case 27:Ql(t,e),Hl(e),512&i&&(Al||null===n||Ml(n,n.return)),null!==n&&4&i&&Ll(e,e.memoizedProps,n.memoizedProps);break;case 5:if(Ql(t,e),Hl(e),512&i&&(Al||null===n||Ml(n,n.return)),32&e.flags){r=e.stateNode;try{_t(r,"")}catch(t){Lu(e,e.return,t)}}4&i&&null!=e.stateNode&&Ll(e,r=e.memoizedProps,null!==n?n.memoizedProps:r),1024&i&&(Dl=!0);break;case 6:if(Ql(t,e),Hl(e),4&i){if(null===e.stateNode)throw Error(s(162));i=e.memoizedProps,n=e.stateNode;try{n.nodeValue=i}catch(t){Lu(e,e.return,t)}}break;case 3:if(th=null,r=Wl,Wl=Fd(t.containerInfo),Ql(t,e),Wl=r,Hl(e),4&i&&null!==n&&n.memoizedState.isDehydrated)try{Wh(t.containerInfo)}catch(t){Lu(e,e.return,t)}Dl&&(Dl=!1,Vl(e));break;case 4:i=Wl,Wl=Fd(e.stateNode.containerInfo),Ql(t,e),Hl(e),Wl=i;break;case 12:default:Ql(t,e),Hl(e);break;case 31:case 19:Ql(t,e),Hl(e),4&i&&(null!==(i=e.updateQueue)&&(e.updateQueue=null,Yl(e,i)));break;case 13:Ql(t,e),Hl(e),8192&e.child.flags&&null!==e.memoizedState!=(null!==n&&null!==n.memoizedState)&&(jc=le()),4&i&&(null!==(i=e.updateQueue)&&(e.updateQueue=null,Yl(e,i)));break;case 22:r=null!==e.memoizedState;var c=null!==n&&null!==n.memoizedState,u=kl,d=Al;if(kl=u||r,Al=d||c,Ql(t,e),Al=d,kl=u,Hl(e),8192&i)e:for(t=e.stateNode,t._visibility=r?-2&t._visibility:1|t._visibility,r&&(null===n||c||kl||Al||Kl(e)),n=null,t=e;;){if(5===t.tag||26===t.tag){if(null===n){c=n=t;try{if(o=c.stateNode,r)"function"==typeof(a=o.style).setProperty?a.setProperty("display","none","important"):a.display="none";else{l=c.stateNode;var h=c.memoizedProps.style,p=null!=h&&h.hasOwnProperty("display")?h.display:null;l.style.display=null==p||"boolean"==typeof p?"":(""+p).trim()}}catch(e){Lu(c,c.return,e)}}}else if(6===t.tag){if(null===n){c=t;try{c.stateNode.nodeValue=r?"":c.memoizedProps}catch(e){Lu(c,c.return,e)}}}else if(18===t.tag){if(null===n){c=t;try{var f=c.stateNode;r?Td(f,!0):Td(c.stateNode,!1)}catch(e){Lu(c,c.return,e)}}}else if((22!==t.tag&&23!==t.tag||null===t.memoizedState||t===e)&&null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;null===t.sibling;){if(null===t.return||t.return===e)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}4&i&&(null!==(i=e.updateQueue)&&(null!==(n=i.retryQueue)&&(i.retryQueue=null,Yl(e,n))));case 30:case 21:}}function Hl(e){var t=e.flags;if(2&t){try{for(var n,i=e.return;null!==i;){if(_l(i)){n=i;break}i=i.return}if(null==n)throw Error(s(160));switch(n.tag){case 27:var r=n.stateNode;Cl(e,Nl(e),r);break;case 5:var o=n.stateNode;32&n.flags&&(_t(o,""),n.flags&=-33),Cl(e,Nl(e),o);break;case 3:case 4:var a=n.stateNode.containerInfo;Sl(e,Nl(e),a);break;default:throw Error(s(161))}}catch(t){Lu(e,e.return,t)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function Vl(e){if(1024&e.subtreeFlags)for(e=e.child;null!==e;){var t=e;Vl(t),5===t.tag&&1024&t.flags&&t.stateNode.reset(),e=e.sibling}}function Gl(e,t){if(8772&t.subtreeFlags)for(t=t.child;null!==t;)El(e,t.alternate,t),t=t.sibling}function Kl(e){for(e=e.child;null!==e;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:yl(4,t,t.return),Kl(t);break;case 1:Ml(t,t.return);var n=t.stateNode;"function"==typeof n.componentWillUnmount&&bl(t,t.return,n),Kl(t);break;case 27:Rd(t.stateNode);case 26:case 5:Ml(t,t.return),Kl(t);break;case 22:null===t.memoizedState&&Kl(t);break;default:Kl(t)}e=e.sibling}}function ql(e,t,n){for(n=n&&!!(8772&t.subtreeFlags),t=t.child;null!==t;){var i=t.alternate,r=e,o=t,s=o.flags;switch(o.tag){case 0:case 11:case 15:ql(r,o,n),ml(4,o);break;case 1:if(ql(r,o,n),"function"==typeof(r=(i=o).stateNode).componentDidMount)try{r.componentDidMount()}catch(e){Lu(i,i.return,e)}if(null!==(r=(i=o).updateQueue)){var a=i.stateNode;try{var l=r.shared.hiddenCallbacks;if(null!==l)for(r.shared.hiddenCallbacks=null,r=0;r<l.length;r++)So(l[r],a)}catch(e){Lu(i,i.return,e)}}n&&64&s&&wl(o),vl(o,o.return);break;case 27:Tl(o);case 26:case 5:ql(r,o,n),n&&null===i&&4&s&&xl(o),vl(o,o.return);break;case 12:ql(r,o,n);break;case 31:ql(r,o,n),n&&4&s&&Ul(r,o);break;case 13:ql(r,o,n),n&&4&s&&Fl(r,o);break;case 22:null===o.memoizedState&&ql(r,o,n),vl(o,o.return);break;case 30:break;default:ql(r,o,n)}t=t.sibling}}function Zl(e,t){var n=null;null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),e=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(e=t.memoizedState.cachePool.pool),e!==n&&(null!=e&&e.refCount++,null!=n&&Ur(n))}function Xl(e,t){e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&Ur(e))}function Jl(e,t,n,i){if(10256&t.subtreeFlags)for(t=t.child;null!==t;)ec(e,t,n,i),t=t.sibling}function ec(e,t,n,i){var r=t.flags;switch(t.tag){case 0:case 11:case 15:Jl(e,t,n,i),2048&r&&ml(9,t);break;case 1:case 31:case 13:default:Jl(e,t,n,i);break;case 3:Jl(e,t,n,i),2048&r&&(e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&Ur(e)));break;case 12:if(2048&r){Jl(e,t,n,i),e=t.stateNode;try{var o=t.memoizedProps,s=o.id,a=o.onPostCommit;"function"==typeof a&&a(s,null===t.alternate?"mount":"update",e.passiveEffectDuration,-0)}catch(e){Lu(t,t.return,e)}}else Jl(e,t,n,i);break;case 23:break;case 22:o=t.stateNode,s=t.alternate,null!==t.memoizedState?2&o._visibility?Jl(e,t,n,i):nc(e,t):2&o._visibility?Jl(e,t,n,i):(o._visibility|=2,tc(e,t,n,i,!!(10256&t.subtreeFlags)||!1)),2048&r&&Zl(s,t);break;case 24:Jl(e,t,n,i),2048&r&&Xl(t.alternate,t)}}function tc(e,t,n,i,r){for(r=r&&(!!(10256&t.subtreeFlags)||!1),t=t.child;null!==t;){var o=e,s=t,a=n,l=i,c=s.flags;switch(s.tag){case 0:case 11:case 15:tc(o,s,a,l,r),ml(8,s);break;case 23:break;case 22:var u=s.stateNode;null!==s.memoizedState?2&u._visibility?tc(o,s,a,l,r):nc(o,s):(u._visibility|=2,tc(o,s,a,l,r)),r&&2048&c&&Zl(s.alternate,s);break;case 24:tc(o,s,a,l,r),r&&2048&c&&Xl(s.alternate,s);break;default:tc(o,s,a,l,r)}t=t.sibling}}function nc(e,t){if(10256&t.subtreeFlags)for(t=t.child;null!==t;){var n=e,i=t,r=i.flags;switch(i.tag){case 22:nc(n,i),2048&r&&Zl(i.alternate,i);break;case 24:nc(n,i),2048&r&&Xl(i.alternate,i);break;default:nc(n,i)}t=t.sibling}}var ic=8192;function rc(e,t,n){if(e.subtreeFlags&ic)for(e=e.child;null!==e;)oc(e,t,n),e=e.sibling}function oc(e,t,n){switch(e.tag){case 26:rc(e,t,n),e.flags&ic&&null!==e.memoizedState&&function(e,t,n,i){if(!("stylesheet"!==n.type||"string"==typeof i.media&&!1===matchMedia(i.media).matches||4&n.state.loading)){if(null===n.instance){var r=Hd(i.href),o=t.querySelector(Vd(r));if(o)return null!==(t=o._p)&&"object"==typeof t&&"function"==typeof t.then&&(e.count++,e=sh.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=o,void et(o);o=t.ownerDocument||t,i=Gd(i),(r=Pd.get(r))&&Jd(i,r),et(o=o.createElement("link"));var s=o;s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),hd(o,"link",i),n.instance=o}null===e.stylesheets&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(3&n.state.loading)&&(e.count++,n=sh.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}(n,Wl,e.memoizedState,e.memoizedProps);break;case 5:default:rc(e,t,n);break;case 3:case 4:var i=Wl;Wl=Fd(e.stateNode.containerInfo),rc(e,t,n),Wl=i;break;case 22:null===e.memoizedState&&(null!==(i=e.alternate)&&null!==i.memoizedState?(i=ic,ic=16777216,rc(e,t,n),ic=i):rc(e,t,n))}}function sc(e){var t=e.alternate;if(null!==t&&null!==(e=t.child)){t.child=null;do{t=e.sibling,e.sibling=null,e=t}while(null!==e)}}function ac(e){var t=e.deletions;if(16&e.flags){if(null!==t)for(var n=0;n<t.length;n++){var i=t[n];zl=i,uc(i,e)}sc(e)}if(10256&e.subtreeFlags)for(e=e.child;null!==e;)lc(e),e=e.sibling}function lc(e){switch(e.tag){case 0:case 11:case 15:ac(e),2048&e.flags&&yl(9,e,e.return);break;case 3:case 12:default:ac(e);break;case 22:var t=e.stateNode;null!==e.memoizedState&&2&t._visibility&&(null===e.return||13!==e.return.tag)?(t._visibility&=-3,cc(e)):ac(e)}}function cc(e){var t=e.deletions;if(16&e.flags){if(null!==t)for(var n=0;n<t.length;n++){var i=t[n];zl=i,uc(i,e)}sc(e)}for(e=e.child;null!==e;){switch((t=e).tag){case 0:case 11:case 15:yl(8,t,t.return),cc(t);break;case 22:2&(n=t.stateNode)._visibility&&(n._visibility&=-3,cc(t));break;default:cc(t)}e=e.sibling}}function uc(e,t){for(;null!==zl;){var n=zl;switch(n.tag){case 0:case 11:case 15:yl(8,n,t);break;case 23:case 22:if(null!==n.memoizedState&&null!==n.memoizedState.cachePool){var i=n.memoizedState.cachePool.pool;null!=i&&i.refCount++}break;case 24:Ur(n.memoizedState.cache)}if(null!==(i=n.child))i.return=n,zl=i;else e:for(n=e;null!==zl;){var r=(i=zl).sibling,o=i.return;if(Il(i),i===n){zl=null;break e}if(null!==r){r.return=o,zl=r;break e}zl=o}}}var dc={getCacheForType:function(e){var t=jr(Rr),n=t.data.get(e);return void 0===n&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return jr(Rr).controller.signal}},hc="function"==typeof WeakMap?WeakMap:Map,pc=0,fc=null,gc=null,mc=0,yc=0,wc=null,bc=!1,vc=!1,Mc=!1,xc=0,Lc=0,_c=0,Nc=0,Sc=0,Cc=0,Tc=0,kc=null,Ac=null,Dc=!1,jc=0,zc=0,Ec=1/0,Ic=null,Oc=null,$c=0,Rc=null,Pc=null,Uc=0,Fc=0,Yc=null,Qc=null,Wc=0,Bc=null;function Hc(){return 2&pc&&0!==mc?mc&-mc:null!==E.T?Yu():Re()}function Vc(){if(0===Cc)if(536870912&mc&&!dr)Cc=536870912;else{var e=_e;!(3932160&(_e<<=1))&&(_e=262144),Cc=e}return null!==(e=zo.current)&&(e.flags|=32),Cc}function Gc(e,t,n){(e!==fc||2!==yc&&9!==yc)&&null===e.cancelPendingCommit||(tu(e,0),Xc(e,mc,Cc,!1)),je(e,n),2&pc&&e===fc||(e===fc&&(!(2&pc)&&(Nc|=n),4===Lc&&Xc(e,mc,Cc,!1)),Iu(e))}function Kc(e,t,n){if(6&pc)throw Error(s(327));for(var i=!n&&!(127&t)&&0===(t&e.expiredLanes)||Te(e,t),r=i?function(e,t){var n=pc;pc|=2;var i=ru(),r=ou();fc!==e||mc!==t?(Ic=null,Ec=le()+500,tu(e,t)):vc=Te(e,t);e:for(;;)try{if(0!==yc&&null!==gc){t=gc;var o=wc;t:switch(yc){case 1:yc=0,wc=null,hu(e,t,o,1);break;case 2:case 9:if(to(o)){yc=0,wc=null,du(t);break}t=function(){2!==yc&&9!==yc||fc!==e||(yc=7),Iu(e)},o.then(t,t);break e;case 3:yc=7;break e;case 4:yc=5;break e;case 7:to(o)?(yc=0,wc=null,du(t)):(yc=0,wc=null,hu(e,t,o,7));break;case 5:var a=null;switch(gc.tag){case 26:a=gc.memoizedState;case 5:case 27:var l=gc;if(a?rh(a):l.stateNode.complete){yc=0,wc=null;var c=l.sibling;if(null!==c)gc=c;else{var u=l.return;null!==u?(gc=u,pu(u)):gc=null}break t}}yc=0,wc=null,hu(e,t,o,5);break;case 6:yc=0,wc=null,hu(e,t,o,6);break;case 8:eu(),Lc=6;break e;default:throw Error(s(462))}}cu();break}catch(t){nu(e,t)}return _r=Lr=null,E.H=i,E.A=r,pc=n,null!==gc?0:(fc=null,mc=0,Ai(),Lc)}(e,t):au(e,t,!0),o=i;;){if(0===r){vc&&!i&&Xc(e,t,0,!1);break}if(n=e.current.alternate,!o||Zc(n)){if(2===r){if(o=t,e.errorRecoveryDisabledLanes&o)var a=0;else a=0!==(a=-536870913&e.pendingLanes)?a:536870912&a?536870912:0;if(0!==a){t=a;e:{var l=e;r=kc;var c=l.current.memoizedState.isDehydrated;if(c&&(tu(l,a).flags|=256),2!==(a=au(l,a,!1))){if(Mc&&!c){l.errorRecoveryDisabledLanes|=o,Nc|=o,r=4;break e}o=Ac,Ac=r,null!==o&&(null===Ac?Ac=o:Ac.push.apply(Ac,o))}r=a}if(o=!1,2!==r)continue}}if(1===r){tu(e,0),Xc(e,t,0,!0);break}e:{switch(i=e,o=r){case 0:case 1:throw Error(s(345));case 4:if((4194048&t)!==t)break;case 6:Xc(i,t,Cc,!bc);break e;case 2:Ac=null;break;case 3:case 5:break;default:throw Error(s(329))}if((62914560&t)===t&&10<(r=jc+300-le())){if(Xc(i,t,Cc,!bc),0!==Ce(i,0,!0))break e;Uc=t,i.timeoutHandle=Md(qc.bind(null,i,n,Ac,Ic,Dc,t,Cc,Nc,Tc,bc,o,"Throttled",-0,0),r)}else qc(i,n,Ac,Ic,Dc,t,Cc,Nc,Tc,bc,o,null,-0,0)}break}r=au(e,t,!1),o=!1}Iu(e)}function qc(e,t,n,i,r,o,s,a,l,c,u,d,h,p){if(e.timeoutHandle=-1,8192&(d=t.subtreeFlags)||!(16785408&~d)){oc(t,o,d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:jt});var f=(62914560&o)===o?jc-le():(4194048&o)===o?zc-le():0;if(null!==(f=function(e,t){return e.stylesheets&&0===e.count&&lh(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var i=setTimeout(function(){if(e.stylesheets&&lh(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&0===oh&&(oh=62500*function(){if("function"==typeof performance.getEntriesByType){for(var e=0,t=0,n=performance.getEntriesByType("resource"),i=0;i<n.length;i++){var r=n[i],o=r.transferSize,s=r.initiatorType,a=r.duration;if(o&&a&&pd(s)){for(s=0,a=r.responseEnd,i+=1;i<n.length;i++){var l=n[i],c=l.startTime;if(c>a)break;var u=l.transferSize,d=l.initiatorType;u&&pd(d)&&(s+=u*((l=l.responseEnd)<a?1:(a-c)/(l-c)))}if(--i,t+=8*(o+s)/(r.duration/1e3),10<++e)break}}if(0<e)return t/e/1e6}return navigator.connection&&"number"==typeof(e=navigator.connection.downlink)?e:5}());var r=setTimeout(function(){if(e.waitingForImages=!1,0===e.count&&(e.stylesheets&&lh(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>oh?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(i),clearTimeout(r)}}:null}(d,f)))return Uc=o,e.cancelPendingCommit=f(gu.bind(null,e,t,o,n,i,r,s,a,l,u,d,null,h,p)),void Xc(e,o,s,!c)}gu(e,t,o,n,i,r,s,a,l)}function Zc(e){for(var t=e;;){var n=t.tag;if((0===n||11===n||15===n)&&16384&t.flags&&(null!==(n=t.updateQueue)&&null!==(n=n.stores)))for(var i=0;i<n.length;i++){var r=n[i],o=r.getSnapshot;r=r.value;try{if(!Xn(o(),r))return!1}catch(e){return!1}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Xc(e,t,n,i){t&=~Sc,t&=~Nc,e.suspendedLanes|=t,e.pingedLanes&=~t,i&&(e.warmLanes|=t),i=e.expirationTimes;for(var r=t;0<r;){var o=31-ve(r),s=1<<o;i[o]=-1,r&=~s}0!==n&&ze(e,n,t)}function Jc(){return!!(6&pc)||(Ou(0,!1),!1)}function eu(){if(null!==gc){if(0===yc)var e=gc.return;else _r=Lr=null,as(e=gc),ao=null,lo=0,e=gc;for(;null!==e;)gl(e.alternate,e),e=e.return;gc=null}}function tu(e,t){var n=e.timeoutHandle;-1!==n&&(e.timeoutHandle=-1,xd(n)),null!==(n=e.cancelPendingCommit)&&(e.cancelPendingCommit=null,n()),Uc=0,eu(),fc=e,gc=n=Ui(e.current,null),mc=t,yc=0,wc=null,bc=!1,vc=Te(e,t),Mc=!1,Tc=Cc=Sc=Nc=_c=Lc=0,Ac=kc=null,Dc=!1,8&t&&(t|=32&t);var i=e.entangledLanes;if(0!==i)for(e=e.entanglements,i&=t;0<i;){var r=31-ve(i),o=1<<r;t|=e[r],i&=~o}return xc=t,Ai(),n}function nu(e,t){Qo=null,E.H=ga,t===Zr||t===Jr?(t=oo(),yc=3):t===Xr?(t=oo(),yc=4):yc=t===ja?8:null!==t&&"object"==typeof t&&"function"==typeof t.then?6:1,wc=t,null===gc&&(Lc=1,Ca(e,Gi(t,e.current)))}function iu(){var e=zo.current;return null===e||((4194048&mc)===mc?null===Eo:!!((62914560&mc)===mc||536870912&mc)&&e===Eo)}function ru(){var e=E.H;return E.H=ga,null===e?ga:e}function ou(){var e=E.A;return E.A=dc,e}function su(){Lc=4,bc||(4194048&mc)!==mc&&null!==zo.current||(vc=!0),!(134217727&_c)&&!(134217727&Nc)||null===fc||Xc(fc,mc,Cc,!1)}function au(e,t,n){var i=pc;pc|=2;var r=ru(),o=ou();fc===e&&mc===t||(Ic=null,tu(e,t)),t=!1;var s=Lc;e:for(;;)try{if(0!==yc&&null!==gc){var a=gc,l=wc;switch(yc){case 8:eu(),s=6;break e;case 3:case 2:case 9:case 6:null===zo.current&&(t=!0);var c=yc;if(yc=0,wc=null,hu(e,a,l,c),n&&vc){s=0;break e}break;default:c=yc,yc=0,wc=null,hu(e,a,l,c)}}lu(),s=Lc;break}catch(t){nu(e,t)}return t&&e.shellSuspendCounter++,_r=Lr=null,pc=i,E.H=r,E.A=o,null===gc&&(fc=null,mc=0,Ai()),s}function lu(){for(;null!==gc;)uu(gc)}function cu(){for(;null!==gc&&!se();)uu(gc)}function uu(e){var t=sl(e.alternate,e,xc);e.memoizedProps=e.pendingProps,null===t?pu(e):gc=t}function du(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Ba(n,t,t.pendingProps,t.type,void 0,mc);break;case 11:t=Ba(n,t,t.pendingProps,t.type.render,t.ref,mc);break;case 5:as(t);default:gl(n,t),t=sl(n,t=gc=Fi(t,xc),xc)}e.memoizedProps=e.pendingProps,null===t?pu(e):gc=t}function hu(e,t,n,i){_r=Lr=null,as(t),ao=null,lo=0;var r=t.return;try{if(function(e,t,n,i,r){if(n.flags|=32768,null!==i&&"object"==typeof i&&"function"==typeof i.then){if(null!==(t=n.alternate)&&kr(t,n,r,!0),null!==(n=zo.current)){switch(n.tag){case 31:case 13:return null===Eo?su():null===n.alternate&&0===Lc&&(Lc=3),n.flags&=-257,n.flags|=65536,n.lanes=r,i===eo?n.flags|=16384:(null===(t=n.updateQueue)?n.updateQueue=new Set([i]):t.add(i),_u(e,i,r)),!1;case 22:return n.flags|=65536,i===eo?n.flags|=16384:(null===(t=n.updateQueue)?(t={transitions:null,markerInstances:null,retryQueue:new Set([i])},n.updateQueue=t):null===(n=t.retryQueue)?t.retryQueue=new Set([i]):n.add(i),_u(e,i,r)),!1}throw Error(s(435,n.tag))}return _u(e,i,r),su(),!1}if(dr)return null!==(t=zo.current)?(!(65536&t.flags)&&(t.flags|=256),t.flags|=65536,t.lanes=r,i!==fr&&Mr(Gi(e=Error(s(422),{cause:i}),n))):(i!==fr&&Mr(Gi(t=Error(s(423),{cause:i}),n)),(e=e.current.alternate).flags|=65536,r&=-r,e.lanes|=r,i=Gi(i,n),xo(e,r=ka(e.stateNode,i,r)),4!==Lc&&(Lc=2)),!1;var o=Error(s(520),{cause:i});if(o=Gi(o,n),null===kc?kc=[o]:kc.push(o),4!==Lc&&(Lc=2),null===t)return!0;i=Gi(i,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=r&-r,n.lanes|=e,xo(n,e=ka(n.stateNode,i,e)),!1;case 1:if(t=n.type,o=n.stateNode,!(128&n.flags||"function"!=typeof t.getDerivedStateFromError&&(null===o||"function"!=typeof o.componentDidCatch||null!==Oc&&Oc.has(o))))return n.flags|=65536,r&=-r,n.lanes|=r,Da(r=Aa(r),e,n,i),xo(n,r),!1}n=n.return}while(null!==n);return!1}(e,r,t,n,mc))return Lc=1,Ca(e,Gi(n,e.current)),void(gc=null)}catch(t){if(null!==r)throw gc=r,t;return Lc=1,Ca(e,Gi(n,e.current)),void(gc=null)}32768&t.flags?(dr||1===i?e=!0:vc||536870912&mc?e=!1:(bc=e=!0,(2===i||9===i||3===i||6===i)&&(null!==(i=zo.current)&&13===i.tag&&(i.flags|=16384))),fu(t,e)):pu(t)}function pu(e){var t=e;do{if(32768&t.flags)return void fu(t,bc);e=t.return;var n=pl(t.alternate,t,xc);if(null!==n)return void(gc=n);if(null!==(t=t.sibling))return void(gc=t);gc=t=e}while(null!==t);0===Lc&&(Lc=5)}function fu(e,t){do{var n=fl(e.alternate,e);if(null!==n)return n.flags&=32767,void(gc=n);if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling))return void(gc=e);gc=e=n}while(null!==e);Lc=6,gc=null}function gu(e,t,n,i,r,o,a,l,c){e.cancelPendingCommit=null;do{vu()}while(0!==$c);if(6&pc)throw Error(s(327));if(null!==t){if(t===e.current)throw Error(s(177));if(o=t.lanes|t.childLanes,function(e,t,n,i,r,o){var s=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var a=e.entanglements,l=e.expirationTimes,c=e.hiddenUpdates;for(n=s&~n;0<n;){var u=31-ve(n),d=1<<u;a[u]=0,l[u]=-1;var h=c[u];if(null!==h)for(c[u]=null,u=0;u<h.length;u++){var p=h[u];null!==p&&(p.lane&=-536870913)}n&=~d}0!==i&&ze(e,i,0),0!==o&&0===r&&0!==e.tag&&(e.suspendedLanes|=o&~(s&~t))}(e,n,o|=ki,a,l,c),e===fc&&(gc=fc=null,mc=0),Pc=t,Rc=e,Uc=n,Fc=o,Yc=r,Qc=i,10256&t.subtreeFlags||10256&t.flags?(e.callbackNode=null,e.callbackPriority=0,re(he,function(){return Mu(),null})):(e.callbackNode=null,e.callbackPriority=0),i=!!(13878&t.flags),13878&t.subtreeFlags||i){i=E.T,E.T=null,r=I.p,I.p=2,a=pc,pc|=4;try{!function(e,t){if(e=e.containerInfo,fd=bh,ri(e=ii(e))){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var i=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(i&&0!==i.rangeCount){n=i.anchorNode;var r=i.anchorOffset,o=i.focusNode;i=i.focusOffset;try{n.nodeType,o.nodeType}catch(e){n=null;break e}var a=0,l=-1,c=-1,u=0,d=0,h=e,p=null;t:for(;;){for(var f;h!==n||0!==r&&3!==h.nodeType||(l=a+r),h!==o||0!==i&&3!==h.nodeType||(c=a+i),3===h.nodeType&&(a+=h.nodeValue.length),null!==(f=h.firstChild);)p=h,h=f;for(;;){if(h===e)break t;if(p===n&&++u===r&&(l=a),p===o&&++d===i&&(c=a),null!==(f=h.nextSibling))break;p=(h=p).parentNode}h=f}n=-1===l||-1===c?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(gd={focusedElem:e,selectionRange:n},bh=!1,zl=t;null!==zl;)if(e=(t=zl).child,1028&t.subtreeFlags&&null!==e)e.return=t,zl=e;else for(;null!==zl;){switch(o=(t=zl).alternate,e=t.flags,t.tag){case 0:if(4&e&&null!==(e=null!==(e=t.updateQueue)?e.events:null))for(n=0;n<e.length;n++)(r=e[n]).ref.impl=r.nextImpl;break;case 11:case 15:case 5:case 26:case 27:case 6:case 4:case 17:break;case 1:if(1024&e&&null!==o){e=void 0,n=t,r=o.memoizedProps,o=o.memoizedState,i=n.stateNode;try{var g=La(n.type,r);e=i.getSnapshotBeforeUpdate(g,o),i.__reactInternalSnapshotBeforeUpdate=e}catch(e){Lu(n,n.return,e)}}break;case 3:if(1024&e)if(9===(n=(e=t.stateNode.containerInfo).nodeType))kd(e);else if(1===n)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":kd(e);break;default:e.textContent=""}break;default:if(1024&e)throw Error(s(163))}if(null!==(e=t.sibling)){e.return=t.return,zl=e;break}zl=t.return}}(e,t)}finally{pc=a,I.p=r,E.T=i}}$c=1,mu(),yu(),wu()}}function mu(){if(1===$c){$c=0;var e=Rc,t=Pc,n=!!(13878&t.flags);if(13878&t.subtreeFlags||n){n=E.T,E.T=null;var i=I.p;I.p=2;var r=pc;pc|=4;try{Bl(t,e);var o=gd,s=ii(e.containerInfo),a=o.focusedElem,l=o.selectionRange;if(s!==a&&a&&a.ownerDocument&&ni(a.ownerDocument.documentElement,a)){if(null!==l&&ri(a)){var c=l.start,u=l.end;if(void 0===u&&(u=c),"selectionStart"in a)a.selectionStart=c,a.selectionEnd=Math.min(u,a.value.length);else{var d=a.ownerDocument||document,h=d&&d.defaultView||window;if(h.getSelection){var p=h.getSelection(),f=a.textContent.length,g=Math.min(l.start,f),m=void 0===l.end?g:Math.min(l.end,f);!p.extend&&g>m&&(s=m,m=g,g=s);var y=ti(a,g),w=ti(a,m);if(y&&w&&(1!==p.rangeCount||p.anchorNode!==y.node||p.anchorOffset!==y.offset||p.focusNode!==w.node||p.focusOffset!==w.offset)){var b=d.createRange();b.setStart(y.node,y.offset),p.removeAllRanges(),g>m?(p.addRange(b),p.extend(w.node,w.offset)):(b.setEnd(w.node,w.offset),p.addRange(b))}}}}for(d=[],p=a;p=p.parentNode;)1===p.nodeType&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof a.focus&&a.focus(),a=0;a<d.length;a++){var v=d[a];v.element.scrollLeft=v.left,v.element.scrollTop=v.top}}bh=!!fd,gd=fd=null}finally{pc=r,I.p=i,E.T=n}}e.current=t,$c=2}}function yu(){if(2===$c){$c=0;var e=Rc,t=Pc,n=!!(8772&t.flags);if(8772&t.subtreeFlags||n){n=E.T,E.T=null;var i=I.p;I.p=2;var r=pc;pc|=4;try{El(e,t.alternate,t)}finally{pc=r,I.p=i,E.T=n}}$c=3}}function wu(){if(4===$c||3===$c){$c=0,ae();var e=Rc,t=Pc,n=Uc,i=Qc;10256&t.subtreeFlags||10256&t.flags?$c=5:($c=0,Pc=Rc=null,bu(e,e.pendingLanes));var r=e.pendingLanes;if(0===r&&(Oc=null),$e(n),t=t.stateNode,we&&"function"==typeof we.onCommitFiberRoot)try{we.onCommitFiberRoot(ye,t,void 0,!(128&~t.current.flags))}catch(e){}if(null!==i){t=E.T,r=I.p,I.p=2,E.T=null;try{for(var o=e.onRecoverableError,s=0;s<i.length;s++){var a=i[s];o(a.value,{componentStack:a.stack})}}finally{E.T=t,I.p=r}}3&Uc&&vu(),Iu(e),r=e.pendingLanes,261930&n&&42&r?e===Bc?Wc++:(Wc=0,Bc=e):Wc=0,Ou(0,!1)}}function bu(e,t){0===(e.pooledCacheLanes&=t)&&(null!=(t=e.pooledCache)&&(e.pooledCache=null,Ur(t)))}function vu(){return mu(),yu(),wu(),Mu()}function Mu(){if(5!==$c)return!1;var e=Rc,t=Fc;Fc=0;var n=$e(Uc),i=E.T,r=I.p;try{I.p=32>n?32:n,E.T=null,n=Yc,Yc=null;var o=Rc,a=Uc;if($c=0,Pc=Rc=null,Uc=0,6&pc)throw Error(s(331));var l=pc;if(pc|=4,lc(o.current),ec(o,o.current,a,n),pc=l,Ou(0,!1),we&&"function"==typeof we.onPostCommitFiberRoot)try{we.onPostCommitFiberRoot(ye,o)}catch(e){}return!0}finally{I.p=r,E.T=i,bu(e,t)}}function xu(e,t,n){t=Gi(n,t),null!==(e=vo(e,t=ka(e.stateNode,t,2),2))&&(je(e,2),Iu(e))}function Lu(e,t,n){if(3===e.tag)xu(e,e,n);else for(;null!==t;){if(3===t.tag){xu(t,e,n);break}if(1===t.tag){var i=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof i.componentDidCatch&&(null===Oc||!Oc.has(i))){e=Gi(n,e),null!==(i=vo(t,n=Aa(2),2))&&(Da(n,i,t,e),je(i,2),Iu(i));break}}t=t.return}}function _u(e,t,n){var i=e.pingCache;if(null===i){i=e.pingCache=new hc;var r=new Set;i.set(t,r)}else void 0===(r=i.get(t))&&(r=new Set,i.set(t,r));r.has(n)||(Mc=!0,r.add(n),e=Nu.bind(null,e,t,n),t.then(e,e))}function Nu(e,t,n){var i=e.pingCache;null!==i&&i.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,fc===e&&(mc&n)===n&&(4===Lc||3===Lc&&(62914560&mc)===mc&&300>le()-jc?!(2&pc)&&tu(e,0):Sc|=n,Tc===mc&&(Tc=0)),Iu(e)}function Su(e,t){0===t&&(t=Ae()),null!==(e=zi(e,t))&&(je(e,t),Iu(e))}function Cu(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Su(e,n)}function Tu(e,t){var n=0;switch(e.tag){case 31:case 13:var i=e.stateNode,r=e.memoizedState;null!==r&&(n=r.retryLane);break;case 19:i=e.stateNode;break;case 22:i=e.stateNode._retryCache;break;default:throw Error(s(314))}null!==i&&i.delete(t),Su(e,n)}var ku=null,Au=null,Du=!1,ju=!1,zu=!1,Eu=0;function Iu(e){e!==Au&&null===e.next&&(null===Au?ku=Au=e:Au=Au.next=e),ju=!0,Du||(Du=!0,_d(function(){6&pc?re(ue,$u):Ru()}))}function Ou(e,t){if(!zu&&ju){zu=!0;do{for(var n=!1,i=ku;null!==i;){if(!t)if(0!==e){var r=i.pendingLanes;if(0===r)var o=0;else{var s=i.suspendedLanes,a=i.pingedLanes;o=(1<<31-ve(42|e)+1)-1,o=201326741&(o&=r&~(s&~a))?201326741&o|1:o?2|o:0}0!==o&&(n=!0,Fu(i,o))}else o=mc,!(3&(o=Ce(i,i===fc?o:0,null!==i.cancelPendingCommit||-1!==i.timeoutHandle)))||Te(i,o)||(n=!0,Fu(i,o));i=i.next}}while(n);zu=!1}}function $u(){Ru()}function Ru(){ju=Du=!1;var e=0;0!==Eu&&function(){var e=window.event;if(e&&"popstate"===e.type)return e!==vd&&(vd=e,!0);return vd=null,!1}()&&(e=Eu);for(var t=le(),n=null,i=ku;null!==i;){var r=i.next,o=Pu(i,t);0===o?(i.next=null,null===n?ku=r:n.next=r,null===r&&(Au=n)):(n=i,(0!==e||3&o)&&(ju=!0)),i=r}0!==$c&&5!==$c||Ou(e,!1),0!==Eu&&(Eu=0)}function Pu(e,t){for(var n=e.suspendedLanes,i=e.pingedLanes,r=e.expirationTimes,o=-62914561&e.pendingLanes;0<o;){var s=31-ve(o),a=1<<s,l=r[s];-1===l?0!==(a&n)&&0===(a&i)||(r[s]=ke(a,t)):l<=t&&(e.expiredLanes|=a),o&=~a}if(n=mc,n=Ce(e,e===(t=fc)?n:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle),i=e.callbackNode,0===n||e===t&&(2===yc||9===yc)||null!==e.cancelPendingCommit)return null!==i&&null!==i&&oe(i),e.callbackNode=null,e.callbackPriority=0;if(!(3&n)||Te(e,n)){if((t=n&-n)===e.callbackPriority)return t;switch(null!==i&&oe(i),$e(n)){case 2:case 8:n=de;break;case 32:default:n=he;break;case 268435456:n=fe}return i=Uu.bind(null,e),n=re(n,i),e.callbackPriority=t,e.callbackNode=n,t}return null!==i&&null!==i&&oe(i),e.callbackPriority=2,e.callbackNode=null,2}function Uu(e,t){if(0!==$c&&5!==$c)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(vu()&&e.callbackNode!==n)return null;var i=mc;return 0===(i=Ce(e,e===fc?i:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle))?null:(Kc(e,i,t),Pu(e,le()),null!=e.callbackNode&&e.callbackNode===n?Uu.bind(null,e):null)}function Fu(e,t){if(vu())return null;Kc(e,t,!0)}function Yu(){if(0===Eu){var e=Qr;0===e&&(e=Le,!(261888&(Le<<=1))&&(Le=256)),Eu=e}return Eu}function Qu(e){return null==e||"symbol"==typeof e||"boolean"==typeof e?null:"function"==typeof e?e:Dt(""+e)}function Wu(e,t){var n=t.ownerDocument.createElement("input");return n.name=t.name,n.value=t.value,e.id&&n.setAttribute("form",e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}for(var Bu=0;Bu<_i.length;Bu++){var Hu=_i[Bu];Ni(Hu.toLowerCase(),"on"+(Hu[0].toUpperCase()+Hu.slice(1)))}Ni(mi,"onAnimationEnd"),Ni(yi,"onAnimationIteration"),Ni(wi,"onAnimationStart"),Ni("dblclick","onDoubleClick"),Ni("focusin","onFocus"),Ni("focusout","onBlur"),Ni(bi,"onTransitionRun"),Ni(vi,"onTransitionStart"),Ni(Mi,"onTransitionCancel"),Ni(xi,"onTransitionEnd"),rt("onMouseEnter",["mouseout","mouseover"]),rt("onMouseLeave",["mouseout","mouseover"]),rt("onPointerEnter",["pointerout","pointerover"]),rt("onPointerLeave",["pointerout","pointerover"]),it("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),it("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),it("onBeforeInput",["compositionend","keypress","textInput","paste"]),it("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),it("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),it("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Vu="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Gu=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Vu));function Ku(e,t){t=!!(4&t);for(var n=0;n<e.length;n++){var i=e[n],r=i.event;i=i.listeners;e:{var o=void 0;if(t)for(var s=i.length-1;0<=s;s--){var a=i[s],l=a.instance,c=a.currentTarget;if(a=a.listener,l!==o&&r.isPropagationStopped())break e;o=a,r.currentTarget=c;try{o(r)}catch(e){Si(e)}r.currentTarget=null,o=l}else for(s=0;s<i.length;s++){if(l=(a=i[s]).instance,c=a.currentTarget,a=a.listener,l!==o&&r.isPropagationStopped())break e;o=a,r.currentTarget=c;try{o(r)}catch(e){Si(e)}r.currentTarget=null,o=l}}}}function qu(e,t){var n=t[We];void 0===n&&(n=t[We]=new Set);var i=e+"__bubble";n.has(i)||(ed(t,e,2,!1),n.add(i))}function Zu(e,t,n){var i=0;t&&(i|=4),ed(n,e,i,t)}var Xu="_reactListening"+Math.random().toString(36).slice(2);function Ju(e){if(!e[Xu]){e[Xu]=!0,tt.forEach(function(t){"selectionchange"!==t&&(Gu.has(t)||Zu(t,!1,e),Zu(t,!0,e))});var t=9===e.nodeType?e:e.ownerDocument;null===t||t[Xu]||(t[Xu]=!0,Zu("selectionchange",!1,t))}}function ed(e,t,n,i){switch(Sh(t)){case 2:var r=vh;break;case 8:r=Mh;break;default:r=xh}n=r.bind(null,t,n,e),r=void 0,!Yt||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(r=!0),i?void 0!==r?e.addEventListener(t,n,{capture:!0,passive:r}):e.addEventListener(t,n,!0):void 0!==r?e.addEventListener(t,n,{passive:r}):e.addEventListener(t,n,!1)}function td(e,t,n,i,r){var o=i;if(!(1&t||2&t||null===i))e:for(;;){if(null===i)return;var s=i.tag;if(3===s||4===s){var a=i.stateNode.containerInfo;if(a===r)break;if(4===s)for(s=i.return;null!==s;){var c=s.tag;if((3===c||4===c)&&s.stateNode.containerInfo===r)return;s=s.return}for(;null!==a;){if(null===(s=qe(a)))return;if(5===(c=s.tag)||6===c||26===c||27===c){i=o=s;continue e}a=a.parentNode}}i=i.return}Pt(function(){var i=o,r=Et(n),s=[];e:{var a=Li.get(e);if(void 0!==a){var c=nn,u=e;switch(e){case"keypress":if(0===Gt(n))break e;case"keydown":case"keyup":c=wn;break;case"focusin":u="focus",c=cn;break;case"focusout":u="blur",c=cn;break;case"beforeblur":case"afterblur":c=cn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":c=an;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":c=ln;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":c=vn;break;case mi:case yi:case wi:c=un;break;case xi:c=Mn;break;case"scroll":case"scrollend":c=on;break;case"wheel":c=xn;break;case"copy":case"cut":case"paste":c=dn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":c=bn;break;case"toggle":case"beforetoggle":c=Ln}var d=!!(4&t),h=!d&&("scroll"===e||"scrollend"===e),p=d?null!==a?a+"Capture":null:a;d=[];for(var f,g=i;null!==g;){var m=g;if(f=m.stateNode,5!==(m=m.tag)&&26!==m&&27!==m||null===f||null===p||null!=(m=Ut(g,p))&&d.push(nd(g,m,f)),h)break;g=g.return}0<d.length&&(a=new c(a,u,null,n,r),s.push({event:a,listeners:d}))}}if(!(7&t)){if(c="mouseout"===e||"pointerout"===e,(!(a="mouseover"===e||"pointerover"===e)||n===zt||!(u=n.relatedTarget||n.fromElement)||!qe(u)&&!u[Qe])&&(c||a)&&(a=r.window===r?r:(a=r.ownerDocument)?a.defaultView||a.parentWindow:window,c?(c=i,null!==(u=(u=n.relatedTarget||n.toElement)?qe(u):null)&&(h=l(u),d=u.tag,u!==h||5!==d&&27!==d&&6!==d)&&(u=null)):(c=null,u=i),c!==u)){if(d=an,m="onMouseLeave",p="onMouseEnter",g="mouse","pointerout"!==e&&"pointerover"!==e||(d=bn,m="onPointerLeave",p="onPointerEnter",g="pointer"),h=null==c?a:Xe(c),f=null==u?a:Xe(u),(a=new d(m,g+"leave",c,n,r)).target=h,a.relatedTarget=f,m=null,qe(r)===i&&((d=new d(p,g+"enter",u,n,r)).target=f,d.relatedTarget=h,m=d),h=m,c&&u)e:{for(d=rd,g=u,f=0,m=p=c;m;m=d(m))f++;m=0;for(var y=g;y;y=d(y))m++;for(;0<f-m;)p=d(p),f--;for(;0<m-f;)g=d(g),m--;for(;f--;){if(p===g||null!==g&&p===g.alternate){d=p;break e}p=d(p),g=d(g)}d=null}else d=null;null!==c&&od(s,a,c,d,!1),null!==u&&null!==h&&od(s,h,u,d,!0)}if("select"===(c=(a=i?Xe(i):window).nodeName&&a.nodeName.toLowerCase())||"input"===c&&"file"===a.type)var w=Fn;else if(In(a))if(Yn)w=Zn;else{w=Kn;var b=Gn}else!(c=a.nodeName)||"input"!==c.toLowerCase()||"checkbox"!==a.type&&"radio"!==a.type?i&&Tt(i.elementType)&&(w=Fn):w=qn;switch(w&&(w=w(e,i))?On(s,w,n,r):(b&&b(e,a,i),"focusout"===e&&i&&"number"===a.type&&null!=i.memoizedProps.value&&vt(a,"number",a.value)),b=i?Xe(i):window,e){case"focusin":(In(b)||"true"===b.contentEditable)&&(si=b,ai=i,li=null);break;case"focusout":li=ai=si=null;break;case"mousedown":ci=!0;break;case"contextmenu":case"mouseup":case"dragend":ci=!1,ui(s,n,r);break;case"selectionchange":if(oi)break;case"keydown":case"keyup":ui(s,n,r)}var v;if(Nn)e:{switch(e){case"compositionstart":var M="onCompositionStart";break e;case"compositionend":M="onCompositionEnd";break e;case"compositionupdate":M="onCompositionUpdate";break e}M=void 0}else zn?Dn(e,n)&&(M="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(M="onCompositionStart");M&&(Tn&&"ko"!==n.locale&&(zn||"onCompositionStart"!==M?"onCompositionEnd"===M&&zn&&(v=Vt()):(Bt="value"in(Wt=r)?Wt.value:Wt.textContent,zn=!0)),0<(b=id(i,M)).length&&(M=new hn(M,e,null,n,r),s.push({event:M,listeners:b}),v?M.data=v:null!==(v=jn(n))&&(M.data=v))),(v=Cn?function(e,t){switch(e){case"compositionend":return jn(t);case"keypress":return 32!==t.which?null:(An=!0,kn);case"textInput":return(e=t.data)===kn&&An?null:e;default:return null}}(e,n):function(e,t){if(zn)return"compositionend"===e||!Nn&&Dn(e,t)?(e=Vt(),Ht=Bt=Wt=null,zn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Tn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(M=id(i,"onBeforeInput")).length&&(b=new hn("onBeforeInput","beforeinput",null,n,r),s.push({event:b,listeners:M}),b.data=v)),function(e,t,n,i,r){if("submit"===t&&n&&n.stateNode===r){var o=Qu((r[Ye]||null).action),s=i.submitter;s&&null!==(t=(t=s[Ye]||null)?Qu(t.formAction):s.getAttribute("formAction"))&&(o=t,s=null);var a=new nn("action","action",null,i,r);e.push({event:a,listeners:[{instance:null,listener:function(){if(i.defaultPrevented){if(0!==Eu){var e=s?Wu(r,s):new FormData(r);ta(n,{pending:!0,data:e,method:r.method,action:o},null,e)}}else"function"==typeof o&&(a.preventDefault(),e=s?Wu(r,s):new FormData(r),ta(n,{pending:!0,data:e,method:r.method,action:o},o,e))},currentTarget:r}]})}}(s,e,i,n,r)}Ku(s,t)})}function nd(e,t,n){return{instance:e,listener:t,currentTarget:n}}function id(e,t){for(var n=t+"Capture",i=[];null!==e;){var r=e,o=r.stateNode;if(5!==(r=r.tag)&&26!==r&&27!==r||null===o||(null!=(r=Ut(e,n))&&i.unshift(nd(e,r,o)),null!=(r=Ut(e,t))&&i.push(nd(e,r,o))),3===e.tag)return i;e=e.return}return[]}function rd(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag&&27!==e.tag);return e||null}function od(e,t,n,i,r){for(var o=t._reactName,s=[];null!==n&&n!==i;){var a=n,l=a.alternate,c=a.stateNode;if(a=a.tag,null!==l&&l===i)break;5!==a&&26!==a&&27!==a||null===c||(l=c,r?null!=(c=Ut(n,o))&&s.unshift(nd(n,c,l)):r||null!=(c=Ut(n,o))&&s.push(nd(n,c,l))),n=n.return}0!==s.length&&e.push({event:t,listeners:s})}var sd=/\r\n?/g,ad=/\u0000|\uFFFD/g;function ld(e){return("string"==typeof e?e:""+e).replace(sd,"\n").replace(ad,"")}function cd(e,t){return t=ld(t),ld(e)===t}function ud(e,t,n,i,r,o){switch(n){case"children":"string"==typeof i?"body"===t||"textarea"===t&&""===i||_t(e,i):("number"==typeof i||"bigint"==typeof i)&&"body"!==t&&_t(e,""+i);break;case"className":ct(e,"class",i);break;case"tabIndex":ct(e,"tabindex",i);break;case"dir":case"role":case"viewBox":case"width":case"height":ct(e,n,i);break;case"style":Ct(e,i,o);break;case"data":if("object"!==t){ct(e,"data",i);break}case"src":case"href":if(""===i&&("a"!==t||"href"!==n)){e.removeAttribute(n);break}if(null==i||"function"==typeof i||"symbol"==typeof i||"boolean"==typeof i){e.removeAttribute(n);break}i=Dt(""+i),e.setAttribute(n,i);break;case"action":case"formAction":if("function"==typeof i){e.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}if("function"==typeof o&&("formAction"===n?("input"!==t&&ud(e,t,"name",r.name,r,null),ud(e,t,"formEncType",r.formEncType,r,null),ud(e,t,"formMethod",r.formMethod,r,null),ud(e,t,"formTarget",r.formTarget,r,null)):(ud(e,t,"encType",r.encType,r,null),ud(e,t,"method",r.method,r,null),ud(e,t,"target",r.target,r,null))),null==i||"symbol"==typeof i||"boolean"==typeof i){e.removeAttribute(n);break}i=Dt(""+i),e.setAttribute(n,i);break;case"onClick":null!=i&&(e.onclick=jt);break;case"onScroll":null!=i&&qu("scroll",e);break;case"onScrollEnd":null!=i&&qu("scrollend",e);break;case"dangerouslySetInnerHTML":if(null!=i){if("object"!=typeof i||!("__html"in i))throw Error(s(61));if(null!=(n=i.__html)){if(null!=r.children)throw Error(s(60));e.innerHTML=n}}break;case"multiple":e.multiple=i&&"function"!=typeof i&&"symbol"!=typeof i;break;case"muted":e.muted=i&&"function"!=typeof i&&"symbol"!=typeof i;break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":case"autoFocus":break;case"xlinkHref":if(null==i||"function"==typeof i||"boolean"==typeof i||"symbol"==typeof i){e.removeAttribute("xlink:href");break}n=Dt(""+i),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":null!=i&&"function"!=typeof i&&"symbol"!=typeof i?e.setAttribute(n,""+i):e.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":i&&"function"!=typeof i&&"symbol"!=typeof i?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":!0===i?e.setAttribute(n,""):!1!==i&&null!=i&&"function"!=typeof i&&"symbol"!=typeof i?e.setAttribute(n,i):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":null!=i&&"function"!=typeof i&&"symbol"!=typeof i&&!isNaN(i)&&1<=i?e.setAttribute(n,i):e.removeAttribute(n);break;case"rowSpan":case"start":null==i||"function"==typeof i||"symbol"==typeof i||isNaN(i)?e.removeAttribute(n):e.setAttribute(n,i);break;case"popover":qu("beforetoggle",e),qu("toggle",e),lt(e,"popover",i);break;case"xlinkActuate":ut(e,"http://www.w3.org/1999/xlink","xlink:actuate",i);break;case"xlinkArcrole":ut(e,"http://www.w3.org/1999/xlink","xlink:arcrole",i);break;case"xlinkRole":ut(e,"http://www.w3.org/1999/xlink","xlink:role",i);break;case"xlinkShow":ut(e,"http://www.w3.org/1999/xlink","xlink:show",i);break;case"xlinkTitle":ut(e,"http://www.w3.org/1999/xlink","xlink:title",i);break;case"xlinkType":ut(e,"http://www.w3.org/1999/xlink","xlink:type",i);break;case"xmlBase":ut(e,"http://www.w3.org/XML/1998/namespace","xml:base",i);break;case"xmlLang":ut(e,"http://www.w3.org/XML/1998/namespace","xml:lang",i);break;case"xmlSpace":ut(e,"http://www.w3.org/XML/1998/namespace","xml:space",i);break;case"is":lt(e,"is",i);break;case"innerText":case"textContent":break;default:(!(2<n.length)||"o"!==n[0]&&"O"!==n[0]||"n"!==n[1]&&"N"!==n[1])&&lt(e,n=kt.get(n)||n,i)}}function dd(e,t,n,i,r,o){switch(n){case"style":Ct(e,i,o);break;case"dangerouslySetInnerHTML":if(null!=i){if("object"!=typeof i||!("__html"in i))throw Error(s(61));if(null!=(n=i.__html)){if(null!=r.children)throw Error(s(60));e.innerHTML=n}}break;case"children":"string"==typeof i?_t(e,i):("number"==typeof i||"bigint"==typeof i)&&_t(e,""+i);break;case"onScroll":null!=i&&qu("scroll",e);break;case"onScrollEnd":null!=i&&qu("scrollend",e);break;case"onClick":null!=i&&(e.onclick=jt);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":case"innerText":case"textContent":break;default:nt.hasOwnProperty(n)||("o"!==n[0]||"n"!==n[1]||(r=n.endsWith("Capture"),t=n.slice(2,r?n.length-7:void 0),"function"==typeof(o=null!=(o=e[Ye]||null)?o[n]:null)&&e.removeEventListener(t,o,r),"function"!=typeof i)?n in e?e[n]=i:!0===i?e.setAttribute(n,""):lt(e,n,i):("function"!=typeof o&&null!==o&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,i,r)))}}function hd(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":qu("error",e),qu("load",e);var i,r=!1,o=!1;for(i in n)if(n.hasOwnProperty(i)){var a=n[i];if(null!=a)switch(i){case"src":r=!0;break;case"srcSet":o=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(s(137,t));default:ud(e,t,i,a,n,null)}}return o&&ud(e,t,"srcSet",n.srcSet,n,null),void(r&&ud(e,t,"src",n.src,n,null));case"input":qu("invalid",e);var l=i=a=o=null,c=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(null!=d)switch(r){case"name":o=d;break;case"type":a=d;break;case"checked":c=d;break;case"defaultChecked":u=d;break;case"value":i=d;break;case"defaultValue":l=d;break;case"children":case"dangerouslySetInnerHTML":if(null!=d)throw Error(s(137,t));break;default:ud(e,t,r,d,n,null)}}return void bt(e,i,l,c,u,a,o,!1);case"select":for(o in qu("invalid",e),r=a=i=null,n)if(n.hasOwnProperty(o)&&null!=(l=n[o]))switch(o){case"value":i=l;break;case"defaultValue":a=l;break;case"multiple":r=l;default:ud(e,t,o,l,n,null)}return t=i,n=a,e.multiple=!!r,void(null!=t?Mt(e,!!r,t,!1):null!=n&&Mt(e,!!r,n,!0));case"textarea":for(a in qu("invalid",e),i=o=r=null,n)if(n.hasOwnProperty(a)&&null!=(l=n[a]))switch(a){case"value":r=l;break;case"defaultValue":o=l;break;case"children":i=l;break;case"dangerouslySetInnerHTML":if(null!=l)throw Error(s(91));break;default:ud(e,t,a,l,n,null)}return void Lt(e,r,o,i);case"option":for(c in n)if(n.hasOwnProperty(c)&&null!=(r=n[c]))if("selected"===c)e.selected=r&&"function"!=typeof r&&"symbol"!=typeof r;else ud(e,t,c,r,n,null);return;case"dialog":qu("beforetoggle",e),qu("toggle",e),qu("cancel",e),qu("close",e);break;case"iframe":case"object":qu("load",e);break;case"video":case"audio":for(r=0;r<Vu.length;r++)qu(Vu[r],e);break;case"image":qu("error",e),qu("load",e);break;case"details":qu("toggle",e);break;case"embed":case"source":case"link":qu("error",e),qu("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(u in n)if(n.hasOwnProperty(u)&&null!=(r=n[u]))switch(u){case"children":case"dangerouslySetInnerHTML":throw Error(s(137,t));default:ud(e,t,u,r,n,null)}return;default:if(Tt(t)){for(d in n)n.hasOwnProperty(d)&&(void 0!==(r=n[d])&&dd(e,t,d,r,n,void 0));return}}for(l in n)n.hasOwnProperty(l)&&(null!=(r=n[l])&&ud(e,t,l,r,n,null))}function pd(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}var fd=null,gd=null;function md(e){return 9===e.nodeType?e:e.ownerDocument}function yd(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function wd(e,t){if(0===e)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return 1===e&&"foreignObject"===t?0:e}function bd(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"bigint"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var vd=null;var Md="function"==typeof setTimeout?setTimeout:void 0,xd="function"==typeof clearTimeout?clearTimeout:void 0,Ld="function"==typeof Promise?Promise:void 0,_d="function"==typeof queueMicrotask?queueMicrotask:void 0!==Ld?function(e){return Ld.resolve(null).then(e).catch(Nd)}:Md;function Nd(e){setTimeout(function(){throw e})}function Sd(e){return"head"===e}function Cd(e,t){var n=t,i=0;do{var r=n.nextSibling;if(e.removeChild(n),r&&8===r.nodeType)if("/$"===(n=r.data)||"/&"===n){if(0===i)return e.removeChild(r),void Wh(t);i--}else if("$"===n||"$?"===n||"$~"===n||"$!"===n||"&"===n)i++;else if("html"===n)Rd(e.ownerDocument.documentElement);else if("head"===n){Rd(n=e.ownerDocument.head);for(var o=n.firstChild;o;){var s=o.nextSibling,a=o.nodeName;o[Ge]||"SCRIPT"===a||"STYLE"===a||"LINK"===a&&"stylesheet"===o.rel.toLowerCase()||n.removeChild(o),o=s}}else"body"===n&&Rd(e.ownerDocument.body);n=r}while(n);Wh(t)}function Td(e,t){var n=e;e=0;do{var i=n.nextSibling;if(1===n.nodeType?t?(n._stashedDisplay=n.style.display,n.style.display="none"):(n.style.display=n._stashedDisplay||"",""===n.getAttribute("style")&&n.removeAttribute("style")):3===n.nodeType&&(t?(n._stashedText=n.nodeValue,n.nodeValue=""):n.nodeValue=n._stashedText||""),i&&8===i.nodeType)if("/$"===(n=i.data)){if(0===e)break;e--}else"$"!==n&&"$?"!==n&&"$~"!==n&&"$!"!==n||e++;n=i}while(n)}function kd(e){var t=e.firstChild;for(t&&10===t.nodeType&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case"HTML":case"HEAD":case"BODY":kd(n),Ke(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if("stylesheet"===n.rel.toLowerCase())continue}e.removeChild(n)}}function Ad(e,t){for(;8!==e.nodeType;){if((1!==e.nodeType||"INPUT"!==e.nodeName||"hidden"!==e.type)&&!t)return null;if(null===(e=zd(e.nextSibling)))return null}return e}function Dd(e){return"$?"===e.data||"$~"===e.data}function jd(e){return"$!"===e.data||"$?"===e.data&&"loading"!==e.ownerDocument.readyState}function zd(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t||"$~"===t||"&"===t||"F!"===t||"F"===t)break;if("/$"===t||"/&"===t)return null}}return e}var Ed=null;function Id(e){e=e.nextSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n||"/&"===n){if(0===t)return zd(e.nextSibling);t--}else"$"!==n&&"$!"!==n&&"$?"!==n&&"$~"!==n&&"&"!==n||t++}e=e.nextSibling}return null}function Od(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n||"$~"===n||"&"===n){if(0===t)return e;t--}else"/$"!==n&&"/&"!==n||t++}e=e.previousSibling}return null}function $d(e,t,n){switch(t=md(n),e){case"html":if(!(e=t.documentElement))throw Error(s(452));return e;case"head":if(!(e=t.head))throw Error(s(453));return e;case"body":if(!(e=t.body))throw Error(s(454));return e;default:throw Error(s(451))}}function Rd(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);Ke(e)}var Pd=new Map,Ud=new Set;function Fd(e){return"function"==typeof e.getRootNode?e.getRootNode():9===e.nodeType?e:e.ownerDocument}var Yd=I.d;I.d={f:function(){var e=Yd.f(),t=Jc();return e||t},r:function(e){var t=Ze(e);null!==t&&5===t.tag&&"form"===t.type?ia(t):Yd.r(e)},D:function(e){Yd.D(e),Wd("dns-prefetch",e,null)},C:function(e,t){Yd.C(e,t),Wd("preconnect",e,t)},L:function(e,t,n){Yd.L(e,t,n);var i=Qd;if(i&&e&&t){var r='link[rel="preload"][as="'+yt(t)+'"]';"image"===t&&n&&n.imageSrcSet?(r+='[imagesrcset="'+yt(n.imageSrcSet)+'"]',"string"==typeof n.imageSizes&&(r+='[imagesizes="'+yt(n.imageSizes)+'"]')):r+='[href="'+yt(e)+'"]';var o=r;switch(t){case"style":o=Hd(e);break;case"script":o=Kd(e)}Pd.has(o)||(e=p({rel:"preload",href:"image"===t&&n&&n.imageSrcSet?void 0:e,as:t},n),Pd.set(o,e),null!==i.querySelector(r)||"style"===t&&i.querySelector(Vd(o))||"script"===t&&i.querySelector(qd(o))||(hd(t=i.createElement("link"),"link",e),et(t),i.head.appendChild(t)))}},m:function(e,t){Yd.m(e,t);var n=Qd;if(n&&e){var i=t&&"string"==typeof t.as?t.as:"script",r='link[rel="modulepreload"][as="'+yt(i)+'"][href="'+yt(e)+'"]',o=r;switch(i){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":o=Kd(e)}if(!Pd.has(o)&&(e=p({rel:"modulepreload",href:e},t),Pd.set(o,e),null===n.querySelector(r))){switch(i){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(qd(o)))return}hd(i=n.createElement("link"),"link",e),et(i),n.head.appendChild(i)}}},X:function(e,t){Yd.X(e,t);var n=Qd;if(n&&e){var i=Je(n).hoistableScripts,r=Kd(e),o=i.get(r);o||((o=n.querySelector(qd(r)))||(e=p({src:e,async:!0},t),(t=Pd.get(r))&&eh(e,t),et(o=n.createElement("script")),hd(o,"link",e),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},i.set(r,o))}},S:function(e,t,n){Yd.S(e,t,n);var i=Qd;if(i&&e){var r=Je(i).hoistableStyles,o=Hd(e);t=t||"default";var s=r.get(o);if(!s){var a={loading:0,preload:null};if(s=i.querySelector(Vd(o)))a.loading=5;else{e=p({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Pd.get(o))&&Jd(e,n);var l=s=i.createElement("link");et(l),hd(l,"link",e),l._p=new Promise(function(e,t){l.onload=e,l.onerror=t}),l.addEventListener("load",function(){a.loading|=1}),l.addEventListener("error",function(){a.loading|=2}),a.loading|=4,Xd(s,t,i)}s={type:"stylesheet",instance:s,count:1,state:a},r.set(o,s)}}},M:function(e,t){Yd.M(e,t);var n=Qd;if(n&&e){var i=Je(n).hoistableScripts,r=Kd(e),o=i.get(r);o||((o=n.querySelector(qd(r)))||(e=p({src:e,async:!0,type:"module"},t),(t=Pd.get(r))&&eh(e,t),et(o=n.createElement("script")),hd(o,"link",e),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},i.set(r,o))}}};var Qd="undefined"==typeof document?null:document;function Wd(e,t,n){var i=Qd;if(i&&"string"==typeof t&&t){var r=yt(t);r='link[rel="'+e+'"][href="'+r+'"]',"string"==typeof n&&(r+='[crossorigin="'+n+'"]'),Ud.has(r)||(Ud.add(r),e={rel:e,crossOrigin:n,href:t},null===i.querySelector(r)&&(hd(t=i.createElement("link"),"link",e),et(t),i.head.appendChild(t)))}}function Bd(e,t,n,i){var r,o,a,l,c=(c=H.current)?Fd(c):null;if(!c)throw Error(s(446));switch(e){case"meta":case"title":return null;case"style":return"string"==typeof n.precedence&&"string"==typeof n.href?(t=Hd(n.href),(i=(n=Je(c).hoistableStyles).get(t))||(i={type:"style",instance:null,count:0,state:null},n.set(t,i)),i):{type:"void",instance:null,count:0,state:null};case"link":if("stylesheet"===n.rel&&"string"==typeof n.href&&"string"==typeof n.precedence){e=Hd(n.href);var u=Je(c).hoistableStyles,d=u.get(e);if(d||(c=c.ownerDocument||c,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(e,d),(u=c.querySelector(Vd(e)))&&!u._p&&(d.instance=u,d.state.loading=5),Pd.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Pd.set(e,n),u||(r=c,o=e,a=n,l=d.state,r.querySelector('link[rel="preload"][as="style"]['+o+"]")?l.loading=1:(o=r.createElement("link"),l.preload=o,o.addEventListener("load",function(){return l.loading|=1}),o.addEventListener("error",function(){return l.loading|=2}),hd(o,"link",a),et(o),r.head.appendChild(o))))),t&&null===i)throw Error(s(528,""));return d}if(t&&null!==i)throw Error(s(529,""));return null;case"script":return t=n.async,"string"==typeof(n=n.src)&&t&&"function"!=typeof t&&"symbol"!=typeof t?(t=Kd(n),(i=(n=Je(c).hoistableScripts).get(t))||(i={type:"script",instance:null,count:0,state:null},n.set(t,i)),i):{type:"void",instance:null,count:0,state:null};default:throw Error(s(444,e))}}function Hd(e){return'href="'+yt(e)+'"'}function Vd(e){return'link[rel="stylesheet"]['+e+"]"}function Gd(e){return p({},e,{"data-precedence":e.precedence,precedence:null})}function Kd(e){return'[src="'+yt(e)+'"]'}function qd(e){return"script[async]"+e}function Zd(e,t,n){if(t.count++,null===t.instance)switch(t.type){case"style":var i=e.querySelector('style[data-href~="'+yt(n.href)+'"]');if(i)return t.instance=i,et(i),i;var r=p({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return et(i=(e.ownerDocument||e).createElement("style")),hd(i,"style",r),Xd(i,n.precedence,e),t.instance=i;case"stylesheet":r=Hd(n.href);var o=e.querySelector(Vd(r));if(o)return t.state.loading|=4,t.instance=o,et(o),o;i=Gd(n),(r=Pd.get(r))&&Jd(i,r),et(o=(e.ownerDocument||e).createElement("link"));var a=o;return a._p=new Promise(function(e,t){a.onload=e,a.onerror=t}),hd(o,"link",i),t.state.loading|=4,Xd(o,n.precedence,e),t.instance=o;case"script":return o=Kd(n.src),(r=e.querySelector(qd(o)))?(t.instance=r,et(r),r):(i=n,(r=Pd.get(o))&&eh(i=p({},n),r),et(r=(e=e.ownerDocument||e).createElement("script")),hd(r,"link",i),e.head.appendChild(r),t.instance=r);case"void":return null;default:throw Error(s(443,t.type))}else"stylesheet"===t.type&&!(4&t.state.loading)&&(i=t.instance,t.state.loading|=4,Xd(i,n.precedence,e));return t.instance}function Xd(e,t,n){for(var i=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),r=i.length?i[i.length-1]:null,o=r,s=0;s<i.length;s++){var a=i[s];if(a.dataset.precedence===t)o=a;else if(o!==r)break}o?o.parentNode.insertBefore(e,o.nextSibling):(t=9===n.nodeType?n.head:n).insertBefore(e,t.firstChild)}function Jd(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.title&&(e.title=t.title)}function eh(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.integrity&&(e.integrity=t.integrity)}var th=null;function nh(e,t,n){if(null===th){var i=new Map,r=th=new Map;r.set(n,i)}else(i=(r=th).get(n))||(i=new Map,r.set(n,i));if(i.has(e))return i;for(i.set(e,null),n=n.getElementsByTagName(e),r=0;r<n.length;r++){var o=n[r];if(!(o[Ge]||o[Fe]||"link"===e&&"stylesheet"===o.getAttribute("rel"))&&"http://www.w3.org/2000/svg"!==o.namespaceURI){var s=o.getAttribute(t)||"";s=e+s;var a=i.get(s);a?a.push(o):i.set(s,[o])}}return i}function ih(e,t,n){(e=e.ownerDocument||e).head.insertBefore(n,"title"===t?e.querySelector("head > title"):null)}function rh(e){return!!("stylesheet"!==e.type||3&e.state.loading)}var oh=0;function sh(){if(this.count--,0===this.count&&(0===this.imgCount||!this.waitingForImages))if(this.stylesheets)lh(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}var ah=null;function lh(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,ah=new Map,t.forEach(ch,e),ah=null,sh.call(e))}function ch(e,t){if(!(4&t.state.loading)){var n=ah.get(e);if(n)var i=n.get(null);else{n=new Map,ah.set(e,n);for(var r=e.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;o<r.length;o++){var s=r[o];"LINK"!==s.nodeName&&"not all"===s.getAttribute("media")||(n.set(s.dataset.precedence,s),i=s)}i&&n.set(null,i)}s=(r=t.instance).getAttribute("data-precedence"),(o=n.get(s)||i)===i&&n.set(null,r),n.set(s,r),this.count++,i=sh.bind(this),r.addEventListener("load",i),r.addEventListener("error",i),o?o.parentNode.insertBefore(r,o.nextSibling):(e=9===e.nodeType?e.head:e).insertBefore(r,e.firstChild),t.state.loading|=4}}var uh={$$typeof:M,Provider:null,Consumer:null,_currentValue:O,_currentValue2:O,_threadCount:0};function dh(e,t,n,i,r,o,s,a,l){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=De(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=De(0),this.hiddenUpdates=De(null),this.identifierPrefix=i,this.onUncaughtError=r,this.onCaughtError=o,this.onRecoverableError=s,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=l,this.incompleteTransitions=new Map}function hh(e,t,n,i,r,o,s,a,l,c,u,d){return e=new dh(e,t,n,s,l,c,u,d,a),t=1,!0===o&&(t|=24),o=Ri(3,null,null,t),e.current=o,o.stateNode=e,(t=Pr()).refCount++,e.pooledCache=t,t.refCount++,o.memoizedState={element:i,isDehydrated:n,cache:t},yo(o),e}function ph(e){return e?e=Oi:Oi}function fh(e,t,n,i,r,o){r=ph(r),null===i.context?i.context=r:i.pendingContext=r,(i=bo(t)).payload={element:n},null!==(o=void 0===o?null:o)&&(i.callback=o),null!==(n=vo(e,i,t))&&(Gc(n,0,t),Mo(n,e,t))}function gh(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function mh(e,t){gh(e,t),(e=e.alternate)&&gh(e,t)}function yh(e){if(13===e.tag||31===e.tag){var t=zi(e,67108864);null!==t&&Gc(t,0,67108864),mh(e,67108864)}}function wh(e){if(13===e.tag||31===e.tag){var t=Hc(),n=zi(e,t=Oe(t));null!==n&&Gc(n,0,t),mh(e,t)}}var bh=!0;function vh(e,t,n,i){var r=E.T;E.T=null;var o=I.p;try{I.p=2,xh(e,t,n,i)}finally{I.p=o,E.T=r}}function Mh(e,t,n,i){var r=E.T;E.T=null;var o=I.p;try{I.p=8,xh(e,t,n,i)}finally{I.p=o,E.T=r}}function xh(e,t,n,i){if(bh){var r=Lh(i);if(null===r)td(e,t,i,_h,n),Ih(e,i);else if(function(e,t,n,i,r){switch(t){case"focusin":return Th=Oh(Th,e,t,n,i,r),!0;case"dragenter":return kh=Oh(kh,e,t,n,i,r),!0;case"mouseover":return Ah=Oh(Ah,e,t,n,i,r),!0;case"pointerover":var o=r.pointerId;return Dh.set(o,Oh(Dh.get(o)||null,e,t,n,i,r)),!0;case"gotpointercapture":return o=r.pointerId,jh.set(o,Oh(jh.get(o)||null,e,t,n,i,r)),!0}return!1}(r,e,t,n,i))i.stopPropagation();else if(Ih(e,i),4&t&&-1<Eh.indexOf(e)){for(;null!==r;){var o=Ze(r);if(null!==o)switch(o.tag){case 3:if((o=o.stateNode).current.memoizedState.isDehydrated){var s=Se(o.pendingLanes);if(0!==s){var a=o;for(a.pendingLanes|=2,a.entangledLanes|=2;s;){var l=1<<31-ve(s);a.entanglements[1]|=l,s&=~l}Iu(o),!(6&pc)&&(Ec=le()+500,Ou(0,!1))}}break;case 31:case 13:null!==(a=zi(o,2))&&Gc(a,0,2),Jc(),mh(o,2)}if(null===(o=Lh(i))&&td(e,t,i,_h,n),o===r)break;r=o}null!==r&&i.stopPropagation()}else td(e,t,i,null,n)}}function Lh(e){return Nh(e=Et(e))}var _h=null;function Nh(e){if(_h=null,null!==(e=qe(e))){var t=l(e);if(null===t)e=null;else{var n=t.tag;if(13===n){if(null!==(e=c(t)))return e;e=null}else if(31===n){if(null!==(e=u(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return _h=e,null}function Sh(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(ce()){case ue:return 2;case de:return 8;case he:case pe:return 32;case fe:return 268435456;default:return 32}default:return 32}}var Ch=!1,Th=null,kh=null,Ah=null,Dh=new Map,jh=new Map,zh=[],Eh="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function Ih(e,t){switch(e){case"focusin":case"focusout":Th=null;break;case"dragenter":case"dragleave":kh=null;break;case"mouseover":case"mouseout":Ah=null;break;case"pointerover":case"pointerout":Dh.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":jh.delete(t.pointerId)}}function Oh(e,t,n,i,r,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:i,nativeEvent:o,targetContainers:[r]},null!==t&&(null!==(t=Ze(t))&&yh(t)),e):(e.eventSystemFlags|=i,t=e.targetContainers,null!==r&&-1===t.indexOf(r)&&t.push(r),e)}function $h(e){var t=qe(e.target);if(null!==t){var n=l(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=c(n)))return e.blockedOn=t,void Pe(e.priority,function(){wh(n)})}else if(31===t){if(null!==(t=u(n)))return e.blockedOn=t,void Pe(e.priority,function(){wh(n)})}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Rh(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Lh(e.nativeEvent);if(null!==n)return null!==(t=Ze(n))&&yh(t),e.blockedOn=n,!1;var i=new(n=e.nativeEvent).constructor(n.type,n);zt=i,n.target.dispatchEvent(i),zt=null,t.shift()}return!0}function Ph(e,t,n){Rh(e)&&n.delete(t)}function Uh(){Ch=!1,null!==Th&&Rh(Th)&&(Th=null),null!==kh&&Rh(kh)&&(kh=null),null!==Ah&&Rh(Ah)&&(Ah=null),Dh.forEach(Ph),jh.forEach(Ph)}function Fh(e,t){e.blockedOn===t&&(e.blockedOn=null,Ch||(Ch=!0,i.unstable_scheduleCallback(i.unstable_NormalPriority,Uh)))}var Yh=null;function Qh(e){Yh!==e&&(Yh=e,i.unstable_scheduleCallback(i.unstable_NormalPriority,function(){Yh===e&&(Yh=null);for(var t=0;t<e.length;t+=3){var n=e[t],i=e[t+1],r=e[t+2];if("function"!=typeof i){if(null===Nh(i||n))continue;break}var o=Ze(n);null!==o&&(e.splice(t,3),t-=3,ta(o,{pending:!0,data:r,method:n.method,action:i},i,r))}}))}function Wh(e){function t(t){return Fh(t,e)}null!==Th&&Fh(Th,e),null!==kh&&Fh(kh,e),null!==Ah&&Fh(Ah,e),Dh.forEach(t),jh.forEach(t);for(var n=0;n<zh.length;n++){var i=zh[n];i.blockedOn===e&&(i.blockedOn=null)}for(;0<zh.length&&null===(n=zh[0]).blockedOn;)$h(n),null===n.blockedOn&&zh.shift();if(null!=(n=(e.ownerDocument||e).$$reactFormReplay))for(i=0;i<n.length;i+=3){var r=n[i],o=n[i+1],s=r[Ye]||null;if("function"==typeof o)s||Qh(n);else if(s){var a=null;if(o&&o.hasAttribute("formAction")){if(r=o,s=o[Ye]||null)a=s.formAction;else if(null!==Nh(r))continue}else a=s.action;"function"==typeof a?n[i+1]=a:(n.splice(i,3),i-=3),Qh(n)}}}function Bh(){function e(e){e.canIntercept&&"react-transition"===e.info&&e.intercept({handler:function(){return new Promise(function(e){return r=e})},focusReset:"manual",scroll:"manual"})}function t(){null!==r&&(r(),r=null),i||setTimeout(n,20)}function n(){if(!i&&!navigation.transition){var e=navigation.currentEntry;e&&null!=e.url&&navigation.navigate(e.url,{state:e.getState(),info:"react-transition",history:"replace"})}}if("object"==typeof navigation){var i=!1,r=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(n,100),function(){i=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),null!==r&&(r(),r=null)}}}function Hh(e){this._internalRoot=e}function Vh(e){this._internalRoot=e}Vh.prototype.render=Hh.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(s(409));fh(t.current,Hc(),e,t,null,null)},Vh.prototype.unmount=Hh.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;fh(e.current,2,null,e,null,null),Jc(),t[Qe]=null}},Vh.prototype.unstable_scheduleHydration=function(e){if(e){var t=Re();e={blockedOn:null,target:e,priority:t};for(var n=0;n<zh.length&&0!==t&&t<zh[n].priority;n++);zh.splice(n,0,e),0===n&&$h(e)}};var Gh=r.version;if("19.2.7"!==Gh)throw Error(s(527,Gh,"19.2.7"));I.findDOMNode=function(e){var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(s(188));throw e=Object.keys(e).join(","),Error(s(268,e))}return e=function(e){var t=e.alternate;if(!t){if(null===(t=l(e)))throw Error(s(188));return t!==e?null:e}for(var n=e,i=t;;){var r=n.return;if(null===r)break;var o=r.alternate;if(null===o){if(null!==(i=r.return)){n=i;continue}break}if(r.child===o.child){for(o=r.child;o;){if(o===n)return d(r),e;if(o===i)return d(r),t;o=o.sibling}throw Error(s(188))}if(n.return!==i.return)n=r,i=o;else{for(var a=!1,c=r.child;c;){if(c===n){a=!0,n=r,i=o;break}if(c===i){a=!0,i=r,n=o;break}c=c.sibling}if(!a){for(c=o.child;c;){if(c===n){a=!0,n=o,i=r;break}if(c===i){a=!0,i=o,n=r;break}c=c.sibling}if(!a)throw Error(s(189))}}if(n.alternate!==i)throw Error(s(190))}if(3!==n.tag)throw Error(s(188));return n.stateNode.current===n?e:t}(t),e=null===(e=null!==e?h(e):null)?null:e.stateNode};var Kh={bundleType:0,version:"19.2.7",rendererPackageName:"react-dom",currentDispatcherRef:E,reconcilerVersion:"19.2.7"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var qh=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!qh.isDisabled&&qh.supportsFiber)try{ye=qh.inject(Kh),we=qh}catch(e){}}t.createRoot=function(e,t){if(!a(e))throw Error(s(299));var n=!1,i="",r=_a,o=Na,l=Sa;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(i=t.identifierPrefix),void 0!==t.onUncaughtError&&(r=t.onUncaughtError),void 0!==t.onCaughtError&&(o=t.onCaughtError),void 0!==t.onRecoverableError&&(l=t.onRecoverableError)),t=hh(e,1,!1,null,0,n,i,null,r,o,l,Bh),e[Qe]=t.current,Ju(e),new Hh(t)}},6221(e,t,n){"use strict";var i=n(96540);function r(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function o(){}var s={d:{f:o,r:function(){throw Error(r(522))},D:o,C:o,L:o,m:o,X:o,S:o,M:o},p:0,findDOMNode:null},a=Symbol.for("react.portal");var l=i.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(e,t){return"font"===e?"":"string"==typeof t?"use-credentials"===t?t:"":void 0}t.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=s,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!t||1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType)throw Error(r(299));return function(e,t,n){var i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:a,key:null==i?null:""+i,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.flushSync=function(e){var t=l.T,n=s.p;try{if(l.T=null,s.p=2,e)return e()}finally{l.T=t,s.p=n,s.d.f()}},t.preconnect=function(e,t){"string"==typeof e&&(t?t="string"==typeof(t=t.crossOrigin)?"use-credentials"===t?t:"":void 0:t=null,s.d.C(e,t))},t.prefetchDNS=function(e){"string"==typeof e&&s.d.D(e)},t.preinit=function(e,t){if("string"==typeof e&&t&&"string"==typeof t.as){var n=t.as,i=c(n,t.crossOrigin),r="string"==typeof t.integrity?t.integrity:void 0,o="string"==typeof t.fetchPriority?t.fetchPriority:void 0;"style"===n?s.d.S(e,"string"==typeof t.precedence?t.precedence:void 0,{crossOrigin:i,integrity:r,fetchPriority:o}):"script"===n&&s.d.X(e,{crossOrigin:i,integrity:r,fetchPriority:o,nonce:"string"==typeof t.nonce?t.nonce:void 0})}},t.preinitModule=function(e,t){if("string"==typeof e)if("object"==typeof t&&null!==t){if(null==t.as||"script"===t.as){var n=c(t.as,t.crossOrigin);s.d.M(e,{crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0})}}else null==t&&s.d.M(e)},t.preload=function(e,t){if("string"==typeof e&&"object"==typeof t&&null!==t&&"string"==typeof t.as){var n=t.as,i=c(n,t.crossOrigin);s.d.L(e,n,{crossOrigin:i,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,type:"string"==typeof t.type?t.type:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0,referrerPolicy:"string"==typeof t.referrerPolicy?t.referrerPolicy:void 0,imageSrcSet:"string"==typeof t.imageSrcSet?t.imageSrcSet:void 0,imageSizes:"string"==typeof t.imageSizes?t.imageSizes:void 0,media:"string"==typeof t.media?t.media:void 0})}},t.preloadModule=function(e,t){if("string"==typeof e)if(t){var n=c(t.as,t.crossOrigin);s.d.m(e,{as:"string"==typeof t.as&&"script"!==t.as?t.as:void 0,crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0})}else s.d.m(e)},t.requestFormReset=function(e){s.d.r(e)},t.unstable_batchedUpdates=function(e,t){return e(t)},t.useFormState=function(e,t,n){return l.H.useFormState(e,t,n)},t.useFormStatus=function(){return l.H.useHostTransitionStatus()},t.version="19.2.7"},5338(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(31247)},40961(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(6221)},29698(e,t){"use strict";var n=Symbol.for("react.transitional.element"),i=Symbol.for("react.fragment");function r(e,t,i){var r=null;if(void 0!==i&&(r=""+i),void 0!==t.key&&(r=""+t.key),"key"in t)for(var o in i={},t)"key"!==o&&(i[o]=t[o]);else i=t;return t=i.ref,{$$typeof:n,type:e,key:r,ref:void 0!==t?t:null,props:i}}t.Fragment=i,t.jsx=r,t.jsxs=r},29869(e,t){"use strict";var n=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),a=Symbol.for("react.consumer"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),f=Symbol.iterator;var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,y={};function w(e,t,n){this.props=e,this.context=t,this.refs=y,this.updater=n||g}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=y,this.updater=n||g}w.prototype.isReactComponent={},w.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},w.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=w.prototype;var M=v.prototype=new b;M.constructor=v,m(M,w.prototype),M.isPureReactComponent=!0;var x=Array.isArray;function L(){}var _={H:null,A:null,T:null,S:null},N=Object.prototype.hasOwnProperty;function S(e,t,i){var r=i.ref;return{$$typeof:n,type:e,key:t,ref:void 0!==r?r:null,props:i}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var T=/\/+/g;function k(e,t){return"object"==typeof e&&null!==e&&null!=e.key?(n=""+e.key,i={"=":"=0",":":"=2"},"$"+n.replace(/[=:]/g,function(e){return i[e]})):t.toString(36);var n,i}function A(e,t,r,o,s){var a=typeof e;"undefined"!==a&&"boolean"!==a||(e=null);var l,c,u=!1;if(null===e)u=!0;else switch(a){case"bigint":case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case n:case i:u=!0;break;case h:return A((u=e._init)(e._payload),t,r,o,s)}}if(u)return s=s(e),u=""===o?"."+k(e,0):o,x(s)?(r="",null!=u&&(r=u.replace(T,"$&/")+"/"),A(s,t,r,"",function(e){return e})):null!=s&&(C(s)&&(l=s,c=r+(null==s.key||e&&e.key===s.key?"":(""+s.key).replace(T,"$&/")+"/")+u,s=S(l.type,c,l.props)),t.push(s)),1;u=0;var d,p=""===o?".":o+":";if(x(e))for(var g=0;g<e.length;g++)u+=A(o=e[g],t,r,a=p+k(o,g),s);else if("function"==typeof(g=null===(d=e)||"object"!=typeof d?null:"function"==typeof(d=f&&d[f]||d["@@iterator"])?d:null))for(e=g.call(e),g=0;!(o=e.next()).done;)u+=A(o=o.value,t,r,a=p+k(o,g++),s);else if("object"===a){if("function"==typeof e.then)return A(function(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch("string"==typeof e.status?e.then(L,L):(e.status="pending",e.then(function(t){"pending"===e.status&&(e.status="fulfilled",e.value=t)},function(t){"pending"===e.status&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}(e),t,r,o,s);throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return u}function D(e,t,n){if(null==e)return e;var i=[],r=0;return A(e,i,"","",function(e){return t.call(n,e,r++)}),i}function j(e){if(-1===e._status){var t=e._result;(t=t()).then(function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)},function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var z="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)},E={map:D,forEach:function(e,t,n){D(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return D(e,function(){t++}),t},toArray:function(e){return D(e,function(e){return e})||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};t.Activity=p,t.Children=E,t.Component=w,t.Fragment=r,t.Profiler=s,t.PureComponent=v,t.StrictMode=o,t.Suspense=u,t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=_,t.__COMPILER_RUNTIME={__proto__:null,c:function(e){return _.H.useMemoCache(e)}},t.cache=function(e){return function(){return e.apply(null,arguments)}},t.cacheSignal=function(){return null},t.cloneElement=function(e,t,n){if(null==e)throw Error("The argument must be a React element, but you passed "+e+".");var i=m({},e.props),r=e.key;if(null!=t)for(o in void 0!==t.key&&(r=""+t.key),t)!N.call(t,o)||"key"===o||"__self"===o||"__source"===o||"ref"===o&&void 0===t.ref||(i[o]=t[o]);var o=arguments.length-2;if(1===o)i.children=n;else if(1<o){for(var s=Array(o),a=0;a<o;a++)s[a]=arguments[a+2];i.children=s}return S(e.type,r,i)},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:a,_context:e},e},t.createElement=function(e,t,n){var i,r={},o=null;if(null!=t)for(i in void 0!==t.key&&(o=""+t.key),t)N.call(t,i)&&"key"!==i&&"__self"!==i&&"__source"!==i&&(r[i]=t[i]);var s=arguments.length-2;if(1===s)r.children=n;else if(1<s){for(var a=Array(s),l=0;l<s;l++)a[l]=arguments[l+2];r.children=a}if(e&&e.defaultProps)for(i in s=e.defaultProps)void 0===r[i]&&(r[i]=s[i]);return S(e,o,r)},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:h,_payload:{_status:-1,_result:e},_init:j}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=_.T,n={};_.T=n;try{var i=e(),r=_.S;null!==r&&r(n,i),"object"==typeof i&&null!==i&&"function"==typeof i.then&&i.then(L,z)}catch(e){z(e)}finally{null!==t&&null!==n.types&&(t.types=n.types),_.T=t}},t.unstable_useCacheRefresh=function(){return _.H.useCacheRefresh()},t.use=function(e){return _.H.use(e)},t.useActionState=function(e,t,n){return _.H.useActionState(e,t,n)},t.useCallback=function(e,t){return _.H.useCallback(e,t)},t.useContext=function(e){return _.H.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e,t){return _.H.useDeferredValue(e,t)},t.useEffect=function(e,t){return _.H.useEffect(e,t)},t.useEffectEvent=function(e){return _.H.useEffectEvent(e)},t.useId=function(){return _.H.useId()},t.useImperativeHandle=function(e,t,n){return _.H.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return _.H.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return _.H.useLayoutEffect(e,t)},t.useMemo=function(e,t){return _.H.useMemo(e,t)},t.useOptimistic=function(e,t){return _.H.useOptimistic(e,t)},t.useReducer=function(e,t,n){return _.H.useReducer(e,t,n)},t.useRef=function(e){return _.H.useRef(e)},t.useState=function(e){return _.H.useState(e)},t.useSyncExternalStore=function(e,t,n){return _.H.useSyncExternalStore(e,t,n)},t.useTransition=function(){return _.H.useTransition()},t.version="19.2.7"},96540(e,t,n){"use strict";e.exports=n(29869)},74848(e,t,n){"use strict";e.exports=n(29698)},4477(e,t){"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var i=n-1>>>1,r=e[i];if(!(0<o(r,t)))break e;e[i]=t,e[n]=r,n=i}}function i(e){return 0===e.length?null:e[0]}function r(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var i=0,r=e.length,s=r>>>1;i<s;){var a=2*(i+1)-1,l=e[a],c=a+1,u=e[c];if(0>o(l,n))c<r&&0>o(u,l)?(e[i]=u,e[c]=n,i=c):(e[i]=l,e[a]=n,i=a);else{if(!(c<r&&0>o(u,n)))break e;e[i]=u,e[c]=n,i=c}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var s=performance;t.unstable_now=function(){return s.now()}}else{var a=Date,l=a.now();t.unstable_now=function(){return a.now()-l}}var c=[],u=[],d=1,h=null,p=3,f=!1,g=!1,m=!1,y=!1,w="function"==typeof setTimeout?setTimeout:null,b="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function M(e){for(var t=i(u);null!==t;){if(null===t.callback)r(u);else{if(!(t.startTime<=e))break;r(u),t.sortIndex=t.expirationTime,n(c,t)}t=i(u)}}function x(e){if(m=!1,M(e),!g)if(null!==i(c))g=!0,_||(_=!0,L());else{var t=i(u);null!==t&&j(x,t.startTime-e)}}var L,_=!1,N=-1,S=5,C=-1;function T(){return!!y||!(t.unstable_now()-C<S)}function k(){if(y=!1,_){var e=t.unstable_now();C=e;var n=!0;try{e:{g=!1,m&&(m=!1,b(N),N=-1),f=!0;var o=p;try{t:{for(M(e),h=i(c);null!==h&&!(h.expirationTime>e&&T());){var s=h.callback;if("function"==typeof s){h.callback=null,p=h.priorityLevel;var a=s(h.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof a){h.callback=a,M(e),n=!0;break t}h===i(c)&&r(c),M(e)}else r(c);h=i(c)}if(null!==h)n=!0;else{var l=i(u);null!==l&&j(x,l.startTime-e),n=!1}}break e}finally{h=null,p=o,f=!1}n=void 0}}finally{n?L():_=!1}}}if("function"==typeof v)L=function(){v(k)};else if("undefined"!=typeof MessageChannel){var A=new MessageChannel,D=A.port2;A.port1.onmessage=k,L=function(){D.postMessage(null)}}else L=function(){w(k,0)};function j(e,n){N=w(function(){e(t.unstable_now())},n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):S=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return p},t.unstable_next=function(e){switch(p){case 1:case 2:case 3:var t=3;break;default:t=p}var n=p;p=t;try{return e()}finally{p=n}},t.unstable_requestPaint=function(){y=!0},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=p;p=e;try{return t()}finally{p=n}},t.unstable_scheduleCallback=function(e,r,o){var s=t.unstable_now();switch("object"==typeof o&&null!==o?o="number"==typeof(o=o.delay)&&0<o?s+o:s:o=s,e){case 1:var a=-1;break;case 2:a=250;break;case 5:a=1073741823;break;case 4:a=1e4;break;default:a=5e3}return e={id:d++,callback:r,priorityLevel:e,startTime:o,expirationTime:a=o+a,sortIndex:-1},o>s?(e.sortIndex=o,n(u,e),null===i(c)&&e===i(u)&&(m?(b(N),N=-1):m=!0,j(x,o-s))):(e.sortIndex=a,n(c,e),g||f||(g=!0,_||(_=!0,L()))),e},t.unstable_shouldYield=T,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},69982(e,t,n){"use strict";e.exports=n(4477)},30576(e,t,n){"use strict";var i=n(85072),r=n.n(i),o=n(97825),s=n.n(o),a=n(77659),l=n.n(a),c=n(55056),u=n.n(c),d=n(10540),h=n.n(d),p=n(41113),f=n.n(p),g=n(93911),m={};m.styleTagTransform=f(),m.setAttributes=u(),m.insert=l().bind(null,"head"),m.domAPI=s(),m.insertStyleElement=h();r()(g.A,m),g.A&&g.A.locals&&g.A.locals},85072(e){"use strict";var t=[];function n(e){for(var n=-1,i=0;i<t.length;i++)if(t[i].identifier===e){n=i;break}return n}function i(e,i){for(var o={},s=[],a=0;a<e.length;a++){var l=e[a],c=i.base?l[0]+i.base:l[0],u=o[c]||0,d="".concat(c," ").concat(u);o[c]=u+1;var h=n(d),p={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==h)t[h].references++,t[h].updater(p);else{var f=r(p,i);i.byIndex=a,t.splice(a,0,{identifier:d,updater:f,references:1})}s.push(d)}return s}function r(e,t){var n=t.domAPI(t);n.update(e);return function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,r){var o=i(e=e||[],r=r||{});return function(e){e=e||[];for(var s=0;s<o.length;s++){var a=n(o[s]);t[a].references--}for(var l=i(e,r),c=0;c<o.length;c++){var u=n(o[c]);0===t[u].references&&(t[u].updater(),t.splice(u,1))}o=l}}},77659(e){"use strict";var t={};e.exports=function(e,n){var i=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");i.appendChild(n)}},10540(e){"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},55056(e,t,n){"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},97825(e){"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var i="";n.supports&&(i+="@supports (".concat(n.supports,") {")),n.media&&(i+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(i+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),i+=n.css,r&&(i+="}"),n.media&&(i+="}"),n.supports&&(i+="}");var o=n.sourceMap;o&&"undefined"!=typeof btoa&&(i+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),t.styleTagTransform(i,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},41113(e){"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},58493(e,t,n){"use strict";var i=n(96540);var r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=i.useState,s=i.useEffect,a=i.useLayoutEffect,l=i.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch(e){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),i=o({inst:{value:n,getSnapshot:t}}),r=i[0].inst,u=i[1];return a(function(){r.value=n,r.getSnapshot=t,c(r)&&u({inst:r})},[e,n,t]),s(function(){return c(r)&&u({inst:r}),e(function(){c(r)&&u({inst:r})})},[e]),l(n),n};t.useSyncExternalStore=void 0!==i.useSyncExternalStore?i.useSyncExternalStore:u},19888(e,t,n){"use strict";e.exports=n(58493)},34915(e){e.exports={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}},1489(e){"use strict";e.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0yMC41NiAxOEgzLjQ0QzIuNjUgMTggMiAxNy4zNyAyIDE2LjU5VjcuNDFDMiA2LjYzIDIuNjUgNiAzLjQ0IDZoMTcuMTJjLjc5IDAgMS40NC42MyAxLjQ0IDEuNDF2OS4xOGMwIC43OC0uNjUgMS40MS0xLjQ0IDEuNDFNMy40NCA2Ljk0Yy0uMjYgMC0uNDguMjEtLjQ4LjQ3djkuMTljMCAuMjUuMjIuNDYuNDguNDZoMTcuMTJjLjI2IDAgLjQ4LS4yMS40OC0uNDZWNy40MWMwLS4yNi0uMjItLjQ3LS40OC0uNDd6bTEuNDUgOC4yNVY4LjgxaDEuOTJsMS45MiAyLjM1bDEuOTItMi4zNWgxLjkzdjYuMzhoLTEuOTN2LTMuNjZsLTEuOTIgMi4zNWwtMS45Mi0yLjM1djMuNjZ6bTEyLjAxIDBsLTIuOS0zLjFoMS45NFY4LjgxaDEuOTJ2My4yOGgxLjkzeiIvPjwvc3ZnPg=="},57778(e){"use strict";e.exports="data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 viewBox=%270 0 24 24%27><path fill=%27%239aa0a6%27 d=%27M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z%27/></svg>"},43957(e,t,n){"use strict";e.exports=n.p+"material-icons-outlined.f882956fd323fd322f31.woff"},64429(e,t,n){"use strict";e.exports=n.p+"material-icons-outlined.6f420cf17cc0d7676fad.woff2"},88981(e,t,n){"use strict";e.exports=n.p+"material-icons-round.5d681e2edae8c60630db.woff"},62221(e,t,n){"use strict";e.exports=n.p+"material-icons-round.c380809fd3677d7d6903.woff2"},15261(e,t,n){"use strict";e.exports=n.p+"material-icons-sharp.3a4004a46a653d4b2166.woff"},95621(e,t,n){"use strict";e.exports=n.p+"material-icons-sharp.219aa9140e099e6c72ed.woff2"},7286(e,t,n){"use strict";e.exports=n.p+"material-icons-two-tone.3baa5b8f3469222b822d.woff"},52704(e,t,n){"use strict";e.exports=n.p+"material-icons-two-tone.4ef4218c522f1eb6b5b1.woff2"},54564(e,t,n){"use strict";e.exports=n.p+"material-icons.4d73cb90e394b34b7670.woff"},30574(e,t,n){"use strict";e.exports=n.p+"material-icons.0c35d18bf06992036b69.woff2"},74617(e,t,n){"use strict";e.exports=n.p+"bold-cyrillic-ext.ce059a8f6e004979ba05.woff2"},52999(e,t,n){"use strict";e.exports=n.p+"bold-cyrillic.c6551f210d256bc0a53c.woff2"},30814(e,t,n){"use strict";e.exports=n.p+"bold-greek-ext.23410236ad91e1e9a940.woff2"},92352(e,t,n){"use strict";e.exports=n.p+"bold-greek.3ca90e818569ea30b7a5.woff2"},83904(e,t,n){"use strict";e.exports=n.p+"bold-latin-ext.2795d24f8fef954689ca.woff2"},66426(e,t,n){"use strict";e.exports=n.p+"bold-latin.e9080da0210884549ea6.woff2"},75613(e,t,n){"use strict";e.exports=n.p+"bold-vietnamese.94a1c1fbd1ede0265cb3.woff2"},26381(e,t,n){"use strict";e.exports=n.p+"medium-cyrillic-ext.0ced56d7af066edf067f.woff2"},81315(e,t,n){"use strict";e.exports=n.p+"medium-cyrillic.2993b11d5847a9fb2206.woff2"},79490(e,t,n){"use strict";e.exports=n.p+"medium-greek-ext.30415dda763747a5c156.woff2"},92284(e,t,n){"use strict";e.exports=n.p+"medium-greek.6c5df20c745597569166.woff2"},58628(e,t,n){"use strict";e.exports=n.p+"medium-latin-ext.2f6b8a5d7bad83cb7306.woff2"},36022(e,t,n){"use strict";e.exports=n.p+"medium-latin.f188ce0f3c3beb3248d1.woff2"},22705(e,t,n){"use strict";e.exports=n.p+"medium-vietnamese.ca740f15a15ff2af815e.woff2"},17769(e,t,n){"use strict";e.exports=n.p+"normal-cyrillic-ext.ffc9a5b3669b37cb45d1.woff2"},79735(e,t,n){"use strict";e.exports=n.p+"normal-cyrillic.b53c2ca8a0a0b98bcad3.woff2"},96718(e,t,n){"use strict";e.exports=n.p+"normal-greek-ext.5543cfc79252c151e079.woff2"},14640(e,t,n){"use strict";e.exports=n.p+"normal-greek.6f687c7363244fec0ae1.woff2"},32688(e,t,n){"use strict";e.exports=n.p+"normal-latin-ext.c2ffb3d0547a697b8970.woff2"},71594(e,t,n){"use strict";e.exports=n.p+"normal-latin.e46177b21b27cd6643c5.woff2"},52781(e,t,n){"use strict";e.exports=n.p+"normal-vietnamese.35edb8fac003ba8b66d0.woff2"},19324(e,t,n){"use strict";n.d(t,{A:()=>rn});var i={};function r(e,t){return function(){return e.apply(t,arguments)}}n.r(i),n.d(i,{hasBrowserEnv:()=>Ue,hasStandardBrowserEnv:()=>Ye,hasStandardBrowserWebWorkerEnv:()=>Qe,navigator:()=>Fe,origin:()=>We});const{toString:o}=Object.prototype,{getPrototypeOf:s}=Object,{iterator:a,toStringTag:l}=Symbol,c=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),u=e=>"string"==typeof e&&("__proto__"===e||"constructor"===e||"prototype"===e),d=(e,t,n)=>e===Object.prototype||!n&&null===t,h=(e,t)=>{let n=e;const i=[];for(;null!=n;){if(-1!==i.indexOf(n))return!1;i.push(n);const r=s(n);if(d(n,r,n===e))return!1;if(c(n,t))return!0;n=r}return!1},p=(f=Object.create(null),e=>{const t=o.call(e);return f[t]||(f[t]=t.slice(8,-1).toLowerCase())});var f;const g=e=>(e=e.toLowerCase(),t=>p(t)===e),m=e=>t=>typeof t===e,{isArray:y}=Array,w=m("undefined");function b(e){return null!==e&&!w(e)&&null!==e.constructor&&!w(e.constructor)&&x(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const v=g("ArrayBuffer");const M=m("string"),x=m("function"),L=m("number"),_=e=>null!==e&&"object"==typeof e,N=e=>{if(!_(e))return!1;const t=s(e);return!(null!==t&&t!==Object.prototype&&null!==s(t)||h(e,l)||h(e,a))},S=g("Date"),C=g("File"),T=g("Blob"),k=g("FileList"),A=g("Set");const D="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:{},j=void 0!==D.FormData?D.FormData:void 0,z=g("URLSearchParams"),[E,I,O,$]=["ReadableStream","Request","Response","Headers"].map(g);function R(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let i,r;if("object"!=typeof e&&(e=[e]),y(e))for(i=0,r=e.length;i<r;i++)t.call(null,e[i],i,e);else{if(b(e))return;const r=n?Object.getOwnPropertyNames(e):Object.keys(e),o=r.length;let s;for(i=0;i<o;i++)s=r[i],t.call(null,e[s],s,e)}}function P(e,t){if(b(e))return null;t=t.toLowerCase();const n=Object.keys(e);let i,r=n.length;for(;r-- >0;)if(i=n[r],t===i.toLowerCase())return i;return null}const U="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:n.g,F=e=>!w(e)&&e!==U;const Y=(Q="undefined"!=typeof Uint8Array&&s(Uint8Array),e=>Q&&e instanceof Q);var Q;const W=g("HTMLFormElement"),{propertyIsEnumerable:B}=Object.prototype,H=g("RegExp"),V=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),i={};R(n,(n,r)=>{let o;!1!==(o=t(n,r,e))&&(i[r]=o||n)}),Object.defineProperties(e,i)};const G=g("AsyncFunction"),K=(q="function"==typeof setImmediate,Z=x(U.postMessage),q?setImmediate:Z?(X=`axios@${Math.random()}`,J=[],U.addEventListener("message",({source:e,data:t})=>{e===U&&t===X&&J.length&&J.shift()()},!1),e=>{J.push(e),U.postMessage(X,"*")}):e=>setTimeout(e));var q,Z,X,J;const ee="undefined"!=typeof queueMicrotask?queueMicrotask.bind(U):"undefined"!=typeof process&&process.nextTick||K,te=e=>null!=e&&x(e[a]),ne={isArray:y,isArrayBuffer:v,isBuffer:b,isFormData:e=>{if(!e)return!1;if(j&&e instanceof j)return!0;const t=s(e);if(!t||t===Object.prototype)return!1;if(!x(e.append))return!1;const n=p(e);return"formdata"===n||"object"===n&&x(e.toString)&&"[object FormData]"===e.toString()},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&v(e.buffer),t},isString:M,isNumber:L,isBoolean:e=>!0===e||!1===e,isObject:_,isPlainObject:N,isEmptyObject:e=>{if(!_(e)||b(e))return!1;try{return 0===Object.keys(e).length&&Object.getPrototypeOf(e)===Object.prototype}catch(e){return!1}},isReadableStream:E,isRequest:I,isResponse:O,isHeaders:$,isUndefined:w,isDate:S,isFile:C,isReactNativeBlob:e=>!(!e||void 0===e.uri),isReactNative:e=>e&&void 0!==e.getParts,isBlob:T,isRegExp:H,isFunction:x,isStream:e=>_(e)&&x(e.pipe),isURLSearchParams:z,isTypedArray:Y,isFileList:k,forEach:R,merge:function e(...t){const{caseless:n,skipUndefined:i}=F(this)&&this||{},r={},o=(t,o)=>{if("__proto__"===o||"constructor"===o||"prototype"===o)return;const s=n&&"string"==typeof o&&P(r,o)||o,a=c(r,s)?r[s]:void 0;N(a)&&N(t)?r[s]=e(a,t):N(t)?r[s]=e({},t):y(t)?r[s]=t.slice():i&&w(t)||(r[s]=t)};for(let e=0,n=t.length;e<n;e++){const n=t[e];if(!n||b(n))continue;if(R(n,o),"object"!=typeof n||y(n))continue;const i=Object.getOwnPropertySymbols(n);for(let e=0;e<i.length;e++){const t=i[e];B.call(n,t)&&o(n[t],t)}}return r},extend:(e,t,n,{allOwnKeys:i}={})=>(R(t,(t,i)=>{n&&x(t)?Object.defineProperty(e,i,{__proto__:null,value:r(t,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,i,{__proto__:null,value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:i}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,i)=>{e.prototype=Object.create(t.prototype,i),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,i)=>{let r,o,a;const l={};if(t=t||{},null==e)return t;do{for(r=Object.getOwnPropertyNames(e),o=r.length;o-- >0;)a=r[o],i&&!i(a,e,t)||l[a]||(t[a]=e[a],l[a]=!0);e=!1!==n&&s(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:p,kindOfTest:g,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const i=e.indexOf(t,n);return-1!==i&&i===n},toArray:e=>{if(!e)return null;if(y(e))return e;let t=e.length;if(!L(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[a]).call(e);let i;for(;(i=n.next())&&!i.done;){const n=i.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const i=[];for(;null!==(n=e.exec(t));)i.push(n);return i},isHTMLForm:W,hasOwnProperty:c,hasOwnProp:c,hasOwnInPrototypeChain:h,getSafeProp:(e,t)=>null!=e&&h(e,t)?e[t]:void 0,toSafeFlatObject:e=>{if(null==e||"object"!=typeof e&&"function"!=typeof e)return e;const t=s(e);if(null===t&&(e=>{if(!Object.isExtensible(e))return!1;const t=Object.getOwnPropertyNames(e);return Object.getOwnPropertySymbols&&t.push(...Object.getOwnPropertySymbols(e)),t.every(t=>{if(u(t))return!1;const n=Object.getOwnPropertyDescriptor(e,t);return!!n&&n.configurable&&!0===n.writable})})(e))return e;const n=Object.create(null),i=Object.create(null),r=[];let o=e;for(;null!=o&&-1===r.indexOf(o);){r.push(o);const a=o===e?t:s(o);if(d(o,a,o===e))break;const l=Object.getOwnPropertyNames(o);Object.getOwnPropertySymbols&&l.push(...Object.getOwnPropertySymbols(o));for(const t of l)u(t)||c(i,t)||(n[t]=e[t],i[t]=!0);o=a}return n},reduceDescriptors:V,freezeMethods:e=>{V(e,(t,n)=>{if(x(e)&&["arguments","caller","callee"].includes(n))return!1;const i=e[n];x(i)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))})},toObjectSet:(e,t)=>{const n={},i=e=>{e.forEach(e=>{n[e]=!0})};return y(e)?i(e):i(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:P,global:U,isContextDefined:F,isSpecCompliantForm:function(e){return!!(e&&x(e.append)&&"FormData"===e[l]&&e[a])},toJSONObject:e=>{const t=new WeakSet,n=e=>{if(_(e)){if(t.has(e))return;if(b(e))return e;if(!("toJSON"in e)){let i;if(t.add(e),A(e)){i=[];for(const t of e){const e=n(t);!w(e)&&i.push(e)}}else i=y(e)?[]:{},R(e,(e,t)=>{const r=n(e);!w(r)&&(i[t]=r)});return t.delete(e),i}}return e};return n(e)},isAsyncFn:G,isThenable:e=>e&&(_(e)||x(e))&&x(e.then)&&x(e.catch),setImmediate:K,asap:ee,isIterable:te,isSafeIterable:e=>null!=e&&h(e,a)&&te(e)},ie=ne.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),re=e=>{const t={};let n,i,r;return e&&e.split("\n").forEach(function(e){r=e.indexOf(":"),n=e.substring(0,r).trim().toLowerCase(),i=e.substring(r+1).trim();const o=ne.hasOwnProp(t,n);!n||o&&ne.hasOwnProp(ie,n)||("set-cookie"===n?o?t[n].push(i):t[n]=[i]:t[n]=o?t[n]+", "+i:i)}),t};n.dn(re);const oe=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),se=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function ae(e,t){return ne.isArray(e)?e.map(e=>ae(e,t)):function(e){let t=0,n=e.length;for(;t<n;){const n=e.charCodeAt(t);if(9!==n&&32!==n)break;t+=1}for(;n>t;){const t=e.charCodeAt(n-1);if(9!==t&&32!==t)break;n-=1}return 0===t&&n===e.length?e:e.slice(t,n)}(String(e).replace(t,""))}function le(e){const t=Object.create(null);return ne.forEach(e.toJSON(),(e,n)=>{t[n]=(e=>ae(e,se))(e)}),t}const ce=Symbol("internals");function ue(e){return e&&String(e).trim().toLowerCase()}function de(e){return!1===e||null==e?e:ne.isArray(e)?e.map(de):(e=>ae(e,oe))(String(e))}const he=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function pe(e){let t=0,n=e.length;for(;t<n;){const n=e.charCodeAt(t);if(9!==n&&32!==n)break;t+=1}for(;n>t;){const t=e.charCodeAt(n-1);if(9!==t&&32!==t)break;n-=1}return 0===t&&n===e.length?e:e.slice(t,n)}function fe(e,t,n,i,r){return ne.isFunction(i)?i.call(this,t,n):(r&&(t=n),ne.isString(t)?ne.isString(i)?-1!==t.indexOf(i):ne.isRegExp(i)?i.test(t):void 0:void 0)}class ge{constructor(e){e&&this.set(e)}set(e,t,n){const i=this;function r(e,t,n){const r=ue(t);if(!r)return;const o=ne.findKey(i,r);(!o||void 0===i[o]||!0===n||void 0===n&&!1!==i[o])&&(i[o||t]=de(e))}const o=(e,t)=>ne.forEach(e,(e,n)=>r(e,n,t));if(ne.isPlainObject(e)||e instanceof this.constructor)o(e,t);else if(ne.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))o(re(e),t);else if(ne.isObject(e)&&ne.isSafeIterable(e)){let n,i,r=Object.create(null);for(const t of e){if(!ne.isArray(t))throw new TypeError("Object iterator must return a key-value pair");i=t[0],ne.hasOwnProp(r,i)?(n=r[i],r[i]=ne.isArray(n)?[...n,t[1]]:[n,t[1]]):r[i]=t[1]}o(r,t)}else null!=e&&r(t,e,n);return this}get(e,t){if(e=ue(e)){const n=ne.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let i;for(;i=n.exec(e);)t[i[1]]=i[2];return t}(e);if(ne.isFunction(t))return t.call(this,e,n);if(ne.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=ue(e)){const n=ne.findKey(this,e);return!(!n||void 0===this[n]||t&&!fe(0,this[n],n,t))}return!1}delete(e,t){const n=this;let i=!1;function r(e){if(e=ue(e)){const r=ne.findKey(n,e);!r||t&&!fe(0,n[r],r,t)||(delete n[r],i=!0)}}return ne.isArray(e)?e.forEach(r):r(e),i}clear(e){const t=Object.keys(this);let n=t.length,i=!1;for(;n--;){const r=t[n];e&&!fe(0,this[r],r,e,!0)||(delete this[r],i=!0)}return i}normalize(e){const t=this,n={};return ne.forEach(this,(i,r)=>{const o=ne.findKey(n,r);if(o)return t[o]=de(i),void delete t[r];const s=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}(r):String(r).trim();s!==r&&delete t[r],t[s]=de(i),n[s]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return ne.forEach(this,(n,i)=>{null!=n&&!1!==n&&(t[i]=e&&ne.isArray(n)?n.join(", "):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join("\n")}getSetCookie(){const e=this.get("set-cookie");return ne.isArray(e)?e:null==e||!1===e?[]:[e]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static parseParameters(e){return function(e){const t=Object.create(null),n=String(e);let i=0,r=!1,o=!1;function s(e){const r=pe(n.slice(i,e)),o=r.indexOf("=");if(o<1)return;const s=pe(r.slice(0,o));if(!he.test(s))return;const a=s.toLowerCase();if("__proto__"===a||"constructor"===a||"prototype"===a)return;const l=pe(r.slice(o+1));t[a]=function(e){const t=e.length-1;if(t<1||34!==e.charCodeAt(0)||34!==e.charCodeAt(t))return e;let n="";for(let i=1;i<t;i++){const r=e.charCodeAt(i);if(34===r)return e;if(92===r&&(i+=1,i>=t))return e;n+=e[i]}return n}(l)}for(let e=0;e<n.length;e++){const t=n.charCodeAt(e);r?o?o=!1:92===t?o=!0:34===t&&(r=!1):34===t?r=!0:44!==t&&59!==t||(s(e),i=e+1)}return s(n.length),t}(e)}static concat(e,...t){const n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){const t=(this[ce]=this[ce]={accessors:{}}).accessors,n=this.prototype;function i(e){const i=ue(e);t[i]||(!function(e,t){const n=ne.toCamelCase(" "+t);["get","set","has"].forEach(i=>{Object.defineProperty(e,i+n,{__proto__:null,value:function(e,n,r){return this[i].call(this,t,e,n,r)},configurable:!0})})}(n,e),t[i]=!0)}return ne.isArray(e)?e.forEach(i):i(e),this}}ge.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),ne.reduceDescriptors(ge.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),ne.freezeMethods(ge);const me=ge,ye="[REDACTED ****]";function we(e,t){const n=new Set(t.map(e=>String(e).toLowerCase())),i=[],r=e=>{if(null===e||"object"!=typeof e)return e;if(ne.isBuffer(e))return e;if(-1!==i.indexOf(e))return;let t;if(e instanceof me&&(e=e.toJSON()),i.push(e),ne.isArray(e))t=[],e.forEach((e,n)=>{const i=r(e);ne.isUndefined(i)||(t[n]=i)});else{if(!ne.isPlainObject(e)&&function(e){if(ne.hasOwnProp(e,"toJSON"))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(ne.hasOwnProp(t,"toJSON"))return!0;t=Object.getPrototypeOf(t)}return!1}(e))return i.pop(),e;t=Object.create(null);for(const[i,o]of Object.entries(e)){const e=n.has(i.toLowerCase())?ye:r(o);ne.isUndefined(e)||(t[i]=e)}}return i.pop(),t};return r(e)}function be(e){try{return String(e)}catch(e){return""}}class ve extends Error{static from(e,t,n,i,r,o){let s=e.message;!s&&ne.isArray(e.errors)&&e.errors.length&&(s=function(e){return e.errors.map(e=>{try{return e&&e.message?be(e.message):be(e)}catch(e){return""}}).filter(Boolean).join("; ")||e.name||"AggregateError"}(e));const a=new ve(s,t||e.code,n,i,r);return Object.defineProperty(a,"cause",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),a.name=e.name,null!=e.status&&null==a.status&&(a.status=e.status),o&&Object.assign(a,o),a}constructor(e,t,n,i,r){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),i&&(this.request=i),r&&(this.response=r,this.status=r.status)}toJSON(){const e=this.config,t=e&&ne.hasOwnProp(e,"redact")?e.redact:void 0,n=ne.isArray(t)&&t.length>0?we(e,t):ne.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}}ve.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",ve.ERR_BAD_OPTION="ERR_BAD_OPTION",ve.ECONNABORTED="ECONNABORTED",ve.ETIMEDOUT="ETIMEDOUT",ve.ECONNREFUSED="ECONNREFUSED",ve.ERR_NETWORK="ERR_NETWORK",ve.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",ve.ERR_DEPRECATED="ERR_DEPRECATED",ve.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",ve.ERR_BAD_REQUEST="ERR_BAD_REQUEST",ve.ERR_CANCELED="ERR_CANCELED",ve.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",ve.ERR_INVALID_URL="ERR_INVALID_URL",ve.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const Me=ve;function xe(e){return ne.isPlainObject(e)||ne.isArray(e)}function Le(e){return ne.endsWith(e,"[]")?e.slice(0,-2):e}function _e(e,t,n){return e?e.concat(t).map(function(e,t){return e=Le(e),!n&&t?"["+e+"]":e}).join(n?".":""):t}const Ne=ne.toFlatObject(ne,{},null,function(e){return/^is[A-Z]/.test(e)});const Se=function(e,t,n){if(!ne.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const i=(e,t)=>{const i=ne.getSafeProp(n,e);return ne.isUndefined(i)?t:i},r=i("metaTokens",!0),o=i("visitor")||f,s=i("dots",!1),a=i("indexes",!1),l=i("Blob")||"undefined"!=typeof Blob&&Blob,c=i("maxDepth",100),u=l&&ne.isSpecCompliantForm(t),d=[];if(!ne.isFunction(o))throw new TypeError("visitor must be a function");function h(e){if(null===e)return"";if(ne.isDate(e))return e.toISOString();if(ne.isBoolean(e))return e.toString();if(!u&&ne.isBlob(e))throw new Me("Blob is not supported. Use a Buffer instead.");if(ne.isArrayBuffer(e)||ne.isTypedArray(e)){if(u&&"function"==typeof l)return new l([e]);throw new Me("Blob is not supported. Use a Buffer instead.",Me.ERR_NOT_SUPPORT)}return e}function p(e){if(e>c)throw new Me("Object is too deeply nested ("+e+" levels). Max depth: "+c,Me.ERR_FORM_DATA_DEPTH_EXCEEDED)}function f(e,n,i){let o=e;if(ne.isReactNative(t)&&ne.isReactNativeBlob(e))return t.append(_e(i,n,s),h(e)),!1;if(e&&!i&&"object"==typeof e)if(ne.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=function(e,t){if(c===1/0)return JSON.stringify(e);const n=[];return JSON.stringify(e,function(e,i){if(!ne.isObject(i))return i;for(;n.length&&n[n.length-1]!==this;)n.pop();return n.push(i),p(t+n.length-1),i})}(e,1);else if(ne.isArray(e)&&function(e){return ne.isArray(e)&&!e.some(xe)}(e)||(ne.isFileList(e)||ne.endsWith(n,"[]"))&&(o=ne.toArray(e)))return n=Le(n),o.forEach(function(e,i){!ne.isUndefined(e)&&null!==e&&t.append(!0===a?_e([n],i,s):null===a?n:n+"[]",h(e))}),!1;return!!xe(e)||(t.append(_e(i,n,s),h(e)),!1)}const g=Object.assign(Ne,{defaultVisitor:f,convertValue:h,isVisitable:xe});if(!ne.isObject(e))throw new TypeError("data must be an object");return function e(n,i,r=0){if(!ne.isUndefined(n)){if(p(r),-1!==d.indexOf(n))throw new Error("Circular reference detected in "+i.join("."));d.push(n),ne.forEach(n,function(n,s){!0===(!(ne.isUndefined(n)||null===n)&&o.call(t,n,ne.isString(s)?s.trim():s,i,g))&&e(n,i?i.concat(s):[s],r+1)}),d.pop()}}(e),t};function Ce(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function Te(e,t){this._pairs=[],e&&Se(e,this,t)}const ke=Te.prototype;ke.append=function(e,t){this._pairs.push([e,t])},ke.toString=function(e){const t=e?t=>e.call(this,t,Ce):Ce;return this._pairs.map(function(e){return t(e[0])+"="+t(e[1])},"").join("&")};const Ae=Te;function De(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function je(e,t,n){if(!t)return e;e=e||"";const i=ne.isFunction(n)?{serialize:n}:n,r=ne.getSafeProp(i,"encode")||De,o=ne.getSafeProp(i,"serialize");let s;if(s=o?o(t,i):ne.isURLSearchParams(t)?t.toString():new Ae(t,i).toString(r),s){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+s}return e}const ze=Symbol("internals");function Ee(e){return e?e.length:0}function Ie(e){if(e)for(;e.length&&null===e[e.length-1];)e.pop()}function Oe(e,t){const n=e.handlers,i=Ee(n);n!==t.handlersRef?(t.handlersRef=n,t.handlerEntries.clear()):i!==t.handlersLength&&(i?t.handlerEntries.forEach(function(e,i){n[e.index]!==e.handler&&t.handlerEntries.delete(i)}):t.handlerEntries.clear()),t.handlersLength=i}const $e=class{constructor(){this.handlers=[],this[ze]={handlersRef:this.handlers,handlersLength:this.handlers.length,handlerEntries:new Map,iterationDepth:0,nextId:0}}use(e,t,n){const i={fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null},r=this[ze];null==this.handlers&&(this.handlers=[]),Oe(this,r);const o=r.nextId++;return this.handlers.push(i),r.handlerEntries.set(o,{handler:i,index:this.handlers.length-1}),r.handlersLength=this.handlers.length,o}eject(e){const t=this[ze];Oe(this,t);const n=t.handlerEntries.get(e);if(n){if(t.handlerEntries.delete(e),this.handlers[n.index]!==n.handler)return;this.handlers[n.index]=null,t.iterationDepth||(Ie(this.handlers),t.handlersLength=this.handlers.length)}}clear(){this.handlers&&(this.handlers=[],Oe(this,this[ze]))}forEach(e){const t=this[ze];Oe(this,t),t.iterationDepth++;try{ne.forEach(this.handlers,function(t){null!==t&&e(t)})}finally{--t.iterationDepth||(Oe(this,t),Ie(this.handlers),t.handlersLength=Ee(this.handlers))}}},Re={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},Pe={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Ae,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},Ue="undefined"!=typeof window&&"undefined"!=typeof document,Fe="object"==typeof navigator&&navigator||void 0,Ye=Ue&&(!Fe||["ReactNative","NativeScript","NS"].indexOf(Fe.product)<0),Qe="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,We=Ue&&window.location.href||"http://localhost",Be={...i,...Pe};function He(e){if(e>100)throw new Me("FormData field is too deeply nested ("+e+" levels). Max depth: 100",Me.ERR_FORM_DATA_DEPTH_EXCEEDED)}const Ve=function(e){function t(e,n,i,r){He(r);let o=e[r++];if("__proto__"===o)return!0;const s=Number.isFinite(+o),a=r>=e.length;if(o=!o&&ne.isArray(i)?i.length:o,a)return ne.hasOwnProp(i,o)?i[o]=ne.isArray(i[o])?i[o].concat(n):[i[o],n]:i[o]=n,!s;ne.hasOwnProp(i,o)&&ne.isObject(i[o])||(i[o]=[]);return t(e,n,i[o],r)&&ne.isArray(i[o])&&(i[o]=function(e){const t={},n=Object.keys(e);let i;const r=n.length;let o;for(i=0;i<r;i++)o=n[i],t[o]=e[o];return t}(i[o])),!s}if(ne.isFormData(e)&&ne.isFunction(e.entries)){const n={};return ne.forEachEntry(e,(e,i)=>{t(function(e){const t=[],n=/[^.[\]]+|\[([^.[\]]*)]/g;let i;for(;null!==(i=n.exec(e));)He(t.length),t.push("[]"===i[0]?"":i[1]||i[0]);return t}(e),i,n,0)}),n}return null},Ge=Object.freeze(["get","delete","head","options","post","put","patch","purge","link","unlink","query"]),Ke=(e,t)=>null!=e&&ne.hasOwnProp(e,t)?e[t]:void 0;const qe={transitional:Re,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",i=n.indexOf("application/json")>-1,r=ne.isObject(e);r&&ne.isHTMLForm(e)&&(e=new FormData(e));if(ne.isFormData(e))return i?JSON.stringify(Ve(e)):e;if(ne.isArrayBuffer(e)||ne.isBuffer(e)||ne.isStream(e)||ne.isFile(e)||ne.isBlob(e)||ne.isReadableStream(e))return e;if(ne.isArrayBufferView(e))return e.buffer;if(ne.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let o;if(r){const t=Ke(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return Se(e,new Be.classes.URLSearchParams,{visitor:function(e,t,n,i){return Be.isNode&&ne.isBuffer(e)?(this.append(t,e.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}(e,t).toString();if((o=ne.isFileList(e))||n.indexOf("multipart/form-data")>-1){const n=Ke(this,"env"),i=n&&n.FormData;return Se(o?{"files[]":e}:e,i&&new i,t)}}return r||i?(t.setContentType("application/json",!1),function(e,t,n){if(ne.isString(e))try{return(t||JSON.parse)(e),ne.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=Ke(this,"transitional")||qe.transitional,n=t&&t.forcedJSONParsing,i=Ke(this,"responseType"),r="json"===i;if(ne.isResponse(e)||ne.isReadableStream(e))return e;if(e&&ne.isString(e)&&(n&&!i||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e,Ke(this,"parseReviver"))}catch(e){if(n){if("SyntaxError"===e.name)throw Me.from(e,Me.ERR_BAD_RESPONSE,this,null,Ke(this,"response"));throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Be.classes.FormData,Blob:Be.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ne.forEach(Ge,e=>{qe.headers[e]={}});const Ze=qe;function Xe(e,t){const n=this||Ze,i=t||n,r=me.from(i.headers);let o=i.data;return ne.forEach(e,function(e){o=e.call(n,o,r.normalize(),t?t.status:void 0)}),r.normalize(),o}function Je(e){return!(!e||!e.__CANCEL__)}const et=class extends Me{constructor(e,t,n){super(e??"canceled",Me.ERR_CANCELED,t,n),this.name="CanceledError",this.__CANCEL__=!0}};function tt(e,t,n){const i=n.config.validateStatus;n.status&&i&&!i(n.status)?t(new Me("Request failed with status code "+n.status,n.status>=400&&n.status<500?Me.ERR_BAD_REQUEST:Me.ERR_BAD_RESPONSE,n.config,n.request,n)):e(n)}const nt=/[\t\n\r]/g;function it(e){if("string"!=typeof e)return e;let t=0;for(;t<e.length&&e.charCodeAt(t)<=32;)t++;return e.slice(t).replace(nt,"")}function rt(e){const t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||""}const ot=function(e,t){e=e||10;const n=new Array(e),i=new Array(e);let r,o=0,s=0;return t=void 0!==t?t:1e3,function(a){const l=Date.now(),c=i[s];r||(r=l),n[o]=a,i[o]=l;let u=s,d=0;for(;u!==o;)d+=n[u++],u%=e;if(o=(o+1)%e,o===s&&(s=(s+1)%e),l-r<t)return;const h=c&&l-c;return h?Math.round(1e3*d/h):void 0}};const st=function(e,t){let n,i,r=0,o=1e3/t;const s=(t,o=Date.now())=>{r=o,n=null,i&&(clearTimeout(i),i=null),e(...t)};return[(...e)=>{const t=Date.now(),a=t-r;a>=o?s(e,t):(n=e,i||(i=setTimeout(()=>{i=null,s(n)},o-a)))},()=>n&&s(n),(...e)=>s(e)]},at=(e,t,n=3)=>{let i=0;const r=ot(50,250);return st(n=>{if(!n||!ne.isNumber(n.loaded))return;const o=n.loaded,s=n.lengthComputable?n.total:void 0,a=Math.max(0,null!=s?Math.min(o,s):o),l=Math.max(0,a-i),c=r(l);i=Math.max(i,a);e({loaded:a,total:s,progress:s?a/s:void 0,bytes:l,rate:c||void 0,estimated:c&&s?(s-a)/c:void 0,event:n,lengthComputable:null!=s,[t?"download":"upload"]:!0})},n)},lt=(e,t)=>{const n=null!=e;return[i=>t[0]({lengthComputable:n,total:e,loaded:i}),t[1]]},ct=(e,t=ne.asap)=>(...n)=>t(()=>e(...n)),ut=Be.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Be.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Be.origin),Be.navigator&&/(msie|trident)/i.test(Be.navigator.userAgent)):()=>!0,dt=Be.hasStandardBrowserEnv?{write(e,t,n,i,r,o,s){if("undefined"==typeof document)return;const a=[`${e}=${encodeURIComponent(t)}`];ne.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),ne.isString(i)&&a.push(`path=${i}`),ne.isString(r)&&a.push(`domain=${r}`),!0===o&&a.push("secure"),ne.isString(s)&&a.push(`SameSite=${s}`),document.cookie=a.join("; ")},read(e){if("undefined"==typeof document)return null;const t=document.cookie.split(";");for(let n=0;n<t.length;n++){const i=t[n].replace(/^\s+/,""),r=i.indexOf("=");if(-1!==r&&i.slice(0,r)===e)try{return decodeURIComponent(i.slice(r+1))}catch(e){return i.slice(r+1)}}return null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read:()=>null,remove(){}};const ht=/^https?:(?!\/\/)/i;function pt(e){const t=e.replace(/^(https?:\/{0,2})[^/?#]*@/i,`$1${ye}@`),n=t.indexOf("#"),i=(-1===n?t:t.slice(0,n)).replace(/([?&][^=&#]*=)[^&#]*/g,`$1${ye}`);return-1===n?i:`${i}#${r=t.slice(n+1),r?r.replace(/(^|&)([^=&]*=)?[^&]+/g,(e,t,n="")=>`${t}${n}${ye}`):r}`;var r}function ft(e,t){if("string"==typeof e){const n=it(e);if(ht.test(n))throw new Me(`Invalid URL ${JSON.stringify(pt(n))}: missing "//" after protocol`,Me.ERR_INVALID_URL,t)}}function gt(e,t,n,i){ft(t,i);let r=!("string"==typeof(o=t)&&/^([a-z][a-z\d+\-.]*:)?\/\//i.test(o));var o;return e&&(r||!1===n)?(ft(e,i),function(e,t){if(!t)return e;let n=e.length;for(;n>0&&47===e.charCodeAt(n-1);)n--;return e.slice(0,n)+"/"+t.replace(/^\/+/,"")}(e,t)):t}const mt=e=>e instanceof me?{...e}:e;function yt(e,t){e=e||{},t=t||{};const n=Object.create(null);function i(e,t,n,i){return ne.isPlainObject(e)&&ne.isPlainObject(t)?ne.merge.call({caseless:i},e,t):ne.isPlainObject(t)?ne.merge({},t):ne.isArray(t)?t.slice():t}function r(e,t,n,r){return ne.isUndefined(t)?ne.isUndefined(e)?void 0:i(void 0,e,0,r):i(e,t,0,r)}function o(e,t){if(!ne.isUndefined(t))return i(void 0,t)}function s(e,t){return ne.isUndefined(t)?ne.isUndefined(e)?void 0:i(void 0,e):i(void 0,t)}function a(n,r,o){return ne.hasOwnProp(t,o)?i(n,r):ne.hasOwnProp(e,o)?i(void 0,n):void 0}Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});const l={url:o,method:o,data:o,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutErrorMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,allowedSocketPaths:s,responseEncoding:s,validateStatus:a,headers:(e,t,n)=>r(mt(e),mt(t),0,!0)};var c;return ne.forEach((c={...e,...t},Object.getOwnPropertySymbols&&Object.getOwnPropertyDescriptor?Object.keys(c).concat(Object.getOwnPropertySymbols(c).filter(e=>Object.getOwnPropertyDescriptor(c,e).enumerable)):Object.keys(c)),function(i){if("__proto__"===i||"constructor"===i||"prototype"===i)return;const o=ne.hasOwnProp(l,i)?l[i]:r,s=o(ne.hasOwnProp(e,i)?e[i]:void 0,ne.hasOwnProp(t,i)?t[i]:void 0,i);ne.isUndefined(s)&&o!==a||(n[i]=s)}),ne.hasOwnProp(t,"validateStatus")&&ne.isUndefined(t.validateStatus)&&!1===function(n){const i=ne.hasOwnProp(t,"transitional")?t.transitional:void 0;if(!ne.isUndefined(i)){if(!ne.isPlainObject(i))return;if(ne.hasOwnProp(i,n))return i[n]}const r=ne.hasOwnProp(e,"transitional")?e.transitional:void 0;if(ne.isPlainObject(r)&&ne.hasOwnProp(r,n))return r[n]}("validateStatusUndefinedResolves")&&(ne.hasOwnProp(e,"validateStatus")?n.validateStatus=i(void 0,e.validateStatus):delete n.validateStatus),n}const wt=["content-type","content-length"];const bt=function(e){const t=yt({},e),n=e=>ne.hasOwnProp(t,e)?t[e]:void 0,i=n("data");let r=n("withXSRFToken");const o=n("xsrfHeaderName"),s=n("xsrfCookieName");let a=n("headers");const l=n("auth"),c=n("baseURL"),u=n("allowAbsoluteUrls"),d=n("url");if(t.headers=a=me.from(a),t.url=je(gt(c,d,u,t),n("params"),n("paramsSerializer")),l){const t=ne.getSafeProp(l,"username")||"",n=ne.getSafeProp(l,"password")||"";try{a.set("Authorization","Basic "+btoa(t+":"+(n?encodeURIComponent(n).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))):"")))}catch(t){throw Me.from(t,Me.ERR_BAD_OPTION_VALUE,e)}}if(ne.isFormData(i)){const e=ne.getSafeProp(i,"getHeaders");Be.hasStandardBrowserEnv||Be.hasStandardBrowserWebWorkerEnv||ne.isReactNative(i)?a.setContentType(void 0):ne.isFunction(e)&&function(e,t,n){"content-only"===n?Object.entries(t||{}).forEach(([t,n])=>{wt.includes(t.toLowerCase())&&e.set(t,n)}):e.set(t)}(a,e.call(i),n("formDataHeaderPolicy"))}if(Be.hasStandardBrowserEnv){ne.isFunction(r)&&(r=r(t));if(!0===r||null==r&&ut(t.url)){const e=o&&s&&dt.read(s);e&&a.set(o,e)}}return t},vt="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise(function(t,n){const i=bt(e);let r=i.data;const o=me.from(i.headers).normalize();let s,a,l,c,u,d,{responseType:h,onUploadProgress:p,onDownloadProgress:f}=i;function g(){c&&c(),u&&u(),i.cancelToken&&i.cancelToken.unsubscribe(s),i.signal&&i.signal.removeEventListener("abort",s)}let m=new XMLHttpRequest;function y(r){if(!m)return;if(!(0!==m.status||"file"===(rt(it(i.url))||rt(Be.origin))||m.responseURL&&m.responseURL.startsWith("file:")))return n(new Me("Request aborted",Me.ECONNABORTED,e,m)),g(),void(m=null);try{r?d&&d(r):u&&u()}catch(e){setTimeout(()=>{throw e})}if(!m)return;const o=me.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());tt(function(e){t(e),g()},function(e){n(e),g()},{data:h&&"text"!==h&&"json"!==h?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:o,config:e,request:m}),m=null}m.open(i.method.toUpperCase(),i.url,!0),m.timeout=i.timeout,"onloadend"in m?m.onloadend=y:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&m.responseURL.startsWith("file:"))&&setTimeout(y)},m.onabort=function(){m&&(n(new Me("Request aborted",Me.ECONNABORTED,e,m)),g(),m=null)},m.onerror=function(t){const i=t&&t.message?t.message:"Network Error",r=new Me(i,Me.ERR_NETWORK,e,m);r.event=t||null,n(r),g(),m=null},m.ontimeout=function(){let t=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const r=i.transitional||Re;i.timeoutErrorMessage&&(t=i.timeoutErrorMessage),n(new Me(t,r.clarifyTimeoutError?Me.ETIMEDOUT:Me.ECONNABORTED,e,m)),g(),m=null},void 0===r&&o.setContentType(null),"setRequestHeader"in m&&ne.forEach(le(o),function(e,t){m.setRequestHeader(t,e)}),ne.isUndefined(i.withCredentials)||(m.withCredentials=!!i.withCredentials),h&&"json"!==h&&(m.responseType=i.responseType),f&&([l,u,d]=at(f,!0),m.addEventListener("progress",l)),p&&m.upload&&([a,c]=at(p),m.upload.addEventListener("progress",a),m.upload.addEventListener("loadend",c)),(i.cancelToken||i.signal)&&(s=t=>{m&&(n(!t||t.type?new et(null,e,m):t),m.abort(),g(),m=null)},i.cancelToken&&i.cancelToken.subscribe(s),i.signal&&(i.signal.aborted?s():i.signal.addEventListener("abort",s)));const w=rt(i.url);if(w&&!Be.protocols.includes(w))return n(new Me("Unsupported protocol "+w+":",Me.ERR_BAD_REQUEST,e)),void g();m.send(r||null)})},Mt=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;const n=new AbortController;let i=!1;const r=function(e){if(!i){i=!0,s();const t=e instanceof Error?e:this.reason;n.abort(t instanceof Me?t:new et(t instanceof Error?t.message:t))}};let o=t&&setTimeout(()=>{o=null,r(new Me(`timeout of ${t}ms exceeded`,Me.ETIMEDOUT))},t);const s=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(r):e.removeEventListener("abort",r)}),e=null)};e.forEach(e=>{i||(e.aborted?r.call(e):e.addEventListener("abort",r,{once:!0}))});const{signal:a}=n;return a.unsubscribe=()=>ne.asap(s),a},xt=function*(e,t){let n=e.byteLength;if(!t||n<t)return void(yield e);let i,r=0;for(;r<n;)i=r+t,yield e.slice(r,i),r=i},Lt=async function*(e){if(e[Symbol.asyncIterator])return void(yield*e);const t=e.getReader();try{for(;;){const{done:e,value:n}=await t.read();if(e)break;yield n}}finally{await t.cancel()}},_t=(e,t,n,i)=>{const r=async function*(e,t){for await(const n of Lt(e))yield*xt(n,t)}(e,t);let o,s=0,a=e=>{o||(o=!0,i&&i(e))};return new ReadableStream({async pull(e){try{const{done:t,value:i}=await r.next();if(t)return a(),void e.close();let o=i.byteLength;if(n){let e=s+=o;n(e)}e.enqueue(new Uint8Array(i))}catch(e){throw a(e),e}},cancel:e=>(a(e),r.return())},{highWaterMark:2})},Nt=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,St=(e,t,n)=>t+2<n&&Nt(e.charCodeAt(t+1))&&Nt(e.charCodeAt(t+2)),Ct=e=>e<=57?e-48:(223&e)-55,Tt=e=>e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||43===e||47===e||45===e||95===e,kt=e=>9===e||10===e||12===e||13===e||32===e,At=e=>{const t=e.length;let n=0;return t>0&&61===e.charCodeAt(t-1)&&(n++,t>1&&61===e.charCodeAt(t-2)&&n++),Math.floor(3*(t-n)/4)},Dt=e=>{const t=e.length;let n=0,i=0,r=!1;for(let o=0;o<t;o++){let s=e.charCodeAt(o);37===s&&St(e,o,t)&&(s=16*Ct(e.charCodeAt(o+1))+Ct(e.charCodeAt(o+2)),o+=2),kt(s)||(61!==s?!Tt(s)||i>0?r=!0:n++:i++)}return r||i>2||i>0&&(n+i)%4!=0||n%4==1?At(e):(e=>{const t=e%4;return 3*Math.floor(e/4)+(2===t?1:3===t?2:0)})(n)},jt=(e,t)=>{if(!e||"string"!=typeof e)return 0;if(!e.startsWith("data:"))return 0;const n=e.indexOf(",");if(n<0)return 0;const i=e.slice(5,n),r=e.slice(n+1);if(/;base64/i.test(i))return t(r);let o=0;for(let e=0,t=r.length;e<t;e++){const n=r.charCodeAt(e);if(37===n&&St(r,e,t))o+=1,e+=2;else if(n<128)o+=1;else if(n<2048)o+=2;else if(n>=55296&&n<=56319&&e+1<t){const t=r.charCodeAt(e+1);t>=56320&&t<=57343?(o+=4,e++):o+=3}else o+=3}return o};const zt={cache:"default",redirect:"follow",referrer:"about:client",referrerPolicy:"",mode:"cors",integrity:"",keepalive:!1,priority:"auto",window:null},{isFunction:Et}=ne,It=e=>{if(!ne.isString(e))return e;try{return decodeURIComponent(e)}catch(t){return e}},Ot=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},$t=e=>{const t=void 0!==ne.global&&null!==ne.global?ne.global:globalThis,{ReadableStream:n,TextEncoder:i}=t;e=ne.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);const{fetch:r,Request:o,Response:s}=e,a=r?Et(r):"function"==typeof fetch,l=Et(o),c=Et(s);if(!a)return!1;const u=a&&Et(n),d=a&&("function"==typeof i?(h=new i,e=>h.encode(e)):async e=>new Uint8Array(await new o(e).arrayBuffer()));var h;const p=l&&u&&Ot(()=>{let e=!1;const t=new o(Be.origin,{body:new n,method:"POST",get duplex(){return e=!0,"half"}}),i=t.headers.has("Content-Type");return null!=t.body&&t.body.cancel(),e&&!i}),f=c&&u&&Ot(()=>ne.isReadableStream(new s("").body)),g={stream:f&&(e=>e.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!g[e]&&(g[e]=(t,n)=>{let i=t&&t[e];if(i)return i.call(t);throw new Me(`Response type '${e}' is not supported`,Me.ERR_NOT_SUPPORT,n)})});const m=async e=>{if(null==e)return 0;if(ne.isBlob(e))return e.size;if(ne.isSpecCompliantForm(e)){const t=new o(Be.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return ne.isArrayBufferView(e)||ne.isArrayBuffer(e)?e.byteLength:(ne.isURLSearchParams(e)&&(e+=""),ne.isString(e)?(await d(e)).byteLength:void 0)};return async e=>{let{url:t,method:n,data:a,signal:c,cancelToken:d,timeout:h,onDownloadProgress:y,onUploadProgress:w,responseType:b,headers:v,withCredentials:M="same-origin",fetchOptions:x,maxContentLength:L,maxBodyLength:_,maxRedirects:N}=bt(e);const S=ne.isNumber(L)&&L>-1,C=ne.isNumber(_)&&_>-1;let T=r||fetch;b=b?(b+"").toLowerCase():"text";let k=Mt([c,d&&d.toAbortSignal()],h),A=null;const D=k&&k.unsubscribe&&(()=>{k.unsubscribe()});let j,z=null;const E=()=>new Me("Request body larger than maxBodyLength limit",Me.ERR_BAD_REQUEST,e,A);try{let r;const c=(O="auth",ne.hasOwnProp(e,O)?e[O]:void 0);if(c){const e=ne.getSafeProp(c,"username")||"";r={username:e,password:ne.getSafeProp(c,"password")||""}}if((e=>{const t=e.indexOf("://");let n=e;return-1!==t&&(n=n.slice(t+3)),n.includes("@")||n.includes(":")})(t)){const e=new URL(t,Be.origin);if(!r&&(e.username||e.password)){const t=It(e.username);r={username:t,password:It(e.password)}}(e.username||e.password)&&(e.username="",e.password="",t=e.href)}if(r&&(v.delete("authorization"),v.set("Authorization","Basic "+btoa((I=(r.username||"")+":"+(r.password||""),encodeURIComponent(I).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))))))),S&&"string"==typeof t&&t.startsWith("data:")){const n=function(e){const t="string"==typeof e?e.indexOf("#"):-1;return jt(-1===t?e:e.slice(0,t),Dt)}(t);if(n>L)throw new Me("maxContentLength size of "+L+" exceeded",Me.ERR_BAD_RESPONSE,e,A)}if(C&&"get"!==n&&"head"!==n){const e=await m(a);if("number"==typeof e&&isFinite(e)&&(j=e,e>_))throw E()}const d=C&&(ne.isReadableStream(a)||ne.isStream(a)),h=(e,t,n)=>_t(e,65536,e=>{if(C&&e>_)throw z=E();t&&t(e)},n);if(p&&"get"!==n&&"head"!==n&&(w||d)){if(j=j??await(async(e,t)=>{const n=ne.toFiniteNumber(e.getContentLength());return n??m(t)})(v,a),0!==j||d){let e,n=new o(t,{method:"POST",body:a,duplex:"half"});if(ne.isFormData(a)&&(e=n.headers.get("content-type"))&&v.setContentType(e),n.body){const[e,t]=w&&lt(j,at(ct(w)))||[];a=h(n.body,e,t)}}}else if(d&&!l&&u&&"get"!==n&&"head"!==n)a=h(a);else if(d&&l&&!p&&"get"!==n&&"head"!==n)throw new Me("Stream request bodies are not supported by the current fetch implementation",Me.ERR_NOT_SUPPORT,e,A);ne.isString(M)||(M=M?"include":"omit");const $=l&&"credentials"in o.prototype;if(ne.isFormData(a)){const e=v.getContentType();e&&/^multipart\/form-data/i.test(e)&&!/boundary=/i.test(e)&&v.delete("content-type")}v.set("User-Agent","axios/1.20.0",!1);const R=null==x?x:Object.assign(Object.create(null),x);R&&(delete R.body,delete R.headers,delete R.method,delete R.signal,delete R.duplex,delete R.credentials);const P=Object.assign(Object.create(null),R,{signal:k,method:n.toUpperCase(),headers:le(v.normalize()),body:a,duplex:"half",credentials:$?M:void 0});l&&(ne.forEach(zt,(e,t)=>{void 0===P[t]&&(P[t]=e)}),void 0===P.signal&&(P.signal=null),void 0===P.body&&(P.body=null)),0===N&&(P.redirect="manual",R&&(R.redirect="manual")),A=l&&new o(t,P);let U=await(l?T(A,R):T(t,P));const F=me.from(U.headers);if(S){const t=ne.toFiniteNumber(F.getContentLength());if(null!=t&&t>L)throw new Me("maxContentLength size of "+L+" exceeded",Me.ERR_BAD_RESPONSE,e,A)}const Y=f&&("stream"===b||"response"===b);if(f&&U.body&&(y||S||Y&&D)){const t={};["status","statusText","headers"].forEach(e=>{t[e]=U[e]});const n=ne.toFiniteNumber(F.getContentLength()),[i,r]=y&&lt(n,at(ct(y),!0))||[];let o=0;const a=t=>{if(S&&(o=t,o>L))throw new Me("maxContentLength size of "+L+" exceeded",Me.ERR_BAD_RESPONSE,e,A);i&&i(t)};U=new s(_t(U.body,65536,a,()=>{r&&r(),D&&D()}),t)}b=b||"text";let Q=await g[ne.findKey(g,b)||"text"](U,e);if(S&&!f&&!Y){let t;if(null!=Q&&("number"==typeof Q.byteLength?t=Q.byteLength:"number"==typeof Q.size?t=Q.size:"string"==typeof Q&&(t="function"==typeof i?(new i).encode(Q).byteLength:Q.length)),"number"==typeof t&&t>L)throw new Me("maxContentLength size of "+L+" exceeded",Me.ERR_BAD_RESPONSE,e,A)}return!Y&&D&&D(),await new Promise((t,n)=>{tt(t,n,{data:Q,headers:me.from(U.headers),status:U.status,statusText:U.statusText,config:e,request:A})})}catch(t){if(D&&D(),k&&k.aborted&&k.reason instanceof Me){const n=k.reason;throw n.config=e,A&&(n.request=A),t!==n&&Object.defineProperty(n,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),n}if(z)throw A&&!z.request&&(z.request=A),z;if(t instanceof Me)throw A&&!t.request&&(t.request=A),t;if(t&&"TypeError"===t.name&&/Load failed|fetch/i.test(t.message)){const n=new Me("Network Error",Me.ERR_NETWORK,e,A,t&&t.response);throw Object.defineProperty(n,"cause",{__proto__:null,value:t.cause||t,writable:!0,enumerable:!1,configurable:!0}),n}throw Me.from(t,t&&t.code,e,A,t&&t.response)}var I,O}},Rt=new Map,Pt=e=>{let t=e&&e.env||{};const{fetch:n,Request:i,Response:r}=t,o=[i,r,n];let s,a,l=o.length,c=Rt;for(;l--;)s=o[l],a=c.get(s),void 0===a&&c.set(s,a=l?new Map:$t(t)),c=a;return a},Ut=(Pt(),{http:null,xhr:vt,fetch:{get:Pt}});ne.forEach(Ut,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch(e){}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});const Ft=e=>`- ${e}`,Yt=e=>ne.isFunction(e)||null===e||!1===e;const Qt={getAdapter:function(e,t){e=ne.isArray(e)?e:[e];const{length:n}=e;let i,r;const o={};for(let s=0;s<n;s++){let n;if(i=e[s],r=i,!Yt(i)&&(r=Ut[(n=String(i)).toLowerCase()],void 0===r))throw new Me(`Unknown adapter '${n}'`);if(r&&(ne.isFunction(r)||(r=r.get(t))))break;o[n||"#"+s]=r}if(!r){const e=Object.entries(o).map(([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build"));let t=n?e.length>1?"since :\n"+e.map(Ft).join("\n"):" "+Ft(e[0]):"as no adapter specified";throw new Me("There is no suitable adapter to dispatch the request "+t,Me.ERR_NOT_SUPPORT)}return r},adapters:Ut};function Wt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new et(null,e)}function Bt(e){const t=ne.toSafeFlatObject(e);Wt(t),t.headers=me.from(ne.getSafeProp(t,"headers")),t.data=Xe.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1);return Qt.getAdapter(t.adapter||Ze.adapter,t)(t).then(function(e){Wt(t),t.response=e;try{e.data=Xe.call(t,t.transformResponse,e)}finally{delete t.response}return e.headers=me.from(e.headers),e},function(e){if(!Je(e)&&(Wt(t),e&&e.response)){t.response=e.response;try{e.response.data=Xe.call(t,t.transformResponse,e.response)}finally{delete t.response}e.response.headers=me.from(e.response.headers)}return Promise.reject(e)})}const Ht={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ht[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const Vt={};Ht.transitional=function(e,t,n){function i(e,t){return"[Axios v1.20.0] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,r,o)=>{if(!1===e)throw new Me(i(r," has been removed"+(t?" in "+t:"")),Me.ERR_DEPRECATED);return t&&!Vt[r]&&(Vt[r]=!0,console.warn(i(r," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,r,o)}},Ht.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};const Gt={assertOptions:function(e,t,n){if("object"!=typeof e||null===e)throw new Me("options must be an object",Me.ERR_BAD_OPTION_VALUE);const i=Object.keys(e);let r=i.length;for(;r-- >0;){const o=i[r],s=Object.prototype.hasOwnProperty.call(t,o)?t[o]:void 0;if(s){const t=e[o],n=void 0===t||s(t,o,e);if(!0!==n)throw new Me("option "+o+" must be "+n,Me.ERR_BAD_OPTION_VALUE);continue}if(!0!==n)throw new Me("Unknown option "+o,Me.ERR_BAD_OPTION)}},validators:Ht},Kt=Gt.validators;class qt{constructor(e){this.defaults=e||{},this.interceptors={request:new $e,response:new $e}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error)try{let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const n=t.stack;let i="";if("string"==typeof n){const e=n.indexOf("\n");i=-1===e?"":n.slice(e+1)}if(e.stack){if(i){const t=i.indexOf("\n"),n=-1===t?-1:i.indexOf("\n",t+1),r=-1===n?"":i.slice(n+1);String(e.stack).endsWith(r)||(e.stack+="\n"+i)}}else e.stack=i}catch(e){}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=yt(this.defaults,t);const{transitional:n,paramsSerializer:i,headers:r}=t;void 0!==n&&Gt.assertOptions(n,{silentJSONParsing:Kt.transitional(Kt.boolean),forcedJSONParsing:Kt.transitional(Kt.boolean),clarifyTimeoutError:Kt.transitional(Kt.boolean),legacyInterceptorReqResOrdering:Kt.transitional(Kt.boolean),advertiseZstdAcceptEncoding:Kt.transitional(Kt.boolean),validateStatusUndefinedResolves:Kt.transitional(Kt.boolean)},!1),null!=i&&(ne.isFunction(i)?t.paramsSerializer={serialize:i}:Gt.assertOptions(i,{encode:Kt.function,serialize:Kt.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),Gt.assertOptions(t,{baseUrl:Kt.spelling("baseURL"),withXsrfToken:Kt.spelling("withXSRFToken")},!0),t.method=(ne.getSafeProp(t,"method")||ne.getSafeProp(this.defaults,"method")||"get").toLowerCase();let o=r&&ne.merge(r.common,r[t.method]);r&&ne.forEach(Ge.concat("common"),e=>{delete r[e]}),t.headers=me.concat(o,r);const s=[];let a=!0;this.interceptors.request.forEach(function(e){if("function"==typeof e.runWhen&&!1===e.runWhen(t))return;a=a&&e.synchronous;const n=t.transitional||Re;n&&n.legacyInterceptorReqResOrdering?s.unshift(e.fulfilled,e.rejected):s.push(e.fulfilled,e.rejected)});const l=[];let c;this.interceptors.response.forEach(function(e){l.push(e.fulfilled,e.rejected)});let u,d=0;if(!a){const e=[Bt.bind(this),void 0];for(e.unshift(...s),e.push(...l),u=e.length,c=Promise.resolve(t);d<u;)c=c.then(e[d++],e[d++]);return c}u=s.length;let h=t;for(;d<u;){const e=s[d++],t=s[d++];try{h=e?e(h):h}catch(e){if(!t){c=Promise.reject(e);break}try{const n=t.call(this,e);ne.isThenable(n)&&(c=Promise.resolve(n).then(()=>Bt.call(this,h)))}catch(e){c=Promise.reject(e)}break}}if(!c)try{c=Bt.call(this,h)}catch(e){c=Promise.reject(e)}for(d=0,u=l.length;d<u;)c=c.then(l[d++],l[d++]);return c}getUri(e){return je(gt((e=yt(this.defaults,e)).baseURL,e.url,e.allowAbsoluteUrls,e),e.params,e.paramsSerializer)}}ne.forEach(["delete","get","head","options"],function(e){qt.prototype[e]=function(t,n){return this.request(yt(n||{},{method:e,url:t,data:n&&ne.hasOwnProp(n,"data")?n.data:void 0}))}}),ne.forEach(["post","put","patch","query"],function(e){function t(t){return function(n,i,r){return this.request(yt(r||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:i}))}}qt.prototype[e]=t(),"query"!==e&&(qt.prototype[e+"Form"]=t(!0))});const Zt=qt;class Xt{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise(function(e){t=e});const n=this;this.promise.then(e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t;const i=new Promise(e=>{n.subscribe(e),t=e}).then(e);return i.cancel=function(){n.unsubscribe(t)},i},e(function(e,i,r){n.reason||(n.reason=new et(e,i,r),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new Xt(function(t){e=t}),cancel:e}}}const Jt=Xt;const en={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,ContentTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,UnprocessableContent:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerReturnsAnUnknownError:520,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(en).forEach(([e,t])=>{void 0===en[t]&&(en[t]=e)});const tn=en;const nn=function e(t){const n=new Zt(t),i=r(Zt.prototype.request,n);return ne.extend(i,Zt.prototype,n,{allOwnKeys:!0}),ne.extend(i,n,null,{allOwnKeys:!0}),i.create=function(n){return e(yt(t,n))},i}(Ze);nn.Axios=Zt,nn.CanceledError=et,nn.CancelToken=Jt,nn.isCancel=Je,nn.VERSION="1.20.0",nn.toFormData=Se,nn.AxiosError=Me,nn.Cancel=nn.CanceledError,nn.all=function(e){return Promise.all(e)},nn.spread=function(e){return function(t){return e.apply(null,t)}},nn.isAxiosError=function(e){return ne.isObject(e)&&!0===e.isAxiosError},nn.mergeConfig=yt,nn.AxiosHeaders=me,nn.formToJSON=e=>Ve(ne.isHTMLForm(e)?new FormData(e):e),nn.getAdapter=Qt.getAdapter,nn.HttpStatusCode=tn,nn.default=nn;const rn=nn},72635(e,t,n){"use strict";const i=e=>"string"==typeof e,r=()=>{let e,t;const n=new Promise((n,i)=>{e=n,t=i});return n.resolve=e,n.reject=t,n},o=e=>null==e?"":String(e),s=/###/g,a=e=>e&&e.includes("###")?e.replace(s,"."):e,l=e=>!e||i(e),c=(e,t,n)=>{const r=i(t)?t.split("."):t;let o=0;for(;o<r.length-1;){if(l(e))return{};const t=a(r[o]);!e[t]&&n&&(e[t]=new n),e=Object.prototype.hasOwnProperty.call(e,t)?e[t]:{},++o}return l(e)?{}:{obj:e,k:a(r[o])}},u=(e,t,n)=>{const{obj:i,k:r}=c(e,t,Object);if(void 0!==i||1===t.length)return void(i[r]=n);let o=t[t.length-1],s=t.slice(0,t.length-1),a=c(e,s,Object);for(;void 0===a.obj&&s.length;)o=`${s[s.length-1]}.${o}`,s=s.slice(0,s.length-1),a=c(e,s,Object),a?.obj&&void 0!==a.obj[`${a.k}.${o}`]&&(a.obj=void 0);a.obj[`${a.k}.${o}`]=n},d=(e,t)=>{const{obj:n,k:i}=c(e,t);if(n&&Object.prototype.hasOwnProperty.call(n,i))return n[i]},h=(e,t,n)=>{for(const r in t)"__proto__"!==r&&"constructor"!==r&&(Object.prototype.hasOwnProperty.call(e,r)?i(e[r])||e[r]instanceof String||i(t[r])||t[r]instanceof String?n&&(e[r]=t[r]):h(e[r],t[r],n):e[r]=t[r]);return e},p=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),f={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},g=e=>i(e)?e.replace(/[&<>"'\/]/g,e=>f[e]):e;const m=[" ",",","?","!",";"],y=new class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const t=this.regExpMap.get(e);if(void 0!==t)return t;const n=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,n),this.regExpQueue.push(e),n}}(20),w=(e,t,n=".")=>{if(!e)return;if(e[t]){if(!Object.prototype.hasOwnProperty.call(e,t))return;return e[t]}const i=t.split(n);let r=e;for(let e=0;e<i.length;){if(!r||"object"!=typeof r)return;let t,o="";for(let s=e;s<i.length;++s)if(s!==e&&(o+=n),o+=i[s],t=r[o],void 0!==t){if(["string","number","boolean"].includes(typeof t)&&s<i.length-1)continue;e+=s-e+1;break}r=t}return r},b=e=>e?.replace(/_/g,"-"),v={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console?.[e]?.apply?.(console,t)}};class M{constructor(e,t={}){this.init(e,t)}init(e,t={}){this.prefix=t.prefix||"i18next:",this.logger=e||v,this.options=t,this.debug=t.debug}log(...e){return this.forward(e,"log","",!0)}warn(...e){return this.forward(e,"warn","",!0)}error(...e){return this.forward(e,"error","")}deprecate(...e){return this.forward(e,"warn","WARNING DEPRECATED: ",!0)}forward(e,t,n,r){return r&&!this.debug?null:(e=e.map(e=>i(e)?e.replace(/[\r\n\x00-\x1F\x7F]/g," "):e),i(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(e){return new M(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return(e=e||this.options).prefix=e.prefix||this.prefix,new M(this.logger,e)}}var x=new M;class L{constructor(){this.observers={}}on(e,t){return e.split(" ").forEach(e=>{this.observers[e]||(this.observers[e]=new Map);const n=this.observers[e].get(t)||0;this.observers[e].set(t,n+1)}),this}off(e,t){this.observers[e]&&(t?this.observers[e].delete(t):delete this.observers[e])}once(e,t){const n=(...i)=>{t(...i),this.off(e,n)};return this.on(e,n),this}emit(e,...t){if(this.observers[e]){Array.from(this.observers[e].entries()).forEach(([e,n])=>{for(let i=0;i<n;i++)e(...t)})}if(this.observers["*"]){Array.from(this.observers["*"].entries()).forEach(([n,i])=>{for(let r=0;r<i;r++)n(e,...t)})}}}class _ extends L{constructor(e,t={ns:["translation"],defaultNS:"translation"}){super(),this.data=e||{},this.options=t,void 0===this.options.keySeparator&&(this.options.keySeparator="."),void 0===this.options.ignoreJSONStructure&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.includes(e)||this.options.ns.push(e)}removeNamespaces(e){const t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,n,r={}){const o=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,s=void 0!==r.ignoreJSONStructure?r.ignoreJSONStructure:this.options.ignoreJSONStructure;let a;e.includes(".")?a=e.split("."):(a=[e,t],n&&(Array.isArray(n)?a.push(...n):i(n)&&o?a.push(...n.split(o)):a.push(n)));const l=d(this.data,a);return l||t||n||!e.includes(".")||(e=a[0],t=a[1],n=a.slice(2).join(".")),!l&&s&&i(n)?w(this.data?.[e]?.[t],n,o):l}addResource(e,t,n,i,r={silent:!1}){const o=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator;let s=[e,t];n&&(s=s.concat(o?n.split(o):n)),e.includes(".")&&(s=e.split("."),i=t,t=s[1]),this.addNamespaces(t),u(this.data,s,i),r.silent||this.emit("added",e,t,n,i)}addResources(e,t,n,r={silent:!1}){for(const r in n)(i(n[r])||Array.isArray(n[r]))&&this.addResource(e,t,r,n[r],{silent:!0});r.silent||this.emit("added",e,t,n)}addResourceBundle(e,t,n,i,r,o={silent:!1,skipCopy:!1}){let s=[e,t];e.includes(".")&&(s=e.split("."),i=n,n=t,t=s[1]),this.addNamespaces(t);let a=d(this.data,s)||{};o.skipCopy||(n=JSON.parse(JSON.stringify(n))),i?h(a,n,r):a={...a,...n},u(this.data,s,a),o.silent||this.emit("added",e,t,n)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}hasResourceBundle(e,t){return void 0!==this.getResource(e,t)}getResourceBundle(e,t){return t||(t=this.options.defaultNS),this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(e=>t[e]&&Object.keys(t[e]).length>0)}toJSON(){return this.data}}var N={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,i,r){return e.forEach(e=>{t=this.processors[e]?.process(t,n,i,r)??t}),t}};const S=Symbol("i18next/PATH_KEY");function C(e,t){const{[S]:n}=e(function(){const e=[],t=Object.create(null);let n;return t.get=(i,r)=>(n?.revoke?.(),r===S?e:(e.push(r),n=Proxy.revocable(i,t),n.proxy)),Proxy.revocable(Object.create(null),t).proxy}()),i=t?.keySeparator??".",r=t?.nsSeparator??":",o="strict"===t?.enableSelector;if(n.length>1&&r){const e=t?.ns,s=o?Array.isArray(e)?e:e?[e]:null:Array.isArray(e)?e:null;if(s){if((o?s:s.length>1?s.slice(1):[]).includes(n[0]))return`${n[0]}${r}${n.slice(1).join(i)}`}}return n.join(i)}const T=e=>!i(e)&&"boolean"!=typeof e&&"number"!=typeof e;class k extends L{constructor(e,t={}){super(),((e,t,n)=>{e.forEach(e=>{t[e]&&(n[e]=t[e])})})(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=t,void 0===this.options.keySeparator&&(this.options.keySeparator="."),this.logger=x.create("translator"),this.checkedLoadedFor={}}changeLanguage(e){e&&(this.language=e)}exists(e,t={interpolation:{}}){const n={...t};if(null==e)return!1;const i=this.resolve(e,n);if(void 0===i?.res)return!1;const r=T(i.res);return!1!==n.returnObjects||!r}extractFromKey(e,t){let n=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");const r=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator;let o=t.ns||this.options.defaultNS||[];const s=n&&e.includes(n),a=!(this.options.userDefinedKeySeparator||t.keySeparator||this.options.userDefinedNsSeparator||t.nsSeparator||((e,t,n)=>{t=t||"",n=n||"";const i=m.filter(e=>!t.includes(e)&&!n.includes(e));if(0===i.length)return!0;const r=y.getRegExp(`(${i.map(e=>"?"===e?"\\?":e).join("|")})`);let o=!r.test(e);if(!o){const t=e.indexOf(n);t>0&&!r.test(e.substring(0,t))&&(o=!0)}return o})(e,n,r));if(s&&!a){const t=e.match(this.interpolator.nestingRegexp);if(t&&t.length>0)return{key:e,namespaces:i(o)?[o]:o};const s=e.split(n);(n!==r||n===r&&this.options.ns.includes(s[0]))&&(o=s.shift()),e=s.join(r)}return{key:e,namespaces:i(o)?[o]:o}}translate(e,t,n){let r="object"==typeof t?{...t}:t;if("object"!=typeof r&&this.options.overloadTranslationOptionHandler&&(r=this.options.overloadTranslationOptionHandler(arguments)),"object"==typeof r&&(r={...r}),r||(r={}),null==e)return"";"function"==typeof e&&(e=C(e,{...this.options,...r})),Array.isArray(e)||(e=[String(e)]),e=e.map(e=>"function"==typeof e?C(e,{...this.options,...r}):String(e));const o=void 0!==r.returnDetails?r.returnDetails:this.options.returnDetails,s=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,{key:a,namespaces:l}=this.extractFromKey(e[e.length-1],r),c=l[l.length-1];let u=void 0!==r.nsSeparator?r.nsSeparator:this.options.nsSeparator;void 0===u&&(u=":");const d=r.lng||this.language,h=r.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if("cimode"===d?.toLowerCase())return h?o?{res:`${c}${u}${a}`,usedKey:a,exactUsedKey:a,usedLng:d,usedNS:c,usedParams:this.getUsedParamsDetails(r)}:`${c}${u}${a}`:o?{res:a,usedKey:a,exactUsedKey:a,usedLng:d,usedNS:c,usedParams:this.getUsedParamsDetails(r)}:a;const p=this.resolve(e,r);let f=p?.res;const g=p?.usedKey||a,m=p?.exactUsedKey||a,y=void 0!==r.joinArrays?r.joinArrays:this.options.joinArrays,w=!this.i18nFormat||this.i18nFormat.handleAsObject,b=void 0!==r.count&&!i(r.count),v=k.hasDefaultValue(r),M=b?this.pluralResolver.getSuffix(d,r.count,r):"",x=r.ordinal&&b?this.pluralResolver.getSuffix(d,r.count,{ordinal:!1}):"",L=b&&!r.ordinal&&0===r.count,_=L&&r[`defaultValue${this.options.pluralSeparator}zero`]||r[`defaultValue${M}`]||r[`defaultValue${x}`]||r.defaultValue;let N=f;w&&!f&&v&&(N=_);const S=T(N),A=Object.prototype.toString.apply(N);if(!(w&&N&&S)||["[object Number]","[object Function]","[object RegExp]"].includes(A)||i(y)&&Array.isArray(N))if(w&&i(y)&&Array.isArray(f))f=f.join(y),f&&(f=this.extendTranslation(f,e,r,n));else{let t=!1,i=!1;!this.isValidLookup(f)&&v&&(t=!0,f=_),this.isValidLookup(f)||(i=!0,f=a);const o=(r.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&i?void 0:f,l=v&&_!==f&&this.options.updateMissing;if(i||t||l){if(this.logger.log(l?"updateKey":"missingKey",d,c,b&&!l?`${a}${this.pluralResolver.getSuffix(d,r.count,r)}`:a,l?_:f),s){const e=this.resolve(a,{...r,keySeparator:!1});e&&e.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let e=[];const t=this.languageUtils.getFallbackCodes(this.options.fallbackLng,r.lng||this.language);if("fallback"===this.options.saveMissingTo&&t&&t[0])for(let n=0;n<t.length;n++)e.push(t[n]);else"all"===this.options.saveMissingTo?e=this.languageUtils.toResolveHierarchy(r.lng||this.language):e.push(r.lng||this.language);const n=(e,t,n)=>{const i=v&&n!==f?n:o;this.options.missingKeyHandler?this.options.missingKeyHandler(e,c,t,i,l,r):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(e,c,t,i,l,r),this.emit("missingKey",e,c,t,f)};this.options.saveMissing&&(this.options.saveMissingPlurals&&b?e.forEach(e=>{const t=this.pluralResolver.getSuffixes(e,r);L&&r[`defaultValue${this.options.pluralSeparator}zero`]&&!t.includes(`${this.options.pluralSeparator}zero`)&&t.push(`${this.options.pluralSeparator}zero`),t.forEach(t=>{n([e],a+t,r[`defaultValue${t}`]||_)})}):n(e,a,_))}f=this.extendTranslation(f,e,r,p,n),i&&f===a&&this.options.appendNamespaceToMissingKey&&(f=`${c}${u}${a}`),(i||t)&&this.options.parseMissingKeyHandler&&(f=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${c}${u}${a}`:a,t?f:void 0,r))}else{if(!r.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,N,{...r,ns:l}):`key '${a} (${this.language})' returned an object instead of string.`;return o?(p.res=e,p.usedParams=this.getUsedParamsDetails(r),p):e}if(s){const e=Array.isArray(N),t=e?[]:{},n=e?m:g;for(const e in N)if(Object.prototype.hasOwnProperty.call(N,e)){const i=`${n}${s}${e}`;t[e]=v&&!f?this.translate(i,{...r,defaultValue:T(_)?_[e]:void 0,joinArrays:!1,ns:l}):this.translate(i,{...r,joinArrays:!1,ns:l}),t[e]===i&&(t[e]=N[e])}f=t}}return o?(p.res=f,p.usedParams=this.getUsedParamsDetails(r),p):f}extendTranslation(e,t,n,r,o){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});const s=i(e)&&(void 0!==n?.interpolation?.skipOnVariables?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let a;if(s){const t=e.match(this.interpolator.nestingRegexp);a=t&&t.length}let l=n.replace&&!i(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(l={...this.options.interpolation.defaultVariables,...l}),e=this.interpolator.interpolate(e,l,n.lng||this.language||r.usedLng,n),s){const t=e.match(this.interpolator.nestingRegexp);a<(t&&t.length)&&(n.nest=!1)}!n.lng&&r&&r.res&&(n.lng=this.language||r.usedLng),!1!==n.nest&&(e=this.interpolator.nest(e,(...e)=>o?.[0]!==e[0]||n.context?this.translate(...e,t):(this.logger.warn(`It seems you are nesting recursively key: ${e[0]} in key: ${t[0]}`),null),n)),n.interpolation&&this.interpolator.reset()}const s=n.postProcess||this.options.postProcess,a=i(s)?[s]:s;return null!=e&&a?.length&&!1!==n.applyPostProcessor&&(e=N.handle(a,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),e}resolve(e,t={}){let n,r,o,s,a;return i(e)&&(e=[e]),Array.isArray(e)&&(e=e.map(e=>"function"==typeof e?C(e,{...this.options,...t}):e)),e.forEach(e=>{if(this.isValidLookup(n))return;const l=this.extractFromKey(e,t),c=l.key;r=c;let u=l.namespaces;this.options.fallbackNS&&(u=u.concat(this.options.fallbackNS));const d=void 0!==t.count&&!i(t.count),h=d&&!t.ordinal&&0===t.count,p=void 0!==t.context&&(i(t.context)||"number"==typeof t.context)&&""!==t.context,f=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);u.forEach(e=>{this.isValidLookup(n)||(a=e,this.checkedLoadedFor[`${f[0]}-${e}`]||!this.utils?.hasLoadedNamespace||this.utils?.hasLoadedNamespace(a)||(this.checkedLoadedFor[`${f[0]}-${e}`]=!0,this.logger.warn(`key "${r}" for languages "${f.join(", ")}" won't get resolved as namespace "${a}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),f.forEach(i=>{if(this.isValidLookup(n))return;s=i;const r=[c];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(r,c,i,e,t);else{let e;d&&(e=this.pluralResolver.getSuffix(i,t.count,t));const n=`${this.options.pluralSeparator}zero`,o=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(d&&(t.ordinal&&e.startsWith(o)&&r.push(c+e.replace(o,this.options.pluralSeparator)),r.push(c+e),h&&r.push(c+n)),p){const i=`${c}${this.options.contextSeparator||"_"}${t.context}`;r.push(i),d&&(t.ordinal&&e.startsWith(o)&&r.push(i+e.replace(o,this.options.pluralSeparator)),r.push(i+e),h&&r.push(i+n))}}let a;for(;a=r.pop();)this.isValidLookup(n)||(o=a,n=this.getResource(i,e,a,t))}))})}),{res:n,usedKey:r,exactUsedKey:o,usedLng:s,usedNS:a}}isValidLookup(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}getResource(e,t,n,i={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,t,n,i):this.resourceStore.getResource(e,t,n,i)}getUsedParamsDetails(e={}){const t=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],n=e.replace&&!i(e.replace);let r=n?e.replace:e;if(n&&void 0!==e.count&&(r.count=e.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(const e of t)delete r[e]}return r}static hasDefaultValue(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&t.startsWith("defaultValue")&&void 0!==e[t])return!0;return!1}}class A{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=x.create("languageUtils")}getScriptPartFromCode(e){if(!(e=b(e))||!e.includes("-"))return null;const t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}getLanguagePartFromCode(e){if(!(e=b(e))||!e.includes("-"))return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(i(e)&&e.includes("-")){let t;try{t=Intl.getCanonicalLocales(e)[0]}catch(e){}return t&&this.options.lowerCaseLng&&(t=t.toLowerCase()),t||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.includes(e)}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(e=>{if(t)return;const n=this.formatLanguageCode(e);this.options.supportedLngs&&!this.isSupportedCode(n)||(t=n)}),!t&&this.options.supportedLngs&&e.forEach(e=>{if(t)return;const n=this.getScriptPartFromCode(e);if(this.isSupportedCode(n))return t=n;const i=this.getLanguagePartFromCode(e);if(this.isSupportedCode(i))return t=i;t=this.options.supportedLngs.find(e=>e===i||!(!e.includes("-")&&!i.includes("-"))&&(!(!e.includes("-")||i.includes("-")||e.slice(0,e.indexOf("-"))!==i)||!!(e.startsWith(i)&&i.length>1)))}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),i(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}toResolveHierarchy(e,t){const n=this.getFallbackCodes((!1===t?[]:t)||this.options.fallbackLng||[],e),r=[],o=e=>{e&&(this.isSupportedCode(e)?r.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return i(e)&&(e.includes("-")||e.includes("_"))?("languageOnly"!==this.options.load&&o(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&o(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&o(this.getLanguagePartFromCode(e))):i(e)&&o(this.formatLanguageCode(e)),n.forEach(e=>{r.includes(e)||o(this.formatLanguageCode(e))}),r}}const D={zero:0,one:1,two:2,few:3,many:4,other:5},j={select:e=>1===e?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class z{constructor(e,t={}){this.languageUtils=e,this.options=t,this.logger=x.create("pluralResolver"),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(e,t={}){const n=b("dev"===e?"en":e),i=t.ordinal?"ordinal":"cardinal",r=JSON.stringify({cleanedCode:n,type:i});if(r in this.pluralRulesCache)return this.pluralRulesCache[r];let o;try{o=new Intl.PluralRules(n,{type:i})}catch(n){if("undefined"==typeof Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),j;if(!e.match(/-|_/))return j;const i=this.languageUtils.getLanguagePartFromCode(e);o=this.getRule(i,t)}return this.pluralRulesCache[r]=o,o}needsPlural(e,t={}){let n=this.getRule(e,t);return n||(n=this.getRule("dev",t)),n?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,t,n={}){return this.getSuffixes(e,n).map(e=>`${t}${e}`)}getSuffixes(e,t={}){let n=this.getRule(e,t);return n||(n=this.getRule("dev",t)),n?n.resolvedOptions().pluralCategories.sort((e,t)=>D[e]-D[t]).map(e=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${e}`):[]}getSuffix(e,t,n={}){const i=this.getRule(e,n);return i?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${i.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix("dev",t,n))}}const E=(e,t,n,r=".",o=!0)=>{let s=((e,t,n)=>{const i=d(e,n);return void 0!==i?i:d(t,n)})(e,t,n);return!s&&o&&i(n)&&(s=w(e,n,r),void 0===s&&(s=w(t,n,r))),s},I=e=>e.replace(/\$/g,"$$$$");class O{constructor(e={}){this.logger=x.create("interpolator"),this.options=e,this.format=e?.interpolation?.format||(e=>e),this.init(e)}init(e={}){e.interpolation||(e.interpolation={escapeValue:!0});const{escape:t,escapeValue:n,useRawValueToEscape:i,prefix:r,prefixEscaped:o,suffix:s,suffixEscaped:a,formatSeparator:l,unescapeSuffix:c,unescapePrefix:u,nestingPrefix:d,nestingPrefixEscaped:h,nestingSuffix:f,nestingSuffixEscaped:m,nestingOptionsSeparator:y,maxReplaces:w,alwaysFormat:b}=e.interpolation;this.escape=void 0!==t?t:g,this.escapeValue=void 0===n||n,this.useRawValueToEscape=void 0!==i&&i,this.prefix=r?p(r):o||"{{",this.suffix=s?p(s):a||"}}",this.formatSeparator=l||",",this.unescapePrefix=c?"":u?p(u):"-",this.unescapeSuffix=this.unescapePrefix?"":c?p(c):"",this.nestingPrefix=d?p(d):h||p("$t("),this.nestingSuffix=f?p(f):m||p(")"),this.nestingOptionsSeparator=y||",",this.maxReplaces=w||1e3,this.alwaysFormat=void 0!==b&&b,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(e,t)=>e?.source===t?(e.lastIndex=0,e):new RegExp(t,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,t,n,r){let s,a,l;const c=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},u=e=>{if(!e.includes(this.formatSeparator)){const i=E(t,c,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(i,void 0,n,{...r,...t,interpolationkey:e}):i}const i=e.split(this.formatSeparator),o=i.shift().trim(),s=i.join(this.formatSeparator).trim();return this.format(E(t,c,o,this.options.keySeparator,this.options.ignoreJSONStructure),s,n,{...r,...t,interpolationkey:o})};this.resetRegExp(),!this.escapeValue&&"string"==typeof e&&/\$t\([^)]*\{[^}]*\{\{/.test(e)&&this.logger.warn("nesting options string contains interpolated variables with escapeValue: false — if any of those values are attacker-controlled they can inject additional nesting options (e.g. redirect lng/ns). Sanitise untrusted input before passing it to t(), or keep escapeValue: true.");const d=r?.missingInterpolationHandler||this.options.missingInterpolationHandler,h=void 0!==r?.interpolation?.skipOnVariables?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>I(e)},{regex:this.regexp,safeValue:e=>this.escapeValue?I(this.escape(e)):I(e)}].forEach(t=>{for(l=0;s=t.regex.exec(e);){const n=s[1].trim();if(a=u(n),void 0===a)if("function"==typeof d){const t=d(e,s,r);a=i(t)?t:""}else if(r&&Object.prototype.hasOwnProperty.call(r,n))a="";else{if(h){a=s[0];continue}this.logger.warn(`missed to pass in variable ${n} for interpolating ${e}`),a=""}else i(a)||this.useRawValueToEscape||(a=o(a));const c=t.safeValue(a);if(e=e.replace(s[0],c),h?(t.regex.lastIndex+=a.length,t.regex.lastIndex-=s[0].length):t.regex.lastIndex=0,l++,l>=this.maxReplaces)break}}),e}nest(e,t,n={}){let r,s,a;const l=(e,t)=>{const n=this.nestingOptionsSeparator;if(!e.includes(n))return e;const i=e.split(new RegExp(`${p(n)}[ ]*{`));let r=`{${i[1]}`;e=i[0],r=this.interpolate(r,a);const o=r.match(/'/g),s=r.match(/"/g);((o?.length??0)%2==0&&!s||(s?.length??0)%2!=0)&&(r=r.replace(/'/g,'"'));try{a=JSON.parse(r),t&&(a={...t,...a})}catch(t){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,t),`${e}${n}${r}`}return a.defaultValue&&a.defaultValue.includes(this.prefix)&&delete a.defaultValue,e};for(;r=this.nestingRegexp.exec(e);){let c=[];a={...n},a=a.replace&&!i(a.replace)?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;const u=/{.*}/.test(r[1])?r[1].lastIndexOf("}")+1:r[1].indexOf(this.formatSeparator);if(-1!==u&&(c=r[1].slice(u).split(this.formatSeparator).map(e=>e.trim()).filter(Boolean),r[1]=r[1].slice(0,u)),s=t(l.call(this,r[1].trim(),a),a),s&&r[0]===e&&!i(s))return s;i(s)||(s=o(s)),s||(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),s=""),c.length&&(s=c.reduce((e,t)=>this.format(e,t,n.lng,{...n,interpolationkey:r[1].trim()}),s.trim())),e=e.replace(r[0],s),this.regexp.lastIndex=0}return e}}const $=e=>{const t={};return(n,i,r)=>{let o=r;r&&r.interpolationkey&&r.formatParams&&r.formatParams[r.interpolationkey]&&r[r.interpolationkey]&&(o={...o,[r.interpolationkey]:void 0});const s=i+JSON.stringify(o);let a=t[s];return a||(a=e(b(i),r),t[s]=a),a(n)}},R=e=>(t,n,i)=>e(b(n),i)(t);class P{constructor(e={}){this.logger=x.create("formatter"),this.options=e,this.init(e)}init(e,t={interpolation:{}}){this.formatSeparator=t.interpolation.formatSeparator||",";const n=t.cacheInBuiltFormats?$:R;this.formats={number:n((e,t)=>{const n=new Intl.NumberFormat(e,{...t});return e=>n.format(e)}),currency:n((e,t)=>{const n=new Intl.NumberFormat(e,{...t,style:"currency"});return e=>n.format(e)}),datetime:n((e,t)=>{const n=new Intl.DateTimeFormat(e,{...t});return e=>n.format(e)}),relativetime:n((e,t)=>{const n=new Intl.RelativeTimeFormat(e,{...t});return e=>n.format(e,t.range||"day")}),list:n((e,t)=>{const n=new Intl.ListFormat(e,{...t});return e=>n.format(e)})}}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=$(t)}format(e,t,n,i={}){if(!t)return e;if(null==e)return e;const r=t.split(this.formatSeparator),o=[];for(let e=0;e<r.length;e++){let t=r[e];for(;t.indexOf("(")>-1&&!t.includes(")")&&e+1<r.length;)t=`${t}${this.formatSeparator}${r[++e]}`;o.push(t)}return o.reduce((e,t)=>{const{formatName:r,formatOptions:o}=(e=>{let t=e.toLowerCase().trim();const n={};if(e.includes("(")){const i=e.split("(");t=i[0].toLowerCase().trim();const r=i[1].slice(0,-1);"currency"!==t||r.includes(":")?"relativetime"!==t||r.includes(":")?r.split(";").forEach(e=>{if(e){const[t,...i]=e.split(":"),r=i.join(":").trim().replace(/^'+|'+$/g,""),o=t.trim();n[o]||(n[o]=r),"false"===r&&(n[o]=!1),"true"===r&&(n[o]=!0),isNaN(r)||(n[o]=parseInt(r,10))}}):n.range||(n.range=r.trim()):n.currency||(n.currency=r.trim())}return{formatName:t,formatOptions:n}})(t);if(this.formats[r]){let t=e;try{const s=i?.formatParams?.[i.interpolationkey]||{},a=s.locale||s.lng||i.locale||i.lng||n;t=this.formats[r](e,a,{...o,...i,...s})}catch(e){this.logger.warn(e)}return t}return this.logger.warn(`there was no format function for ${r}`),e},e)}}class U extends L{constructor(e,t,n,i={}){super(),this.backend=e,this.store=t,this.services=n,this.languageUtils=n.languageUtils,this.options=i,this.logger=x.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=i.maxParallelReads||10,this.readingCalls=0,this.maxRetries=i.maxRetries>=0?i.maxRetries:5,this.retryTimeout=i.retryTimeout>=1?i.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(n,i.backend,i)}queueLoad(e,t,n,i){const r={},o={},s={},a={};return e.forEach(e=>{let i=!0;t.forEach(t=>{const s=`${e}|${t}`;!n.reload&&this.store.hasResourceBundle(e,t)?this.state[s]=2:this.state[s]<0||(1===this.state[s]?void 0===o[s]&&(o[s]=!0):(this.state[s]=1,i=!1,void 0===o[s]&&(o[s]=!0),void 0===r[s]&&(r[s]=!0),void 0===a[t]&&(a[t]=!0)))}),i||(s[e]=!0)}),(Object.keys(r).length||Object.keys(o).length)&&this.queue.push({pending:o,pendingCount:Object.keys(o).length,loaded:{},errors:[],callback:i}),{toLoad:Object.keys(r),pending:Object.keys(o),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(a)}}loaded(e,t,n){const i=e.split("|"),r=i[0],o=i[1];t&&this.emit("failedLoading",r,o,t),!t&&n&&this.store.addResourceBundle(r,o,n,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&n&&(this.state[e]=0);const s={};this.queue.forEach(n=>{((e,t,n)=>{const{obj:i,k:r}=c(e,t,Object);i[r]=i[r]||[],i[r].push(n)})(n.loaded,[r],o),((e,t)=>{void 0!==e.pending[t]&&(delete e.pending[t],e.pendingCount--)})(n,e),t&&n.errors.push(t),0!==n.pendingCount||n.done||(Object.keys(n.loaded).forEach(e=>{s[e]||(s[e]={});const t=n.loaded[e];t.length&&t.forEach(t=>{void 0===s[e][t]&&(s[e][t]=!0)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit("loaded",s),this.queue=this.queue.filter(e=>!e.done)}read(e,t,n,i=0,r=this.retryTimeout,o){if(!e.length)return o(null,{});if(this.readingCalls>=this.maxParallelReads)return void this.waitingReads.push({lng:e,ns:t,fcName:n,tried:i,wait:r,callback:o});this.readingCalls++;const s=(s,a)=>{if(this.readingCalls--,this.waitingReads.length>0){const e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}s&&a&&i<this.maxRetries?setTimeout(()=>{this.read(e,t,n,i+1,2*r,o)},r):o(s,a)},a=this.backend[n].bind(this.backend);if(2!==a.length)return a(e,t,s);try{const n=a(e,t);n&&"function"==typeof n.then?n.then(e=>s(null,e)).catch(s):s(null,n)}catch(e){s(e)}}prepareLoading(e,t,n={},r){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();i(e)&&(e=this.languageUtils.toResolveHierarchy(e)),i(t)&&(t=[t]);const o=this.queueLoad(e,t,n,r);if(!o.toLoad.length)return o.pending.length||r(),null;o.toLoad.forEach(e=>{this.loadOne(e)})}load(e,t,n){this.prepareLoading(e,t,{},n)}reload(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}loadOne(e,t=""){const n=e.split("|"),i=n[0],r=n[1];this.read(i,r,"read",void 0,void 0,(n,o)=>{n&&this.logger.warn(`${t}loading namespace ${r} for language ${i} failed`,n),!n&&o&&this.logger.log(`${t}loaded namespace ${r} for language ${i}`,o),this.loaded(e,n,o)})}saveMissing(e,t,n,i,r,o={},s=()=>{}){if(!this.services?.utils?.hasLoadedNamespace||this.services?.utils?.hasLoadedNamespace(t)){if(null!=n&&""!==n){if(this.backend?.create){const a={...o,isUpdate:r},l=this.backend.create.bind(this.backend);if(l.length<6)try{let r;r=5===l.length?l(e,t,n,i,a):l(e,t,n,i),r&&"function"==typeof r.then?r.then(e=>s(null,e)).catch(s):s(null,r)}catch(e){s(e)}else l(e,t,n,i,s,a)}e&&e[0]&&this.store.addResource(e[0],t,n,i)}}else this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")}}const F=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",enableSelector:!1,partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if("object"==typeof e[1]&&(t=e[1]),i(e[1])&&(t.defaultValue=e[1]),i(e[2])&&(t.tDescription=e[2]),"object"==typeof e[2]||"object"==typeof e[3]){const n=e[3]||e[2];Object.keys(n).forEach(e=>{t[e]=n[e]})}return t},interpolation:{escapeValue:!0,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),Y=e=>(i(e.ns)&&(e.ns=[e.ns]),i(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),i(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&!e.supportedLngs.includes("cimode")&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e),Q=()=>{};class W extends L{constructor(e={},t){var n;if(super(),this.options=Y(e),this.services={},this.logger=x,this.modules={external:[]},n=this,Object.getOwnPropertyNames(Object.getPrototypeOf(n)).forEach(e=>{"function"==typeof n[e]&&(n[e]=n[e].bind(n))}),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(e={},t){this.isInitializing=!0,"function"==typeof e&&(t=e,e={}),null==e.defaultNS&&e.ns&&(i(e.ns)?e.defaultNS=e.ns:e.ns.includes("translation")||(e.defaultNS=e.ns[0]));const n=F();this.options={...n,...this.options,...Y(e)},this.options.interpolation={...n.interpolation,...this.options.interpolation},void 0!==e.keySeparator&&(this.options.userDefinedKeySeparator=e.keySeparator),void 0!==e.nsSeparator&&(this.options.userDefinedNsSeparator=e.nsSeparator),"function"!=typeof this.options.overloadTranslationOptionHandler&&(this.options.overloadTranslationOptionHandler=n.overloadTranslationOptionHandler);const o=e=>e?"function"==typeof e?new e:e:null;if(!this.options.isClone){let e;this.modules.logger?x.init(o(this.modules.logger),this.options):x.init(null,this.options),e=this.modules.formatter?this.modules.formatter:P;const t=new A(this.options);this.store=new _(this.options.resources,this.options);const n=this.services;n.logger=x,n.resourceStore=this.store,n.languageUtils=t,n.pluralResolver=new z(t,{prepend:this.options.pluralSeparator}),e&&(n.formatter=o(e),n.formatter.init&&n.formatter.init(n,this.options),this.options.interpolation.format=n.formatter.format.bind(n.formatter)),n.interpolator=new O(this.options),n.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},n.backendConnector=new U(o(this.modules.backend),n.resourceStore,n,this.options),n.backendConnector.on("*",(e,...t)=>{this.emit(e,...t)}),this.modules.languageDetector&&(n.languageDetector=o(this.modules.languageDetector),n.languageDetector.init&&n.languageDetector.init(n,this.options.detection,this.options)),this.modules.i18nFormat&&(n.i18nFormat=o(this.modules.i18nFormat),n.i18nFormat.init&&n.i18nFormat.init(this)),this.translator=new k(this.services,this.options),this.translator.on("*",(e,...t)=>{this.emit(e,...t)}),this.modules.external.forEach(e=>{e.init&&e.init(this)})}if(this.format=this.options.interpolation.format,t||(t=Q),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&"dev"!==e[0]&&(this.options.lng=e[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(e=>{this[e]=(...t)=>this.store[e](...t)});["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(e=>{this[e]=(...t)=>(this.store[e](...t),this)});const s=r(),a=()=>{const e=(e,n)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),s.resolve(n),t(e,n)};if((this.languages||this.isLanguageChangingTo)&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initAsync?a():setTimeout(a,0),s}loadResources(e,t=Q){let n=t;const r=i(e)?e:this.language;if("function"==typeof e&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if("cimode"===r?.toLowerCase()&&(!this.options.preload||0===this.options.preload.length))return n();const e=[],t=t=>{if(!t)return;if("cimode"===t)return;this.services.languageUtils.toResolveHierarchy(t).forEach(t=>{"cimode"!==t&&(e.includes(t)||e.push(t))})};if(r)t(r);else{this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(e=>t(e))}this.options.preload?.forEach?.(e=>t(e)),this.services.backendConnector.load(e,this.options.ns,e=>{e||this.resolvedLanguage||!this.language||this.setResolvedLanguage(this.language),n(e)})}else n(null)}reloadResources(e,t,n){const i=r();return"function"==typeof e&&(n=e,e=void 0),"function"==typeof t&&(n=t,t=void 0),e||(e=this.languages),t||(t=this.options.ns),n||(n=Q),this.services.backendConnector.reload(e,t,e=>{i.resolve(),n(e)}),i}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&N.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}setResolvedLanguage(e){if(e&&this.languages&&!["cimode","dev"].includes(e)){for(let e=0;e<this.languages.length;e++){const t=this.languages[e];if(!["cimode","dev"].includes(t)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}this.resolvedLanguage||this.languages.includes(e)||!this.store.hasLanguageSomeTranslations(e)||(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,t){this.isLanguageChangingTo=e;const n=r();this.emit("languageChanging",e);const o=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},s=(i,r)=>{r?this.isLanguageChangingTo===e&&(o(r),this.translator.changeLanguage(r),this.isLanguageChangingTo=void 0,this.emit("languageChanged",r),this.logger.log("languageChanged",r)):this.isLanguageChangingTo=void 0,n.resolve((...e)=>this.t(...e)),t&&t(i,(...e)=>this.t(...e))},a=t=>{e||t||!this.services.languageDetector||(t=[]);const n=i(t)?t:t&&t[0],r=this.store.hasLanguageSomeTranslations(n)?n:this.services.languageUtils.getBestMatchFromCodes(i(t)?[t]:t);r&&(this.language||o(r),this.translator.language||this.translator.changeLanguage(r),this.services.languageDetector?.cacheUserLanguage?.(r)),this.loadResources(r,e=>{s(e,r)})};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?0===this.services.languageDetector.detect.length?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e):a(this.services.languageDetector.detect()),n}getFixedT(e,t,n,r){const o=r?.scopeNs,s=(e,t,...i)=>{let r;r="object"!=typeof t?this.options.overloadTranslationOptionHandler([e,t].concat(i)):{...t},r.lng=r.lng||s.lng,r.lngs=r.lngs||s.lngs;const a=void 0!==r.ns&&null!==r.ns;r.ns=r.ns||s.ns,""!==r.keyPrefix&&(r.keyPrefix=r.keyPrefix||n||s.keyPrefix);const l={...this.options,...r};Array.isArray(o)&&!a&&(l.ns=o),"function"==typeof r.keyPrefix&&(r.keyPrefix=C(r.keyPrefix,l));const c=this.options.keySeparator||".";let u;return r.keyPrefix&&Array.isArray(e)?u=e.map(e=>("function"==typeof e&&(e=C(e,l)),`${r.keyPrefix}${c}${e}`)):("function"==typeof e&&(e=C(e,l)),u=r.keyPrefix?`${r.keyPrefix}${c}${e}`:e),this.t(u,r)};return i(e)?s.lng=e:s.lngs=e,s.ns=t,s.keyPrefix=n,s}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,t={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const n=t.lng||this.resolvedLanguage||this.languages[0],i=!!this.options&&this.options.fallbackLng,r=this.languages[this.languages.length-1];if("cimode"===n.toLowerCase())return!0;const o=(e,t)=>{const n=this.services.backendConnector.state[`${e}|${t}`];return-1===n||0===n||2===n};if(t.precheck){const e=t.precheck(this,o);if(void 0!==e)return e}return!!this.hasResourceBundle(n,e)||(!(this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages))||!(!o(n,e)||i&&!o(r,e)))}loadNamespaces(e,t){const n=r();return this.options.ns?(i(e)&&(e=[e]),e.forEach(e=>{this.options.ns.includes(e)||this.options.ns.push(e)}),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){const n=r();i(e)&&(e=[e]);const o=this.options.preload||[],s=e.filter(e=>!o.includes(e)&&this.services.languageUtils.isSupportedCode(e));return s.length?(this.options.preload=o.concat(s),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!e)return"rtl";try{const t=new Intl.Locale(e);if(t&&t.getTextInfo){const e=t.getTextInfo();if(e&&e.direction)return e.direction}}catch(e){}const t=this.services?.languageUtils||new A(F());return e.toLowerCase().indexOf("-latn")>1?"ltr":["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].includes(t.getLanguagePartFromCode(e))||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(e={},t){const n=new W(e,t);return n.createInstance=W.createInstance,n}cloneInstance(e={},t=Q){const n=e.forkResourceStore;n&&delete e.forkResourceStore;const i={...this.options,...e,isClone:!0},r=new W(i);void 0===e.debug&&void 0===e.prefix||(r.logger=r.logger.clone(e));if(["store","services","language"].forEach(e=>{r[e]=this[e]}),r.services={...this.services},r.services.utils={hasLoadedNamespace:r.hasLoadedNamespace.bind(r)},n){const e=Object.keys(this.store.data).reduce((e,t)=>(e[t]={...this.store.data[t]},e[t]=Object.keys(e[t]).reduce((n,i)=>(n[i]={...e[t][i]},n),e[t]),e),{});r.store=new _(e,i),r.services.resourceStore=r.store}if(e.interpolation){const t={...F().interpolation,...this.options.interpolation,...e.interpolation},n={...i,interpolation:t};r.services.interpolator=new O(n)}return r.translator=new k(r.services,i),r.translator.on("*",(e,...t)=>{r.emit(e,...t)}),r.init(i,t),r.translator.options=i,r.translator.backendConnector.services.utils={hasLoadedNamespace:r.hasLoadedNamespace.bind(r)},r}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const B=W.createInstance();B.createInstance,B.dir,B.init,B.loadResources,B.reloadResources,B.use,B.changeLanguage,B.getFixedT,B.t,B.exists,B.setDefaultNamespace,B.hasLoadedNamespace,B.loadNamespaces,B.loadLanguages;n.d(t,["Ay",0,B])},34843(e,t,n){"use strict";n.d(t,{Pj:()=>a,Xr:()=>f,fp:()=>g,md:()=>p});var i=n(96540),r=n(52035),o=n(90868);const s=(0,i.createContext)(void 0);function a(e){const t=(0,i.useContext)(s);return(null==e?void 0:e.store)||t||(0,r.zp)()}const l=e=>"function"==typeof(null==e?void 0:e.then),c=e=>{e.status||(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}))},u=i.use||(e=>{if("pending"===e.status)throw e;if("fulfilled"===e.status)return e.value;throw"rejected"===e.status?e.reason:(c(e),e)}),d=new WeakMap,h=(e,t,n)=>{const i=(0,o.h7)(e),r=i[26];let s=d.get(t);return s||(s=new Promise((o,a)=>{let c=t;const u=e=>t=>{c===e&&o(t)},h=e=>t=>{c===e&&a(t)},p=()=>{try{const t=n();l(t)?(d.set(t,s),c=t,t.then(u(t),h(t)),r(i,e,t,p)):o(t)}catch(e){a(e)}};t.then(u(t),h(t)),r(i,e,t,p)}),d.set(t,s)),s};function p(e,t){const{delay:n,unstable_promiseStatus:r=!i.use}=t||{},o=a(t),[[s,d,p],f]=(0,i.useReducer)(t=>{const n=o.get(e);return Object.is(t[0],n)&&t[1]===o&&t[2]===e?t:[n,o,e]},void 0,()=>[o.get(e),o,e]);let g=s;if(d===o&&p===e||(f(),g=o.get(e)),(0,i.useEffect)(()=>{const t=o.sub(e,()=>{if(r)try{const t=o.get(e);l(t)&&c(h(o,t,()=>o.get(e)))}catch(e){}if("number"==typeof n)return console.warn("[DEPRECATED] delay option is deprecated and will be removed in v3.\n\nMigration guide:\n\nCreate a custom hook like the following.\n\nfunction useAtomValueWithDelay<Value>(\n atom: Atom<Value>,\n options: { delay: number },\n): Value {\n const { delay } = options\n const store = useStore(options)\n const [value, setValue] = useState(() => store.get(atom))\n useEffect(() => {\n const unsub = store.sub(atom, () => {\n setTimeout(() => setValue(store.get(atom)), delay)\n })\n return unsub\n }, [store, atom, delay])\n return value\n}\n"),void setTimeout(f,n);f()});return f(),t},[o,e,n,r]),(0,i.useDebugValue)(g),l(g)){const t=h(o,g,()=>o.get(e));return r&&c(t),u(t)}return g}function f(e,t){const n=a(t);return(0,i.useCallback)((...t)=>{if(!("write"in e))throw new Error("not writable atom");return n.set(e,...t)},[n,e])}function g(e,t){return[p(e,t),f(e,t)]}},52035(e,t,n){"use strict";n.d(t,{eU:()=>a,y$:()=>u,zp:()=>d});var i=n(90868);let r,o,s=0;function a(e,t){const n="atom"+ ++s,i={toString(){return this.debugLabel?n+":"+this.debugLabel:n}};return"function"==typeof e?i.read=e:(i.init=e,i.read=l,i.write=c),t&&(i.write=t),i}function l(e){return e(this)}function c(e,t,n){return t(this,"function"==typeof n?n(e(this)):n)}function u(){return r?r():(0,i._b)()}function d(){return o||(o=u(),globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=o),globalThis.__JOTAI_DEFAULT_STORE__!==o&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044")),o}},90868(e,t,n){"use strict";function i(e){return"init"in e}function r(e){return"function"==typeof e.write}function o(e){return"v"in e||"e"in e}function s(e){if("e"in e)throw e.e;if(!("v"in e))throw new Error("[Bug] atom state is not initialized");return e.v}function a(e){return"function"==typeof(null==e?void 0:e.then)}function l(e,t,n){if(!n.p.has(e)){n.p.add(e);const i=()=>n.p.delete(e);t.then(i,i)}}function c(e,t,n){const i=n.get(e),r=null==i?void 0:i.t,o=t.p;if(!(null==r?void 0:r.size))return o;if(!o.size)return r;const s=new Set(r);for(const e of o)s.add(e);return s}n.d(t,{_b:()=>j,h7:()=>D});const u=(e,t,n,...i)=>n.read(...i),d=(e,t,n,...i)=>n.write(...i),h=(e,t,n)=>n.INTERNAL_onInit(t),p=(e,t,n,i)=>{var r;return null==(r=n.onMount)?void 0:r.call(n,i)},f=(e,t,n)=>{var i;const r=e[0];let o=r.get(n);if(!o){const s=e[6],a=e[9];o={d:new Map,p:new Set,n:0},r.set(n,o),null==(i=s.i)||i.call(s,n),function(e){return!!e.INTERNAL_onInit}(n)&&a(e,t,n)}return o},g=(e,t)=>{var n;const i=e[1],r=e[3],o=e[4],s=e[5],a=e[6],l=e[13];if(!(a.f||r.size||o.size||s.size))return;const c=[],u=e=>{try{e()}catch(e){c.push(e)}};do{a.f&&u(a.f);const c=new Set;for(const e of r){const t=null==(n=i.get(e))?void 0:n.l;if(t)for(const e of t)c.add(e)}r.clear();for(const e of s)c.add(e);s.clear();for(const e of o)c.add(e);o.clear();for(const e of c)u(e);r.size&&l(e,t)}while(r.size||s.size||o.size);if(c.length)throw new AggregateError(c)},m=(e,t)=>{const n=e[1],i=e[2],r=e[3],o=e[11],s=e[14],a=e[17];if(!r.size)return;const l=[],u=[],d=new WeakSet,h=new WeakSet,p=[],f=[];for(const n of r)p.push(n),f.push(o(e,t,n));for(;p.length;){const r=p.length-1,s=p[r],a=f[r];if(h.has(s))p.pop(),f.pop();else if(d.has(s)){if(i.get(s)===a.n)l.push(s),u.push(a);else if(i.has(s))throw new Error("[Bug] invalidated atom exists");h.add(s),p.pop(),f.pop()}else{d.add(s);for(const i of c(s,a,n))d.has(i)||(p.push(i),f.push(o(e,t,i)))}}for(let n=l.length-1;n>=0;--n){const o=l[n],c=u[n];let d=!1;for(const e of c.d.keys())if(e!==o&&r.has(e)){d=!0;break}d&&(i.set(o,c.n),s(e,t,o),a(e,t,o)),i.delete(o)}},y=new WeakSet,w=(e,t,n)=>{var c,u;const d=e[1],h=e[2],p=e[3],f=e[6],g=e[7],m=e[11],w=e[12],b=e[13],v=e[14],M=e[16],x=e[17],L=e[20],_=e[26],N=e[28],S=m(e,t,n),C=N[0];if(o(S)){if(d.has(n)&&h.get(n)!==S.n||S.m===C)return S.m=C,S;let i=!1;for(const[n,r]of S.d)if(v(e,t,n).n!==r){i=!0;break}if(!i)return S.m=C,S}let T=!0;const k=new Set(S.d.keys()),A=()=>{for(const e of k)S.d.delete(e)},D=()=>{if(d.has(n)){const i=!p.size;x(e,t,n),i&&(b(e,t),w(e,t))}},j=r=>{var c;if(r===n){const n=m(e,t,r);if(!o(n)){if(!i(r))throw new Error("no atom init");L(e,t,r,r.init)}return s(n)}const u=v(e,t,r);try{return s(u)}finally{k.delete(r),S.d.set(r,u.n),a(S.v)&&l(n,S.v,u),d.has(n)&&(null==(c=d.get(r))||c.t.add(n)),T||D()}};let z,E;const I={get signal(){return z||(z=new AbortController),z.signal},get setSelf(){return console.warn("[DEPRECATED] setSelf is deprecated and will be removed in v3."),r(n)||console.warn("setSelf function cannot be used with read-only atom"),!E&&r(n)&&(E=(...i)=>{if(T&&console.warn("setSelf function cannot be called in sync"),!T)try{return M(e,t,n,i)}finally{b(e,t),w(e,t)}}),E}},O=S.n,$=h.get(n)===O;try{y.delete(t);const i=g(e,t,n,j,I);if(y.has(t)&&console.warn("Detected store mutation during atom read. This is not supported."),L(e,t,n,i),a(i)){_(e,t,i,()=>null==z?void 0:z.abort());const n=()=>{A(),D()};i.then(n,n)}else A();return null==(c=f.r)||c.call(f,n),S.m=C,S}catch(e){if(function(e){if(!(e instanceof Error))return!1;const t=e.name,n=e.message.toLowerCase();return("RangeError"===t||"InternalError"===t)&&(n.includes("call stack")||n.includes("too much recursion")||n.includes("stack overflow"))}(e))throw e;return delete S.v,S.e=e,++S.n,S.m=C,S}finally{T=!1,S.n!==O&&$&&(h.set(n,S.n),p.add(n),null==(u=f.c)||u.call(f,n))}},b=(e,t,n)=>{const i=e[1],r=e[2],o=e[11],s=[n];for(;s.length;){const n=s.pop(),a=o(e,t,n);for(const l of c(n,a,i)){const n=o(e,t,l);r.get(l)!==n.n&&(r.set(l,n.n),s.push(l))}}},v=(e,t,n,r)=>{const o=e[3],a=e[6],l=e[8],c=e[11],u=e[12],d=e[13],h=e[14],p=e[15],f=e[16],g=e[17],m=e[20],w=e[28];let b=!0;const v=n=>s(h(e,t,n)),M=(r,...s)=>{var l;const h=c(e,t,r);try{if(r===n){if(!i(r))throw new Error("atom not writable");y.add(t);const n=h.n,c=s[0];return m(e,t,r,c),g(e,t,r),void(n!==h.n&&(++w[0],o.add(r),p(e,t,r),null==(l=a.c)||l.call(a,r)))}return f(e,t,r,s)}finally{b||(d(e,t),u(e,t))}};try{return l(e,t,n,v,M,...r)}finally{b=!1}},M=(e,t,n)=>{var i;const r=e[1],o=e[3],s=e[6],a=e[11],l=e[15],c=e[18],u=e[19],d=a(e,t,n),h=r.get(n);if(h&&d.d.size>0){for(const[r,u]of d.d)if(!h.d.has(r)){const d=a(e,t,r);c(e,t,r).t.add(n),h.d.add(r),u!==d.n&&(o.add(r),l(e,t,r),null==(i=s.c)||i.call(s,r))}for(const i of h.d)if(!d.d.has(i)){h.d.delete(i);const r=u(e,t,i);null==r||r.t.delete(n)}}},x=(e,t,n)=>{var i;const o=e[1],s=e[4],a=e[6],l=e[10],c=e[11],u=e[12],d=e[13],h=e[14],p=e[16],f=e[18],g=c(e,t,n);let m=o.get(n);if(!m){h(e,t,n);for(const i of g.d.keys()){f(e,t,i).t.add(n)}if(m={l:new Set,d:new Set(g.d.keys()),t:new Set},o.set(n,m),r(n)&&function(e){return!!e.onMount}(n)){const i=()=>{let i=!0;const r=(...r)=>{try{return p(e,t,n,r)}finally{i||(d(e,t),u(e,t))}};try{const o=l(e,t,n,r);o&&(m.u=()=>{i=!0;try{o()}finally{i=!1}})}finally{i=!1}};s.add(i)}null==(i=a.m)||i.call(a,n)}return m},L=(e,t,n)=>{var i,r;const o=e[1],s=e[5],a=e[6],l=e[11],c=e[19],u=l(e,t,n);let d=o.get(n);if(!d||d.l.size)return d;let h=!1;for(const e of d.t)if(null==(i=o.get(e))?void 0:i.d.has(n)){h=!0;break}if(h)return d;d.u&&s.add(d.u),d=void 0,o.delete(n);for(const i of u.d.keys()){const r=c(e,t,i);null==r||r.t.delete(n)}null==(r=a.u)||r.call(a,n)},_=(e,t,n,i)=>{const r=e[11],o=e[27],s=r(e,t,n),c="v"in s,u=s.v;if(a(i))for(const o of s.d.keys())l(n,i,r(e,t,o));s.v=i,delete s.e,c&&Object.is(u,s.v)||(++s.n,a(u)&&o(e,t,u))},N=(e,t,n)=>s((0,e[14])(e,t,n)),S=(e,t,n,...i)=>{const r=e[3],o=e[12],s=e[13],a=e[16],l=r.size;try{return a(e,t,n,i)}finally{r.size!==l&&(s(e,t),o(e,t))}},C=(e,t,n,i)=>{const r=e[12],o=e[18],s=e[19],a=o(e,t,n).l;return a.add(i),r(e,t),()=>{a.delete(i),s(e,t,n),r(e,t)}},T=(e,t,n,i)=>{const r=e[25];let o=r.get(n);if(!o){o=new Set,r.set(n,o);const e=()=>r.delete(n);n.then(e,e)}o.add(i)},k=(e,t,n)=>{const i=e[25].get(n);null==i||i.forEach(e=>e())},A=new WeakMap;function D(e){const t=A.get(e);if(!t)throw new Error("Store must be created by buildStore to read its building blocks");const n=t[24];return n?n(t,e):t}function j(...e){const t={get:e=>i(n,t,e),set:(e,...i)=>r(n,t,e,...i),sub:(e,i)=>o(n,t,e,i)},n=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},u,d,h,p,f,g,m,w,b,v,M,x,L,_,N,S,C,void 0,new WeakMap,T,k,[0]].map((t,n)=>e[n]||t);A.set(t,Object.freeze(n));const i=n[21],r=n[22],o=n[23];return t}},22022(e,t,n){"use strict";n.d(t,{r9:()=>T,Bd:()=>C});var i=n(96540);n(72635),n(34915);Object.create(null);const r=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,o={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"©","&#169;":"©","&reg;":"®","&#174;":"®","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},s=e=>o[e];let a={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:e=>e.replace(r,s),transDefaultProps:void 0};let l;const c=()=>l;const u=(0,i.createContext)();class d{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(e=>{this.usedNamespaces[e]||(this.usedNamespaces[e]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}const h=(e,t,n,i)=>{const r=[n,{code:t,...i||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(r,"warn","react-i18next::",!0);w(r[0])&&(r[0]=`react-i18next:: ${r[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...r):console?.warn&&console.warn(...r)},p={},f=(e,t,n,i)=>{w(n)&&p[n]||(w(n)&&(p[n]=new Date),h(e,t,n,i))},g=(e,t)=>()=>{if(e.isInitialized)t();else{const n=()=>{setTimeout(()=>{e.off("initialized",n)},0),t()};e.on("initialized",n)}},m=(e,t,n)=>{e.loadNamespaces(t,g(e,n))},y=(e,t,n,i)=>{if(w(n)&&(n=[n]),e.options.preload&&e.options.preload.indexOf(t)>-1)return m(e,n,i);n.forEach(t=>{e.options.ns.indexOf(t)<0&&e.options.ns.push(t)}),e.loadLanguages(t,g(e,i))},w=e=>"string"==typeof e;class b extends Error{constructor(e,t,n){super(e),this.name="TranslationParserError",this.position=t,this.translationString=n,Error.captureStackTrace&&Error.captureStackTrace(this,b)}}const v={"&nbsp;":" ","&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&apos;":"'","&copy;":"©","&reg;":"®","&trade;":"™","&hellip;":"…","&ndash;":"–","&mdash;":"—","&lsquo;":"‘","&rsquo;":"’","&sbquo;":"‚","&ldquo;":"“","&rdquo;":"”","&bdquo;":"„","&dagger;":"†","&Dagger;":"‡","&bull;":"•","&prime;":"′","&Prime;":"″","&lsaquo;":"‹","&rsaquo;":"›","&sect;":"§","&para;":"¶","&middot;":"·","&ensp;":" ","&emsp;":" ","&thinsp;":" ","&euro;":"€","&pound;":"£","&yen;":"¥","&cent;":"¢","&curren;":"¤","&times;":"×","&divide;":"÷","&minus;":"−","&plusmn;":"±","&ne;":"≠","&le;":"≤","&ge;":"≥","&asymp;":"≈","&equiv;":"≡","&infin;":"∞","&int;":"∫","&sum;":"∑","&prod;":"∏","&radic;":"√","&part;":"∂","&permil;":"‰","&deg;":"°","&micro;":"µ","&larr;":"←","&uarr;":"↑","&rarr;":"→","&darr;":"↓","&harr;":"↔","&crarr;":"↵","&lArr;":"⇐","&uArr;":"⇑","&rArr;":"⇒","&dArr;":"⇓","&hArr;":"⇔","&alpha;":"α","&beta;":"β","&gamma;":"γ","&delta;":"δ","&epsilon;":"ε","&zeta;":"ζ","&eta;":"η","&theta;":"θ","&iota;":"ι","&kappa;":"κ","&lambda;":"λ","&mu;":"μ","&nu;":"ν","&xi;":"ξ","&omicron;":"ο","&pi;":"π","&rho;":"ρ","&sigma;":"σ","&tau;":"τ","&upsilon;":"υ","&phi;":"φ","&chi;":"χ","&psi;":"ψ","&omega;":"ω","&Alpha;":"Α","&Beta;":"Β","&Gamma;":"Γ","&Delta;":"Δ","&Epsilon;":"Ε","&Zeta;":"Ζ","&Eta;":"Η","&Theta;":"Θ","&Iota;":"Ι","&Kappa;":"Κ","&Lambda;":"Λ","&Mu;":"Μ","&Nu;":"Ν","&Xi;":"Ξ","&Omicron;":"Ο","&Pi;":"Π","&Rho;":"Ρ","&Sigma;":"Σ","&Tau;":"Τ","&Upsilon;":"Υ","&Phi;":"Φ","&Chi;":"Χ","&Psi;":"Ψ","&Omega;":"Ω","&Agrave;":"À","&Aacute;":"Á","&Acirc;":"Â","&Atilde;":"Ã","&Auml;":"Ä","&Aring;":"Å","&AElig;":"Æ","&Ccedil;":"Ç","&Egrave;":"È","&Eacute;":"É","&Ecirc;":"Ê","&Euml;":"Ë","&Igrave;":"Ì","&Iacute;":"Í","&Icirc;":"Î","&Iuml;":"Ï","&ETH;":"Ð","&Ntilde;":"Ñ","&Ograve;":"Ò","&Oacute;":"Ó","&Ocirc;":"Ô","&Otilde;":"Õ","&Ouml;":"Ö","&Oslash;":"Ø","&Ugrave;":"Ù","&Uacute;":"Ú","&Ucirc;":"Û","&Uuml;":"Ü","&Yacute;":"Ý","&THORN;":"Þ","&szlig;":"ß","&agrave;":"à","&aacute;":"á","&acirc;":"â","&atilde;":"ã","&auml;":"ä","&aring;":"å","&aelig;":"æ","&ccedil;":"ç","&egrave;":"è","&eacute;":"é","&ecirc;":"ê","&euml;":"ë","&igrave;":"ì","&iacute;":"í","&icirc;":"î","&iuml;":"ï","&eth;":"ð","&ntilde;":"ñ","&ograve;":"ò","&oacute;":"ó","&ocirc;":"ô","&otilde;":"õ","&ouml;":"ö","&oslash;":"ø","&ugrave;":"ù","&uacute;":"ú","&ucirc;":"û","&uuml;":"ü","&yacute;":"ý","&thorn;":"þ","&yuml;":"ÿ","&iexcl;":"¡","&iquest;":"¿","&fnof;":"ƒ","&circ;":"ˆ","&tilde;":"˜","&OElig;":"Œ","&oelig;":"œ","&Scaron;":"Š","&scaron;":"š","&Yuml;":"Ÿ","&ordf;":"ª","&ordm;":"º","&macr;":"¯","&acute;":"´","&cedil;":"¸","&sup1;":"¹","&sup2;":"²","&sup3;":"³","&frac14;":"¼","&frac12;":"½","&frac34;":"¾","&spades;":"♠","&clubs;":"♣","&hearts;":"♥","&diams;":"♦","&loz;":"◊","&oline;":"‾","&frasl;":"⁄","&weierp;":"℘","&image;":"ℑ","&real;":"ℜ","&alefsym;":"ℵ"},M=new RegExp(Object.keys(v).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),"g"),x=(e,t=[])=>{if(!e)return[];const n=(e=>{const t=[];let n=0,i="";const r=()=>{i&&(t.push({type:"Text",value:i,position:n-i.length}),i="")};for(;n<e.length;){const o=e[n];if("<"===o){const s=e.slice(n).match(/^<(\d+)>/);if(s)r(),t.push({type:"TagOpen",value:s[0],position:n,tagNumber:parseInt(s[1],10)}),n+=s[0].length;else{const s=e.slice(n).match(/^<\/(\d+)>/);s?(r(),t.push({type:"TagClose",value:s[0],position:n,tagNumber:parseInt(s[1],10)}),n+=s[0].length):(i+=o,n+=1)}}else i+=o,n+=1}return r(),t})(e),r=[],o=[],s=new Set;if(n.forEach(n=>{switch(n.type){case"Text":{const e=n.value.replace(M,e=>v[e]).replace(/&#(\d+);/g,(e,t)=>String.fromCharCode(parseInt(t,10))).replace(/&#x([0-9a-fA-F]+);/g,(e,t)=>String.fromCharCode(parseInt(t,16)));(o.length>0?o[o.length-1].children:r).push(e)}break;case"TagOpen":{const{tagNumber:e}=n,i=(()=>{if(0===o.length)return t;const e=o[o.length-1];return e.declaration.props?.children&&Array.isArray(e.declaration.props.children)?e.declaration.props.children:e.declarations})(),a=i[e];if(!a){s.add(e);const t=`<${e}>`;(o.length>0?o[o.length-1].children:r).push(t);break}o.push({tagNumber:e,children:[],position:n.position,declaration:a,declarations:i})}break;case"TagClose":{const{tagNumber:t}=n;if(s.has(t)){const e=`</${t}>`;(o.length>0?o[o.length-1].children:r).push(e),s.delete(t);break}if(0===o.length)throw new b(`Unexpected closing tag </${t}> at position ${n.position}`,n.position,e);const a=o.pop();if(a.tagNumber!==t)throw new b(`Mismatched tags: expected </${a.tagNumber}> but got </${t}> at position ${n.position}`,n.position,e);const l=((e,t,n)=>{const{type:r,props:o={}}=e;if(o.children&&Array.isArray(o.children)&&n){const{children:e,...n}=o;return i.createElement(r,n,...t)}return 0===t.length?i.createElement(r,o):1===t.length?i.createElement(r,o,t[0]):i.createElement(r,o,...t)})(a.declaration,a.children,a.declarations);(o.length>0?o[o.length-1].children:r).push(l)}}}),o.length>0){const t=o[o.length-1];throw new b(`Unclosed tag <${t.tagNumber}> at position ${t.position}`,t.position,e)}return r};function L({i18nKey:e,defaultTranslation:t,content:n,ns:r,values:o={},i18n:s,t:a}){const l=s||c();if(!l)return f(l,"NO_I18NEXT_INSTANCE","IcuTrans: You need to pass in an i18next instance using i18nextReactModule",{i18nKey:e}),i.createElement(i.Fragment,{},t);const u=a||l.t?.bind(l)||(e=>e);let d=r||u.ns||l.options?.defaultNS;d=w(d)?[d]:d||["translation"];let p=o;l.options?.interpolation?.defaultVariables&&(p=o&&Object.keys(o).length>0?{...o,...l.options.interpolation.defaultVariables}:{...l.options.interpolation.defaultVariables});const g=u(e,{defaultValue:t,...p,ns:d});try{const e=x(g,n);return i.createElement(i.Fragment,{},...e)}catch(t){return h(l,"ICU_TRANS_RENDER_ERROR",`IcuTrans component error for key "${e}": ${t.message}`,{i18nKey:e,error:t}),i.createElement(i.Fragment,{},g)}}L.displayName="IcuTransWithoutContext";var _=n(19888);const N={t:(e,t)=>{if(w(t))return t;if("object"==typeof(n=t)&&null!==n&&w(t.defaultValue))return t.defaultValue;var n;if("function"==typeof e)return"";if(Array.isArray(e)){const t=e[e.length-1];return"function"==typeof t?"":t}return e},ready:!1},S=()=>()=>{},C=(e,t={})=>{const{i18n:n}=t,{i18n:r,defaultNS:o}=(0,i.useContext)(u)||{},s=n||r||c();s&&!s.reportNamespaces&&(s.reportNamespaces=new d),s||f(s,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const l=(0,i.useMemo)(()=>({...a,...s?.options?.react,...t}),[s,t]),{useSuspense:h,keyPrefix:p}=l,g=e||o||s?.options?.defaultNS,b=w(g)?[g]:g||["translation"],v=(0,i.useMemo)(()=>b,b);s?.reportNamespaces?.addUsedNamespaces?.(v);const M=(0,i.useRef)(0),x=(0,i.useCallback)(e=>{if(!s)return S;const{bindI18n:t,bindI18nStore:n}=l,i=()=>{M.current+=1,e()};return t&&s.on(t,i),n&&s.store.on(n,i),()=>{t&&t.split(" ").forEach(e=>s.off(e,i)),n&&n.split(" ").forEach(e=>s.store.off(e,i))}},[s,l]),L=(0,i.useRef)(),C=(0,i.useCallback)(()=>{if(!s)return N;const e=!(!s.isInitialized&&!s.initializedStoreOnce)&&v.every(e=>((e,t,n={})=>t.languages&&t.languages.length?t.hasLoadedNamespace(e,{lng:n.lng,precheck:(t,i)=>{if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!i(t.isLanguageChangingTo,e))return!1}}):(f(t,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:t.languages}),!0))(e,s,l)),n=t.lng||s.language,i=M.current,r=L.current;if(r&&r.ready===e&&r.lng===n&&r.keyPrefix===p&&r.revision===i)return r;const o={t:s.getFixedT(n,"fallback"===l.nsMode?v:v[0],p,{scopeNs:v}),ready:e,lng:n,keyPrefix:p,revision:i};return L.current=o,o},[s,v,p,l,t.lng]),[T,k]=(0,i.useState)(0),{t:A,ready:D}=(0,_.useSyncExternalStore)(x,C,C);(0,i.useEffect)(()=>{if(s&&!D&&!h){const e=()=>k(e=>e+1);t.lng?y(s,t.lng,v,e):m(s,v,e)}},[s,t.lng,v,D,h,T]);const j=s||{},z=(0,i.useRef)(null),E=(0,i.useRef)(),I=e=>{const t=Object.getOwnPropertyDescriptors(e);t.__original&&delete t.__original;const n=Object.create(Object.getPrototypeOf(e),t);if(!Object.prototype.hasOwnProperty.call(n,"__original"))try{Object.defineProperty(n,"__original",{value:e,writable:!1,enumerable:!1,configurable:!1})}catch(e){}return n},O=(0,i.useMemo)(()=>{const e=j,t=e?.language;let n=e;e&&(z.current&&z.current.__original===e?E.current!==t?(n=I(e),z.current=n,E.current=t):n=z.current:(n=I(e),z.current=n,E.current=t));const i=D||h?A:(...e)=>(f(s,"USE_T_BEFORE_READY","useTranslation: t was called before ready. When using useSuspense: false, make sure to check the ready flag before using t."),A(...e)),r=[i,n,D];return r.t=i,r.i18n=n,r.ready=D,r},[A,j,D,j.resolvedLanguage,j.language,j.languages]);if(s&&h&&!D)throw new Promise(e=>{const n=()=>e();t.lng?y(s,t.lng,v,n):m(s,v,n)});return O};const T={type:"3rdParty",init(e){((e={})=>{a={...a,...e}})(e.options.react),(e=>{l=e})(e)}}},61973(e,t,n){"use strict";let i;n.d(t,{BV:()=>$e,Kd:()=>wt,N_:()=>bt,Zp:()=>ge,k2:()=>vt,ok:()=>_t,qh:()=>Ie,zy:()=>he});var r=n(96540),o=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,s=/^[\\/]{2}/;function a(e,t){return t+e.replace(/\\/g,"/")}var l="popstate";function c(e){return"object"==typeof e&&null!=e&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function u(e={}){return y(function(e,t){let n=t.state?.masked,{pathname:i,search:r,hash:o}=n||e.location;return f("",{pathname:i,search:r,hash:o},t.state&&t.state.usr||null,t.state&&t.state.key||"default",n?{pathname:e.location.pathname,search:e.location.search,hash:e.location.hash}:void 0)},function(e,t){return"string"==typeof t?t:g(t)},null,e)}function d(e,t){if(!1===e||null==e)throw new Error(t)}function h(e,t){if(!e){"undefined"!=typeof console&&console.warn(t);try{throw new Error(t)}catch(e){}}}function p(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function f(e,t,n=null,i,r){return{pathname:"string"==typeof e?e:e.pathname,search:"",hash:"",..."string"==typeof t?m(t):t,state:n,key:t&&t.key||i||Math.random().toString(36).substring(2,10),mask:r}}function g({pathname:e="/",search:t="",hash:n=""}){return t&&"?"!==t&&(e+="?"===t.charAt(0)?t:"?"+t),n&&"#"!==n&&(e+="#"===n.charAt(0)?n:"#"+n),e}function m(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let i=e.indexOf("?");i>=0&&(t.search=e.substring(i),e=e.substring(0,i)),e&&(t.pathname=e)}return t}function y(e,t,n,i={}){let{window:r=document.defaultView,v5Compat:o=!1}=i,s=r.history,a="POP",u=null,d=h();function h(){return(s.state||{idx:null}).idx}function g(){a="POP";let e=h(),t=null==e?null:e-d;d=e,u&&u({action:a,location:y.location,delta:t})}function m(e){return w(r,e)}null==d&&(d=0,s.replaceState({...s.state,idx:d},""));let y={get action(){return a},get location(){return e(r,s)},listen(e){if(u)throw new Error("A history only accepts one active listener");return r.addEventListener(l,g),u=e,()=>{r.removeEventListener(l,g),u=null}},createHref:e=>t(r,e),createURL:m,encodeLocation(e){let t=m(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){a="PUSH";let i=c(e)?e:f(y.location,e,t);n&&n(i,e),d=h()+1;let l=p(i,d),g=y.createHref(i.mask||i);try{s.pushState(l,"",g)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;r.location.assign(g)}o&&u&&u({action:a,location:y.location,delta:1})},replace:function(e,t){a="REPLACE";let i=c(e)?e:f(y.location,e,t);n&&n(i,e),d=h();let r=p(i,d),l=y.createHref(i.mask||i);s.replaceState(r,"",l),o&&u&&u({action:a,location:y.location,delta:0})},go:e=>s.go(e)};return y}function w(e,t,n=!1){let i="http://localhost";e&&(i="null"!==e.location.origin?e.location.origin:e.location.href),d(i,"No window.location.(origin|href) available to create URL");let r="string"==typeof t?t:g(t);return r=r.replace(/ $/,"%20"),!n&&s.test(r)&&(r=i+r),new URL(r,i)}new WeakMap;function b(e,t,n="/"){return v(e,t,n,!1)}function v(e,t,n,i,r){let o=j(("string"==typeof t?m(t):t).pathname||"/",n);if(null==o)return null;let s=r??M(e),a=null,l=D(o);for(let e=0;null==a&&e<s.length;++e)a=C(s[e],l,i);return a}function M(e){let t=x(e);return function(e){e.sort((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let n=e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n]);return n?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)))}(t),t}function x(e,t=[],n=[],i="",r=!1){let o=(e,o,s=r,a)=>{let l={relativePath:void 0===a?e.path||"":a,caseSensitive:!0===e.caseSensitive,childrenIndex:o,route:e};if(l.relativePath.startsWith("/")){if(!l.relativePath.startsWith(i)&&s)return;d(l.relativePath.startsWith(i),`Absolute route path "${l.relativePath}" nested under path "${i}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),l.relativePath=l.relativePath.slice(i.length)}let c=P([i,l.relativePath]),u=n.concat(l);e.children&&e.children.length>0&&(d(!0!==e.index,`Index routes must not have child routes. Please remove all child routes from route path "${c}".`),x(e.children,t,u,c,s)),(null!=e.path||e.index)&&t.push({path:c,score:S(c,e.index),routesMeta:u.map((e,t)=>{let[n,i]=A(e.relativePath,e.caseSensitive,t===u.length-1);return{...e,matcher:n,compiledParams:i}})})};return e.forEach((e,t)=>{if(""!==e.path&&e.path?.includes("?"))for(let n of L(e.path))o(e,t,!0,n);else o(e,t)}),t}function L(e){let t=e.split("/");if(0===t.length)return[];let[n,...i]=t,r=n.endsWith("?"),o=n.replace(/\?$/,"");if(0===i.length)return r?[o,""]:[o];let s=L(i.join("/")),a=[];return a.push(...s.map(e=>""===e?o:[o,e].join("/"))),r&&a.push(...s),a.map(t=>e.startsWith("/")&&""===t?"/":t)}var _=/^:[\w-]+$/,N=e=>"*"===e;function S(e,t){let n=e.split("/"),i=n.length;return n.some(N)&&(i+=-2),t&&(i+=2),n.filter(e=>!N(e)).reduce((e,t)=>e+(_.test(t)?3:""===t?1:10),i)}function C(e,t,n=!1){let{routesMeta:i}=e,r={},o="/",s=[];for(let e=0;e<i.length;++e){let a=i[e],l=e===i.length-1,c="/"===o?t:t.slice(o.length)||"/",u={path:a.relativePath,caseSensitive:a.caseSensitive,end:l},d=a.matcher&&a.compiledParams?k(u,c,a.matcher,a.compiledParams):T(u,c),h=a.route;if(!d&&l&&n&&!i[i.length-1].route.index&&(d=T({path:a.relativePath,caseSensitive:a.caseSensitive,end:!1},c)),!d)return null;Object.assign(r,d.params),s.push({params:r,pathname:P([o,d.pathname]),pathnameBase:F(P([o,d.pathnameBase])),route:h}),"/"!==d.pathnameBase&&(o=P([o,d.pathnameBase]))}return s}function T(e,t){"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[n,i]=A(e.path,e.caseSensitive,e.end);return k(e,t,n,i)}function k(e,t,n,i){let r=t.match(n);if(!r)return null;let o=r[0],s=o.replace(/(.)\/+$/,"$1"),a=r.slice(1);return{params:i.reduce((e,{paramName:t,isOptional:n},i)=>{if("*"===t){let e=a[i]||"";s=o.slice(0,o.length-e.length).replace(/(.)\/+$/,"$1")}const r=a[i];return e[t]=n&&!r?void 0:(r||"").replace(/%2F/g,"/"),e},{}),pathname:o,pathnameBase:s,pattern:e}}function A(e,t=!1,n=!0){h("*"===e||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let i=[],r="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(e,t,n,r,o)=>{if(i.push({paramName:t,isOptional:null!=n}),n){let t=o.charAt(r+e.length);return t&&"/"!==t?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(i.push({paramName:"*"}),r+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?r+="\\/*$":""!==e&&"/"!==e&&(r+="(?:(?=\\/|$))"),[new RegExp(r,t?void 0:"i"),i]}function D(e){try{return e.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(t){return h(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function j(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,i=e.charAt(n);return i&&"/"!==i?null:e.slice(n)||"/"}function z(e,t){let n=U(t).split("/");return e.split("/").forEach(e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)}),n.length>1?n.join("/"):"/"}function E(e,t,n,i){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(i)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function I(e){return e.filter((e,t)=>0===t||e.route.path&&e.route.path.length>0)}function O(e){let t=I(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function $(e,t,n,i=!1){let r;"string"==typeof e?r=m(e):(r={...e},d(!r.pathname||!r.pathname.includes("?"),E("?","pathname","search",r)),d(!r.pathname||!r.pathname.includes("#"),E("#","pathname","hash",r)),d(!r.search||!r.search.includes("#"),E("#","search","hash",r)));let o,s=""===e||""===r.pathname,a=s?"/":r.pathname;if(null==a)o=n;else{let e=t.length-1;if(!i&&a.startsWith("..")){let t=a.split("/");for(;".."===t[0];)t.shift(),e-=1;r.pathname=t.join("/")}o=e>=0?t[e]:"/"}let l=function(e,t="/"){let n,{pathname:i,search:r="",hash:o=""}="string"==typeof e?m(e):e;return i?(i=R(i),n=i.startsWith("/")?z(i.substring(1),"/"):z(i,t)):n=t,{pathname:n,search:Y(r),hash:Q(o)}}(r,o),c=a&&"/"!==a&&a.endsWith("/"),u=(s||"."===a)&&n.endsWith("/");return l.pathname.endsWith("/")||!c&&!u||(l.pathname+="/"),l}var R=e=>e.replace(/[\\/]{2,}/g,"/"),P=e=>R(e.join("/")),U=e=>e.replace(/\/+$/,""),F=e=>U(e).replace(/^\/*/,"/"),Y=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",Q=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";var W=class{constructor(e,t,n,i=!1){this.status=e,this.statusText=t||"",this.internal=i,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function B(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}function H(e){let t=e.map(e=>e.route.path).filter(Boolean);return P(t)||"/"}var V="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function G(e,t){let n=e;if("string"!=typeof n||!o.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let i=n,r=!1;if(V)try{let e=new URL(window.location.href),i=s.test(n)?new URL(a(n,e.protocol)):new URL(n),o=j(i.pathname,t);i.origin===e.origin&&null!=o?n=o+i.search+i.hash:r=!0}catch(e){h(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:i,isExternal:r,to:n}}Symbol("Uninstrumented");Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var K=["POST","PUT","PATCH","DELETE"],q=(new Set(K),["GET",...K]);new Set(q),Symbol("ResetLoaderData");new WeakMap,new WeakMap,new WeakMap,new WeakMap;var Z=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];function X(e){try{return Z.includes(new URL(e).protocol)}catch{return!1}}var J=r.createContext(null);J.displayName="DataRouter";var ee=r.createContext(null);ee.displayName="DataRouterState";var te=r.createContext(!1);function ne(){return r.useContext(te)}var ie=r.createContext({isTransitioning:!1});ie.displayName="ViewTransition";var re=r.createContext(new Map);re.displayName="Fetchers";var oe=r.createContext(null);oe.displayName="Await";var se=r.createContext(null);se.displayName="Navigation";var ae=r.createContext(null);ae.displayName="Location";var le=r.createContext({outlet:null,matches:[],isDataRoute:!1});le.displayName="Route";var ce=r.createContext(null);ce.displayName="RouteError";var ue="REACT_ROUTER_ERROR";function de(){return null!=r.useContext(ae)}function he(){return d(de(),"useLocation() may be used only in the context of a <Router> component."),r.useContext(ae).location}var pe="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function fe(e){r.useContext(se).static||r.useLayoutEffect(e)}function ge(){let{isDataRoute:e}=r.useContext(le);return e?function(){let{router:e}=Se("useNavigate"),t=Te("useNavigate"),n=r.useRef(!1);return fe(()=>{n.current=!0}),r.useCallback(async(i,r={})=>{h(n.current,pe),n.current&&("number"==typeof i?await e.navigate(i):await e.navigate(i,{fromRouteId:t,...r}))},[e,t])}():function(){d(de(),"useNavigate() may be used only in the context of a <Router> component.");let e=r.useContext(J),{basename:t,navigator:n}=r.useContext(se),{matches:i}=r.useContext(le),{pathname:o}=he(),s=JSON.stringify(O(i)),a=r.useRef(!1);return fe(()=>{a.current=!0}),r.useCallback((i,r={})=>{if(h(a.current,pe),!a.current)return;if("number"==typeof i)return void n.go(i);let l=$(i,JSON.parse(s),o,"path"===r.relative);null==e&&"/"!==t&&(l.pathname="/"===l.pathname?t:P([t,l.pathname])),(r.replace?n.replace:n.push)(l,r.state,r)},[t,n,s,o,e])}()}r.createContext(null);function me(e,{relative:t}={}){let{matches:n}=r.useContext(le),{pathname:i}=he(),o=JSON.stringify(O(n));return r.useMemo(()=>$(e,JSON.parse(o),i,"path"===t),[e,o,i,t])}function ye(e,t,n){d(de(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:i}=r.useContext(se),{matches:o}=r.useContext(le),s=o[o.length-1],a=s?s.params:{},l=s?s.pathname:"/",c=s?s.pathnameBase:"/",u=s&&s.route;{let e=u&&u.path||"";De(l,!u||e.endsWith("*")||e.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${l}" (under <Route path="${e}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.\n\nPlease change the parent <Route path="${e}"> to <Route path="${"/"===e?"*":`${e}/*`}">.`)}let p,f=he();if(t){let e="string"==typeof t?m(t):t;d("/"===c||e.pathname?.startsWith(c),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${e.pathname}" was given in the \`location\` prop.`),p=e}else p=f;let g=p.pathname||"/",y=g;if("/"!==c){let e=c.replace(/^\//,"").split("/");y="/"+g.replace(/^\//,"").split("/").slice(e.length).join("/")}let w=n&&n.state.matches.length?n.state.matches.map(e=>Object.assign(e,{route:n.manifest[e.route.id]||e.route})):b(e,{pathname:y});h(u||null!=w,`No routes matched location "${p.pathname}${p.search}${p.hash}" `),h(null==w||void 0!==w[w.length-1].route.element||void 0!==w[w.length-1].route.Component||void 0!==w[w.length-1].route.lazy,`Matched leaf route at location "${p.pathname}${p.search}${p.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let v=_e(w&&w.map(e=>Object.assign({},e,{params:Object.assign({},a,e.params),pathname:P([c,i.encodeLocation?i.encodeLocation(e.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?c:P([c,i.encodeLocation?i.encodeLocation(e.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathnameBase])})),o,n);return t&&v?r.createElement(ae.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",mask:void 0,...p},navigationType:"POP"}},v):v}function we(){let e=ke(),t=B(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,i="rgba(200,200,200, 0.5)",o={padding:"0.5rem",backgroundColor:i},s={padding:"2px 4px",backgroundColor:i},a=null;return console.error("Error handled by React Router default ErrorBoundary:",e),a=r.createElement(r.Fragment,null,r.createElement("p",null,"💿 Hey developer 👋"),r.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",r.createElement("code",{style:s},"ErrorBoundary")," or"," ",r.createElement("code",{style:s},"errorElement")," prop on your route.")),r.createElement(r.Fragment,null,r.createElement("h2",null,"Unexpected Application Error!"),r.createElement("h3",{style:{fontStyle:"italic"}},t),n?r.createElement("pre",{style:o},n):null,a)}var be=r.createElement(we,null),ve=class extends r.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&"object"==typeof e&&e&&"digest"in e&&"string"==typeof e.digest){const t=function(e){if(e.startsWith(`${ue}:ROUTE_ERROR_RESPONSE:{`))try{let t=JSON.parse(e.slice(40));if("object"==typeof t&&t&&"number"==typeof t.status&&"string"==typeof t.statusText)return new W(t.status,t.statusText,t.data)}catch{}}(e.digest);t&&(e=t)}let t=void 0!==e?r.createElement(le.Provider,{value:this.props.routeContext},r.createElement(ce.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?r.createElement(xe,{error:e},t):t}};ve.contextType=te;var Me=new WeakMap;function xe({children:e,error:t}){let{basename:n}=r.useContext(se);if("object"==typeof t&&t&&"digest"in t&&"string"==typeof t.digest){let e=function(e){if(e.startsWith(`${ue}:REDIRECT:{`))try{let t=JSON.parse(e.slice(28));if("object"==typeof t&&t&&"number"==typeof t.status&&"string"==typeof t.statusText&&"string"==typeof t.location&&"boolean"==typeof t.reloadDocument&&"boolean"==typeof t.replace)return t}catch{}}(t.digest);if(e){let i=Me.get(t);if(i)throw i;let o=G(e.location,n),s=o.absoluteURL||o.to;if(X(s))throw new Error("Invalid redirect location");if(V&&!Me.get(t)){if(!o.isExternal&&!e.reloadDocument){const n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(o.to,{replace:e.replace}));throw Me.set(t,n),n}window.location.href=s}return r.createElement("meta",{httpEquiv:"refresh",content:`0;url=${s}`})}}return e}function Le({routeContext:e,match:t,children:n}){let i=r.useContext(J);return i&&i.static&&i.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=t.route.id),r.createElement(le.Provider,{value:e},n)}function _e(e,t=[],n){let i=n?.state;if(null==e){if(!i)return null;if(i.errors)e=i.matches;else{if(0!==t.length||i.initialized||!(i.matches.length>0))return null;e=i.matches}}let o=e,s=i?.errors;if(null!=s){let e=o.findIndex(e=>e.route.id&&void 0!==s?.[e.route.id]);d(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(s).join(",")}`),o=o.slice(0,Math.min(o.length,e+1))}let a=!1,l=-1;if(n&&i){a=i.renderFallback;for(let e=0;e<o.length;e++){let t=o[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(l=e),t.route.id){let{loaderData:e,errors:r}=i,s=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!r||void 0===r[t.route.id]);if(t.route.lazy||s){n.isStatic&&(a=!0),o=l>=0?o.slice(0,l+1):[o[0]];break}}}}let c=n?.onError,u=i&&c?(e,t)=>{c(e,{location:i.location,params:i.matches?.[0]?.params??{},pattern:H(i.matches),errorInfo:t})}:void 0;return o.reduceRight((e,n,c)=>{let d,h=!1,p=null,f=null;i&&(d=s&&n.route.id?s[n.route.id]:void 0,p=n.route.errorElement||be,a&&(l<0&&0===c?(De("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),h=!0,f=null):l===c&&(h=!0,f=n.route.hydrateFallbackElement||null)));let g=t.concat(o.slice(0,c+1)),m=()=>{let t;return t=d?p:h?f:n.route.Component?r.createElement(n.route.Component,null):n.route.element?n.route.element:e,r.createElement(Le,{match:n,routeContext:{outlet:e,matches:g,isDataRoute:null!=i},children:t})};return i&&(n.route.ErrorBoundary||n.route.errorElement||0===c)?r.createElement(ve,{location:i.location,revalidation:i.revalidation,component:p,error:d,children:m(),routeContext:{outlet:null,matches:g,isDataRoute:!0},onError:u}):m()},null)}function Ne(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Se(e){let t=r.useContext(J);return d(t,Ne(e)),t}function Ce(e){let t=r.useContext(ee);return d(t,Ne(e)),t}function Te(e){let t=function(e){let t=r.useContext(le);return d(t,Ne(e)),t}(e),n=t.matches[t.matches.length-1];return d(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function ke(){let e=r.useContext(ce),t=Ce("useRouteError"),n=Te("useRouteError");return void 0!==e?e:t.errors?.[n]}var Ae={};function De(e,t,n){t||Ae[e]||(Ae[e]=!0,h(!1,n))}var je={};function ze(e,t){e||je[t]||(je[t]=!0,console.warn(t))}(i||(i=n.t(r,2))).useOptimistic;r.memo(Ee);function Ee({routes:e,manifest:t,future:n,state:i,isStatic:r,onError:o}){return ye(e,void 0,{manifest:t,state:i,isStatic:r,onError:o,future:n})}function Ie(e){d(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function Oe({basename:e="/",children:t=null,location:n,navigationType:i="POP",navigator:o,static:s=!1,useTransitions:a}){d(!de(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let l=e.replace(/^\/*/,"/"),c=r.useMemo(()=>({basename:l,navigator:o,static:s,useTransitions:a,future:{}}),[l,o,s,a]);"string"==typeof n&&(n=m(n));let{pathname:u="/",search:p="",hash:f="",state:g=null,key:y="default",mask:w}=n,b=r.useMemo(()=>{let e=j(u,l);return null==e?null:{location:{pathname:e,search:p,hash:f,state:g,key:y,mask:w},navigationType:i}},[l,u,p,f,g,y,i,w]);return h(null!=b,`<Router basename="${l}"> is not able to match the URL "${u}${p}${f}" because it does not start with the basename, so the <Router> won't render anything.`),null==b?null:r.createElement(se.Provider,{value:c},r.createElement(ae.Provider,{children:t,value:b}))}function $e({children:e,location:t}){return ye(Re(e),t)}r.Component;function Re(e,t=[]){let n=[];return r.Children.forEach(e,(e,i)=>{if(!r.isValidElement(e))return;let o=[...t,i];if(e.type===r.Fragment)return void n.push.apply(n,Re(e.props.children,o));d(e.type===Ie,`[${"string"==typeof e.type?e.type:e.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),d(!e.props.index||!e.props.children,"An index route cannot have child routes.");let s={id:e.props.id||o.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,middleware:e.props.middleware,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:!0===e.props.hasErrorBoundary||null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(s.children=Re(e.props.children,o)),n.push(s)}),n}var Pe="get",Ue="application/x-www-form-urlencoded";function Fe(e){return"undefined"!=typeof HTMLElement&&e instanceof HTMLElement}function Ye(e=""){return new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let i=e[n];return t.concat(Array.isArray(i)?i.map(e=>[n,e]):[[n,i]])},[]))}var Qe=null;var We=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Be(e){return null==e||We.has(e)?e:(h(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Ue}"`),null)}function He(e,t){let n,i,r,o,s;if(Fe(a=e)&&"form"===a.tagName.toLowerCase()){let s=e.getAttribute("action");i=s?j(s,t):null,n=e.getAttribute("method")||Pe,r=Be(e.getAttribute("enctype"))||Ue,o=new FormData(e)}else if(function(e){return Fe(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return Fe(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let s=e.form;if(null==s)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let a=e.getAttribute("formaction")||s.getAttribute("action");if(i=a?j(a,t):null,n=e.getAttribute("formmethod")||s.getAttribute("method")||Pe,r=Be(e.getAttribute("formenctype"))||Be(s.getAttribute("enctype"))||Ue,o=new FormData(s,e),!function(){if(null===Qe)try{new FormData(document.createElement("form"),0),Qe=!1}catch(e){Qe=!0}return Qe}()){let{name:t,type:n,value:i}=e;if("image"===n){let e=t?`${t}.`:"";o.append(`${e}x`,"0"),o.append(`${e}y`,"0")}else t&&o.append(t,i)}}else{if(Fe(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');n=Pe,i=null,r=Ue,s=e}var a;return o&&"text/plain"===r&&(s=o,o=void 0),{action:i,method:n.toLowerCase(),encType:r,formData:o,body:s}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Ve(e,t){if(!1===e||null==e)throw new Error(t)}Symbol("SingleFetchRedirect");function Ge(e,t,n,i){let r="string"==typeof e?new URL(e,"undefined"==typeof window?"server://singlefetch/":window.location.origin):e;return n?r.pathname.endsWith("/")?r.pathname=`${r.pathname}_.${i}`:r.pathname=`${r.pathname}.${i}`:"/"===r.pathname?r.pathname=`_root.${i}`:t&&"/"===j(r.pathname,t)?r.pathname=`${U(t)}/_root.${i}`:r.pathname=`${U(r.pathname)}.${i}`,r}async function Ke(e,t){if(e.id in t)return t[e.id];try{let n=await import(e.module);return t[e.id]=n,n}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function qe(e){return null!=e&&"string"==typeof e.page}function Ze(e){return null!=e&&(null==e.href?"preload"===e.rel&&"string"==typeof e.imageSrcSet&&"string"==typeof e.imageSizes:"string"==typeof e.rel&&"string"==typeof e.href)}function Xe(e,t,n,i,r,o){let s=(e,t)=>!n[t]||e.route.id!==n[t].route.id,a=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith("*")&&n[t].params["*"]!==e.params["*"];return"assets"===o?t.filter((e,t)=>s(e,t)||a(e,t)):"data"===o?t.filter((t,o)=>{let l=i.routes[t.route.id];if(!l||!l.hasLoader)return!1;if(s(t,o)||a(t,o))return!0;if(t.route.shouldRevalidate){let i=t.route.shouldRevalidate({currentUrl:new URL(r.pathname+r.search+r.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if("boolean"==typeof i)return i}return!0}):[]}function Je(e,t,{includeHydrateFallback:n}={}){return i=e.map(e=>{let i=t.routes[e.route.id];if(!i)return[];let r=[i.module];return i.clientActionModule&&(r=r.concat(i.clientActionModule)),i.clientLoaderModule&&(r=r.concat(i.clientLoaderModule)),n&&i.hydrateFallbackModule&&(r=r.concat(i.hydrateFallbackModule)),i.imports&&(r=r.concat(i.imports)),r}).flat(1),[...new Set(i)];var i}function et(e,t){let n=new Set,i=new Set(t);return e.reduce((e,r)=>{if(t&&!qe(r)&&"script"===r.as&&r.href&&i.has(r.href))return e;let o=JSON.stringify(function(e){let t={},n=Object.keys(e).sort();for(let i of n)t[i]=e[i];return t}(r));return n.has(o)||(n.add(o),e.push({key:o,link:r})),e},[])}function tt(e,t){return"lazy"===e.mode&&!0===t}function nt(){let e=r.useContext(J);return Ve(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function it(){let e=r.useContext(ee);return Ve(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var rt=r.createContext(void 0);function ot(){let e=r.useContext(rt);return Ve(e,"You must render this element inside a <HydratedRouter> element"),e}function st(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function at(e,t,n){if(n&&!ht)return[e[0]];if(t){let n=e.findIndex(e=>void 0!==t[e.route.id]);return e.slice(0,n+1)}return e}rt.displayName="FrameworkContext";function lt({page:e,...t}){let n=ne(),{nonce:i}=ot(),{router:o}=nt(),s=r.useMemo(()=>b(o.routes,e,o.basename),[o.routes,e,o.basename]);return s?(null==t.nonce&&i&&(t={...t,nonce:i}),n?r.createElement(ut,{page:e,matches:s,...t}):r.createElement(dt,{page:e,matches:s,...t})):null}function ct(e){let{manifest:t,routeModules:n}=ot(),[i,o]=r.useState([]);return r.useEffect(()=>{let i=!1;return async function(e,t,n){return et((await Promise.all(e.map(async e=>{let i=t.routes[e.route.id];if(i){let e=await Ke(i,n);return e.links?e.links():[]}return[]}))).flat(1).filter(Ze).filter(e=>"stylesheet"===e.rel||"preload"===e.rel).map(e=>"stylesheet"===e.rel?{...e,rel:"prefetch",as:"style"}:{...e,rel:"prefetch"}))}(e,t,n).then(e=>{i||o(e)}),()=>{i=!0}},[e,t,n]),i}function ut({page:e,matches:t,...n}){let i=he(),{future:o}=ot(),{basename:s}=nt(),a=r.useMemo(()=>{if(e===i.pathname+i.search+i.hash)return[];let n=Ge(e,s,o.v8_trailingSlashAwareDataRequests,"rsc"),r=!1,a=[];for(let e of t)"function"==typeof e.route.shouldRevalidate?r=!0:a.push(e.route.id);return r&&a.length>0&&n.searchParams.set("_routes",a.join(",")),[n.pathname+n.search]},[s,o.v8_trailingSlashAwareDataRequests,e,i,t]);return r.createElement(r.Fragment,null,a.map(e=>r.createElement("link",{key:e,rel:"prefetch",as:"fetch",href:e,...n})))}function dt({page:e,matches:t,...n}){let i=he(),{future:o,manifest:s,routeModules:a}=ot(),{basename:l}=nt(),{loaderData:c,matches:u}=it(),d=r.useMemo(()=>Xe(e,t,u,s,i,"data"),[e,t,u,s,i]),h=r.useMemo(()=>Xe(e,t,u,s,i,"assets"),[e,t,u,s,i]),p=r.useMemo(()=>{if(e===i.pathname+i.search+i.hash)return[];let n=new Set,r=!1;if(t.forEach(e=>{let t=s.routes[e.route.id];t&&t.hasLoader&&(!d.some(t=>t.route.id===e.route.id)&&e.route.id in c&&a[e.route.id]?.shouldRevalidate||t.hasClientLoader?r=!0:n.add(e.route.id))}),0===n.size)return[];let u=Ge(e,l,o.v8_trailingSlashAwareDataRequests,"data");return r&&n.size>0&&u.searchParams.set("_routes",t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(",")),[u.pathname+u.search]},[l,o.v8_trailingSlashAwareDataRequests,c,i,s,d,t,e,a]),f=r.useMemo(()=>Je(h,s),[h,s]),g=ct(h);return r.createElement(r.Fragment,null,p.map(e=>r.createElement("link",{key:e,rel:"prefetch",as:"fetch",href:e,...n})),f.map(e=>r.createElement("link",{key:e,rel:"modulepreload",href:e,...n})),g.map(({key:e,link:t})=>r.createElement("link",{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}var ht=!1;function pt(e){let{manifest:t,serverHandoffString:n,isSpaMode:i,renderMeta:o,routeDiscovery:s,ssr:a,nonce:l}=ot(),{router:c,static:u,staticContext:d}=nt(),{matches:h}=it(),p=ne(),f=tt(s,a);null==e.nonce&&l&&(e={...e,nonce:l}),o&&(o.didRenderScripts=!0);let g=at(h,null,i);r.useEffect(()=>{ht=!0},[]);let m=r.useMemo(()=>{if(p)return null;let i=d?`window.__reactRouterContext = ${n};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());`:" ",o=u?`${t.hmr?.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}${f?"":`import ${JSON.stringify(t.url)}`};\n${g.map((e,n)=>{let i=`route${n}`,r=t.routes[e.route.id];Ve(r,`Route ${e.route.id} not found in manifest`);let{clientActionModule:o,clientLoaderModule:s,clientMiddlewareModule:a,hydrateFallbackModule:l,module:c}=r,u=[...o?[{module:o,varName:`${i}_clientAction`}]:[],...s?[{module:s,varName:`${i}_clientLoader`}]:[],...a?[{module:a,varName:`${i}_clientMiddleware`}]:[],...l?[{module:l,varName:`${i}_HydrateFallback`}]:[],{module:c,varName:`${i}_main`}];return 1===u.length?`import * as ${i} from ${JSON.stringify(c)};`:[u.map(e=>`import * as ${e.varName} from "${e.module}";`).join("\n"),`const ${i} = {${u.map(e=>`...${e.varName}`).join(",")}};`].join("\n")}).join("\n")}\n ${f?`window.__reactRouterManifest = ${JSON.stringify(function({sri:e,...t},n){let i=new Set(n.state.matches.map(e=>e.route.id)),r=n.state.location.pathname.split("/").filter(Boolean),o=["/"];for(r.pop();r.length>0;)o.push(`/${r.join("/")}`),r.pop();o.forEach(e=>{let t=v(n.routes,e,n.basename||"/",!1,n.branches);t&&t.forEach(e=>i.add(e.route.id))});let s=[...i].reduce((e,n)=>Object.assign(e,{[n]:t.routes[n]}),{});return{...t,routes:s,sri:!!e||void 0}}(t,c),null,2)};`:""}\n window.__reactRouterRouteModules = {${g.map((e,t)=>`${JSON.stringify(e.route.id)}:route${t}`).join(",")}};\n\nimport(${JSON.stringify(t.entry.module)});`:" ";return r.createElement(r.Fragment,null,r.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:i},type:void 0}),r.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:o},type:"module",async:!0}))},[]),y=ht||p?[]:[...new Set(t.entry.imports.concat(Je(g,t,{includeHydrateFallback:!0})))],w="object"==typeof t.sri?t.sri:{};return ze(!p,"The <Scripts /> element is a no-op when using RSC and can be safely removed."),ht||p?null:r.createElement(r.Fragment,null,"object"==typeof t.sri?r.createElement("script",{...e,"rr-importmap":"",type:"importmap",suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:JSON.stringify({integrity:w})}}):null,f?null:r.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin,integrity:w[t.url],nonce:e.nonce,suppressHydrationWarning:!0}),r.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin,integrity:w[t.entry.module],nonce:e.nonce,suppressHydrationWarning:!0}),y.map(t=>r.createElement("link",{key:t,rel:"modulepreload",href:t,crossOrigin:e.crossOrigin,integrity:w[t],nonce:e.nonce,suppressHydrationWarning:!0})),m)}function ft(...e){return t=>{e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}}r.Component;function gt({error:e,isOutsideRemixApp:t}){let{nonce:n}=ot();console.error(e);let i,o=r.createElement("script",{nonce:n,dangerouslySetInnerHTML:{__html:'\n console.log(\n "💿 Hey developer 👋. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information."\n );\n '}});if(B(e))return r.createElement(mt,{title:"Unhandled Thrown Response!"},r.createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),o);if(e instanceof Error)i=e;else{let t=null==e?"Unknown Error":"object"==typeof e&&"toString"in e?e.toString():JSON.stringify(e);i=new Error(t)}return r.createElement(mt,{title:"Application Error!",isOutsideRemixApp:t},r.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),r.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},i.stack),o)}function mt({title:e,renderScripts:t,isOutsideRemixApp:n,children:i}){let{routeModules:o}=ot();return o.root?.Layout&&!n?i:r.createElement("html",{lang:"en"},r.createElement("head",null,r.createElement("meta",{charSet:"utf-8"}),r.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),r.createElement("title",null,e)),r.createElement("body",null,r.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},i,t?r.createElement(pt,null):null)))}var yt="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;try{yt&&(window.__reactRouterVersion="7.18.1")}catch(e){}function wt({basename:e,children:t,useTransitions:n,window:i}){let o=r.useRef();null==o.current&&(o.current=u({window:i,v5Compat:!0}));let s=o.current,[a,l]=r.useState({action:s.action,location:s.location}),c=r.useCallback(e=>{!1===n?l(e):r.startTransition(()=>l(e))},[n]);return r.useLayoutEffect(()=>s.listen(c),[s,c]),r.createElement(Oe,{basename:e,children:t,location:a.location,navigationType:a.action,navigator:s,useTransitions:n})}var bt=r.forwardRef(function({onClick:e,discover:t="render",prefetch:n="none",relative:i,reloadDocument:s,replace:a,mask:l,state:c,target:u,to:h,preventScrollReset:p,viewTransition:f,defaultShouldRevalidate:m,...y},w){let{basename:b,navigator:v,useTransitions:M}=r.useContext(se),x="string"==typeof h&&o.test(h),L=G(h,b),_=function(e,{relative:t}={}){d(de(),"useHref() may be used only in the context of a <Router> component.");let{basename:n,navigator:i}=r.useContext(se),{hash:o,pathname:s,search:a}=me(e,{relative:t}),l=s;return"/"!==n&&(l="/"===s?n:P([n,s])),i.createHref({pathname:l,search:a,hash:o})}(h=L.to,{relative:i}),N=he(),S=null;if(l){let e=$(l,[],N.mask?N.mask.pathname:"/",!0);"/"!==b&&(e.pathname="/"===e.pathname?b:P([b,e.pathname])),S=v.createHref(e)}let[C,T,k]=function(e,t){let n=r.useContext(rt),[i,o]=r.useState(!1),[s,a]=r.useState(!1),{onFocus:l,onBlur:c,onMouseEnter:u,onMouseLeave:d,onTouchStart:h}=t,p=r.useRef(null);r.useEffect(()=>{if("render"===e&&a(!0),"viewport"===e){let e=new IntersectionObserver(e=>{e.forEach(e=>{a(e.isIntersecting)})},{threshold:.5});return p.current&&e.observe(p.current),()=>{e.disconnect()}}},[e]),r.useEffect(()=>{if(i){let e=setTimeout(()=>{a(!0)},100);return()=>{clearTimeout(e)}}},[i]);let f=()=>{o(!0)},g=()=>{o(!1),a(!1)};return n?"intent"!==e?[s,p,{}]:[s,p,{onFocus:st(l,f),onBlur:st(c,g),onMouseEnter:st(u,f),onMouseLeave:st(d,g),onTouchStart:st(h,f)}]:[!1,p,{}]}(n,y),A=function(e,{target:t,replace:n,mask:i,state:o,preventScrollReset:s,relative:a,viewTransition:l,defaultShouldRevalidate:c,useTransitions:u}={}){let d=ge(),h=he(),p=me(e,{relative:a});return r.useCallback(f=>{if(function(e,t){return!(0!==e.button||t&&"_self"!==t||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e))}(f,t)){f.preventDefault();let t=void 0!==n?n:g(h)===g(p),m=()=>d(e,{replace:t,mask:i,state:o,preventScrollReset:s,relative:a,viewTransition:l,defaultShouldRevalidate:c});u?r.startTransition(()=>m()):m()}},[h,d,p,n,i,o,t,e,s,a,l,c,u])}(h,{replace:a,mask:l,state:c,target:u,preventScrollReset:p,relative:i,viewTransition:f,defaultShouldRevalidate:m,useTransitions:M});let D=!(L.isExternal||s),j=r.createElement("a",{...y,...k,href:(D?S:void 0)||L.absoluteURL||_,onClick:D?function(t){e&&e(t),t.defaultPrevented||A(t)}:e,ref:ft(w,T),target:u,"data-discover":x||"render"!==t?void 0:"true"});return C&&!x?r.createElement(r.Fragment,null,j,r.createElement(lt,{page:_})):j});bt.displayName="Link";var vt=r.forwardRef(function({"aria-current":e="page",caseSensitive:t=!1,className:n="",end:i=!1,style:o,to:s,viewTransition:a,children:l,...c},u){let h=me(s,{relative:c.relative}),p=he(),f=r.useContext(ee),{navigator:g,basename:m}=r.useContext(se),y=null!=f&&function(e,{relative:t}={}){let n=r.useContext(ie);d(null!=n,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:i}=Lt("useViewTransitionState"),o=me(e,{relative:t});if(!n.isTransitioning)return!1;let s=j(n.currentLocation.pathname,i)||n.currentLocation.pathname,a=j(n.nextLocation.pathname,i)||n.nextLocation.pathname;return null!=T(o.pathname,a)||null!=T(o.pathname,s)}(h)&&!0===a,w=g.encodeLocation?g.encodeLocation(h).pathname:h.pathname,b=p.pathname,v=f&&f.navigation&&f.navigation.location?f.navigation.location.pathname:null;t||(b=b.toLowerCase(),v=v?v.toLowerCase():null,w=w.toLowerCase()),v&&m&&(v=j(v,m)||v);const M="/"!==w&&w.endsWith("/")?w.length-1:w.length;let x,L=b===w||!i&&b.startsWith(w)&&"/"===b.charAt(M),_=null!=v&&(v===w||!i&&v.startsWith(w)&&"/"===v.charAt(w.length)),N={isActive:L,isPending:_,isTransitioning:y},S=L?e:void 0;x="function"==typeof n?n(N):[n,L?"active":null,_?"pending":null,y?"transitioning":null].filter(Boolean).join(" ");let C="function"==typeof o?o(N):o;return r.createElement(bt,{...c,"aria-current":S,className:x,ref:u,style:C,to:s,viewTransition:a},"function"==typeof l?l(N):l)});vt.displayName="NavLink";var Mt=r.forwardRef(({discover:e="render",fetcherKey:t,navigate:n,reloadDocument:i,replace:s,state:a,method:l=Pe,action:c,onSubmit:u,relative:h,preventScrollReset:p,viewTransition:f,defaultShouldRevalidate:m,...y},w)=>{let{useTransitions:b}=r.useContext(se),v=St(),M=function(e,{relative:t}={}){let{basename:n}=r.useContext(se),i=r.useContext(le);d(i,"useFormAction must be used inside a RouteContext");let[o]=i.matches.slice(-1),s={...me(e||".",{relative:t})},a=he();if(null==e){s.search=a.search;let e=new URLSearchParams(s.search),t=e.getAll("index");if(t.some(e=>""===e)){e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let n=e.toString();s.search=n?`?${n}`:""}}e&&"."!==e||!o.route.index||(s.search=s.search?s.search.replace(/^\?/,"?index&"):"?index");"/"!==n&&(s.pathname="/"===s.pathname?n:P([n,s.pathname]));return g(s)}(c,{relative:h}),x="get"===l.toLowerCase()?"get":"post",L="string"==typeof c&&o.test(c);return r.createElement("form",{ref:w,method:x,action:M,onSubmit:i?u:e=>{if(u&&u(e),e.defaultPrevented)return;e.preventDefault();let i=e.nativeEvent.submitter,o=i?.getAttribute("formmethod")||l,c=()=>v(i||e.currentTarget,{fetcherKey:t,method:o,navigate:n,replace:s,state:a,relative:h,preventScrollReset:p,viewTransition:f,defaultShouldRevalidate:m});b&&!1!==n?r.startTransition(()=>c()):c()},...y,"data-discover":L||"render"!==e?void 0:"true"})});function xt(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Lt(e){let t=r.useContext(J);return d(t,xt(e)),t}function _t(e){h("undefined"!=typeof URLSearchParams,"You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=r.useRef(Ye(e)),n=r.useRef(!1),i=he(),o=r.useMemo(()=>function(e,t){let n=Ye(e);return t&&t.forEach((e,i)=>{n.has(i)||t.getAll(i).forEach(e=>{n.append(i,e)})}),n}(i.search,n.current?null:t.current),[i.search]),s=ge(),a=r.useCallback((e,t)=>{const i=Ye("function"==typeof e?e(new URLSearchParams(o)):e);n.current=!0,s("?"+i,t)},[s,o]);return[o,a]}Mt.displayName="Form";var Nt=0;function St(){let{router:e}=Lt("useSubmit"),{basename:t}=r.useContext(se),n=Te("useRouteId"),i=e.fetch,o=e.navigate;return r.useCallback(async(e,r={})=>{let{action:s,method:a,encType:l,formData:c,body:u}=He(e,t);if(!1===r.navigate){let e=r.fetcherKey||`__${String(++Nt)}__`;await i(e,n,r.action||s,{defaultShouldRevalidate:r.defaultShouldRevalidate,preventScrollReset:r.preventScrollReset,formData:c,body:u,formMethod:r.method||a,formEncType:r.encType||l,flushSync:r.flushSync})}else await o(r.action||s,{defaultShouldRevalidate:r.defaultShouldRevalidate,preventScrollReset:r.preventScrollReset,formData:c,body:u,formMethod:r.method||a,formEncType:r.encType||l,replace:r.replace,state:r.state,fromRouteId:n,flushSync:r.flushSync,viewTransition:r.viewTransition})},[i,o,t,n])}}};const t={};function n(i){const r=t[i];if(void 0!==r)return r.exports;const o=t[i]={id:i,loaded:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.m=e,n.amdD=function(){throw new Error("define cannot be used indirect")},n.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},(()=>{const e=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;let t;n.t=function(i,r){if(1&r&&(i=this(i)),8&r)return i;if("object"==typeof i&&i){if(4&r&&i.__esModule)return i;if(16&r&&"function"==typeof i.then)return i}const o=Object.create(null);n.r(o);const s={};t=t||[null,e({}),e([]),e(e)];for(var a=2&r&&i;("object"==typeof a||"function"==typeof a)&&!~t.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(e=>s[e]=()=>i[e]);return s.default=()=>i,n.d(o,s),o}})(),n.d=(e,t)=>{if(Array.isArray(t))for(var i=0;i<t.length;){var r=t[i++],o=t[i++];n.o(e,r)?0===o&&i++:0===o?Object.defineProperty(e,r,{enumerable:!0,value:t[i++]}):Object.defineProperty(e,r,{enumerable:!0,get:o})}else for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((t,i)=>(n.f[i](e,t),t),[])),n.u=e=>e+"."+{86:"84fbd259c98bf66e3987",165:"b77feb0226570120fb9d",171:"f3c8aef83ed87d25d932",200:"bb7f6ce5543bd7ff6d97",239:"f570f06d4b9c020f1013",252:"3c619742f7215d3f2c55",259:"3c0eb22e9b43ffb63c9c",325:"bba79da113b1fd7f56c8",385:"1a684cc08ec7381125be",453:"8877eb10f13258c290bc",523:"c8a9e27fc94558d6a35f",583:"cef46d6b21c6fa6454cf",595:"5def8223a1ea580667c5",629:"b75b024aacc43e0d69cf",676:"356039ef6f28f96b8c8b",753:"10176af33ca0c4357058",784:"48a3b71205680f427109",1045:"0e4bdc838c37771a7f50",1060:"198d91e2dfc174317c3a",1075:"05eed88707339ca32044",1080:"fb10ff15aa5eeecfedf1",1103:"a12affe7ae37845edaf1",1128:"b80776fbdbdda36034c3",1135:"1a607dc17c8710526c6f",1142:"bc43fae2e5e38d9359df",1258:"058987cb86a4ea8e0b5e",1353:"f8eeeb737ed0e77123d8",1384:"edbad9c24d883a59724d",1388:"1dcf844b452e3aae3dc0",1417:"d390b18dd58ff5c28160",1448:"4db495e1389c0c8445b3",1455:"26a021eb94e5bdd5bec2",1469:"52b0815203be10adeb8a",1599:"fc0fdd3953ef3cda88d4",1636:"b80b1883358e132d3424",1671:"fb137d27b5763953487e",1738:"b8ab2bd79df131e60051",1802:"e43e833638f6ba8e22d7",1832:"a01933ba5df99576ecc2",1964:"bd3d684b50aa5191b413",2105:"e4ba1c1d506b3fe14e8e",2122:"bc10dcdbbfc38e0ef883",2130:"f59bd545e641bba15cb4",2180:"df641ebaead77c4ada71",2300:"c99b1dd4e752cdfd5e32",2479:"294792ef5d360ad64abc",2502:"a3a043ad2fd7abc45899",2542:"26cb302b60de23166227",2543:"a6ee7f78b6f447ccae9f",2572:"8fdddfebb4da2f29dbd8",2626:"3bcfe1f26d9cb796a925",2674:"15ca3c6ac911cf6e6e2f",2742:"cce82ba1e890013270a8",2822:"9417e764a14f8f5f57dc",2884:"3a4256b14e78533329bd",2994:"c492be0d907fa468a9be",3049:"600edc6498586c147521",3156:"3db601d583daee830db0",3230:"7798ab546facfa058b34",3233:"43bdd7c12ca829d56116",3253:"13c8e71cf9d0f76f9a1f",3283:"9386fc7f67aef46604fb",3299:"6ab0d94f02171cd762cc",3300:"b8a3bc571293a6280ed8",3402:"b6dc28d2f9bace7cde85",3405:"2cbfd109c1188b7c47dd",3471:"ef3b5dcfe37963034187",3509:"cbcb309fbf49db53229f",3510:"b975b8bfdee5e8518215",3528:"0f8f34028d92fa87c518",3566:"ba323afadcf41fad2fa7",3608:"aff9429024b740ac5cd0",3659:"dd03dc2ac52a3ff19105",3692:"27a47c70c0d112074a77",3729:"1dd91a8343c5cb1c1763",3990:"5e16453f57b90b01d539",4004:"f0193c43fb891fdfb0e4",4061:"c0eb5824eeb6a59fa827",4091:"dc27d7fa32cf3807783c",4193:"58d3a34cac783ff289c6",4220:"b65b40382726a69ba0bc",4376:"b022a792fb34fbe50398",4432:"50e45751821a595b310b",4469:"536491f90535e831ce3e",4505:"2fc20229c971eca4965e",4521:"be8627ef6cf04129c449",4560:"fd9f8cf2d6022b1d3a94",4561:"ee19f5a986f085bc9c14",4568:"65adcd528411637e8c2d",4700:"5158b9f8642cc2679583",4735:"838cd0f656bbf7d99ff6",4772:"9b95c402a4def0f576e3",4783:"3ddf2e59b5384b7bb771",4877:"2e3787c1b3e7f209e7e5",4903:"070aaa53a243baf05133",4924:"32129da284e5464bf078",4946:"d578f6ba367a742d80bf",4985:"44cb7d829ca477e368b8",4986:"f244efce9cf6be21f846",5137:"ea60635374bc8146dbe3",5244:"91eb7f4bdb133e4bad2b",5272:"1f0dfac07ba202e7d323",5308:"d1e5ccb49396fc1b026d",5450:"113da2885aa4cb937cab",5516:"88521f3a3c7101c46df3",5526:"6b4867751becda056ed8",5614:"43bdd7c12ca829d56116",5617:"8efc3b1d218f80df9b39",5709:"81f43e3c021fafdfe36f",5737:"358b3241e17dc010772a",5744:"0f8a0432b73b2eb0a7ff",5782:"37a199a020652741037f",5877:"98d0475aaf4058b9a715",5965:"aac12a8f7c3d2f6bffc0",6010:"5400c344149450c83284",6018:"85bf6ac9de39f4558ba9",6047:"b413e743e432c5be9542",6089:"6d5d19a327284ff3b11c",6100:"84966ac3e36bcf6702ab",6164:"7dae9989dd129479f952",6247:"525b0b68872036ac2fa6",6284:"10deb80685728f50aa45",6322:"552511b5cb12cd0c821c",6344:"291e5dadc74e62739774",6349:"cc880bc920fd52da87bf",6492:"17ecd8515fa512ce9306",6571:"b381c44055704e3ba649",6644:"4a2be0d124054345ee38",6668:"fc1160d74fa6b83bb6ed",6676:"276f7bd359cc94e98389",6731:"6763296ce5ae210bc0fe",6759:"f88b50c41207cb8345d1",6789:"34921a30c8a81f0a6407",6800:"ee99fd0a88b6acbaaf2c",6803:"fe4297b1e51c3bfc7f50",6805:"373ac0e7d6555e4a6459",6806:"9ebf089eba60f3b8e946",6845:"cc913982cf6827d58f8f",6860:"6fe9c42fece2c4a6be4f",6919:"c7cc8617b658198d4924",6973:"ede894da648ef7d076e7",7027:"c50de5eaa5417e0d3574",7038:"166f915547d27e4dc5e4",7075:"be2fa0b00c7f326521b5",7133:"cf2a4a51286b78a653af",7181:"640be82b27656082091e",7310:"bf944d03f24fcf109680",7341:"b2b37559bcf2ce50305e",7430:"25bf8437ad8f7c1fd36f",7483:"5e26ada69b33418c31a8",7486:"fe0b5f867c08b40a3360",7567:"09e1b34ad9bd3e463eb4",7732:"d38e1d5660129f0479a9",7759:"7cd3fe8e5d37df25804c",7834:"7a593dcb80ca09f58586",7856:"54e6d0fc1f563a7b226f",7873:"e3098bc6f510e5bea55f",7923:"d44556578af4d3d7cea3",7943:"acf25a5e98dd13290985",8079:"f6f2be43e5d933ae1f6f",8090:"8977224618a14ae42159",8100:"7424a400163bd27b71ba",8167:"517ba2d3c3f7b4fd0e42",8257:"744e045b48d91791722a",8302:"ce97557b7cf7c8387942",8319:"6a6b9651c87a1bb4cbb9",8435:"5cf0507f0dfbd7576fff",8603:"f1cbcfd64cde885f9809",8649:"d6055ad75975b803bbc1",8677:"860320b7f36947e57d11",8727:"8658835acb7e0b6e5acc",8765:"8758c290a6b132f2ce7f",8772:"2c35012c25ac9eb5f74d",8781:"6bd14487d172e004e3d3",9042:"47554e8152c5231bace9",9144:"b005eb0e33e99d33e3bc",9177:"e76c67d50a47b1d8d5cd",9299:"7358ccf05b1415ed7959",9324:"ef229da9b943484298ba",9334:"a25983aafdcbde63ae5e",9364:"d2570d78afc50fe1b23e",9463:"2629a7daf4c2865b9b96",9545:"abe242f01ede7e8e8fc0",9546:"2cecad04cf676a6616cd",9548:"5612dc1269d867d3c2ce",9682:"2db15b94d649dfb38d1d",9701:"da6c7e6b74c67962fc3f",9770:"6b84856e727c6a3a1af6",9939:"2cd00b004dee39b41d3e",9998:"9ac55e1ecf7d7f5679b3"}[e]+".js",n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="filecat:";n.l=(i,r,o,s)=>{if(e[i])return void e[i].push(r);let a,l;if(void 0!==o){const e=document.getElementsByTagName("script");for(var c=0;c<e.length;c++){const n=e[c];if(n.getAttribute("src")==i||n.getAttribute("data-webpack")==t+o){a=n;break}}}a||(l=!0,a=document.createElement("script"),a.charset="utf-8",n.nc&&a.setAttribute("nonce",n.nc),a.setAttribute("data-webpack",t+o),a.src=i),e[i]=[r];const u=(t,n)=>{a.onerror=a.onload=null,clearTimeout(d);const r=e[i];if(delete e[i],a.parentNode?.removeChild(a),r?.forEach(e=>e(n)),t)return t(n)},d=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),l&&document.head.appendChild(a)}})(),n.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.dn=e=>{(Object.getOwnPropertyDescriptor(e,"name")||{}).writable||Object.defineProperty(e,"name",{value:"default",configurable:!0})},(()=>{let e;n.g.importScripts&&(e=n.g.location+"");const t=n.g.document;if(!e&&t&&("SCRIPT"===t.currentScript?.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){const n=t.getElementsByTagName("script");if(n.length){let t=n.length-1;for(;t>-1&&(!e||!/^http(s?):/.test(e));)e=n[t--].src}}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e})(),(()=>{n.b="undefined"!=typeof document&&document.baseURI||self.location.href;const e={8792:0};n.f.j=(t,i)=>{let r=n.o(e,t)?e[t]:void 0;if(0!==r)if(r)i.push(r[2]);else{const o=new Promise((n,i)=>r=e[t]=[n,i]);i.push(r[2]=o);const s=n.p+n.u(t),a=new Error,l=i=>{if(n.o(e,t)&&(r=e[t],0!==r&&(e[t]=void 0),r)){const e=i&&("load"===i.type?"missing":i.type),n=i&&i.target&&i.target.src;a.message="Loading chunk "+t+" failed.\n("+e+": "+n+")",a.name="ChunkLoadError",a.type=e,a.request=n,r[1](a)}};n.l(s,l,"chunk-"+t,t)}};const t=(t,i)=>{let[r,o,s]=i;var a,l,c=0;if(r.some(t=>0!==e[t])){for(a in o)n.o(o,a)&&(n.m[a]=o[a]);if(s)s(n)}for(t&&t(i);c<r.length;c++)l=r[c],n.o(e,l)&&e[l]&&e[l][0](),e[l]=0},i=self.webpackChunkfilecat=self.webpackChunkfilecat||[];i.forEach(t.bind(null,0)),i.push=t.bind(null,i.push.bind(i))})(),n.nc=void 0,(()=>{"use strict";var e=n(21469),t=n(96540),i=n(5338),r=n(61973),o=n(34843),s=n(82893),a=n(7523),l=n(34289),c=n(85072),u=n.n(c),d=n(97825),h=n.n(d),p=n(77659),f=n.n(p),g=n(55056),m=n.n(g),y=n(10540),w=n.n(y),b=n(41113),v=n.n(b),M=n(76807),x={};x.styleTagTransform=v(),x.setAttributes=m(),x.insert=f().bind(null,"head"),x.domAPI=h(),x.insertStyleElement=w();u()(M.A,x);M.A&&M.A.locals&&M.A.locals;var L=n(74848);const _=t.lazy(()=>Promise.resolve().then(n.bind(n,79923))),N=t.lazy(()=>n.e(2542).then(n.bind(n,72542))),S=t.lazy(()=>Promise.resolve().then(n.bind(n,39165)));const C=function(){const e=(0,r.zy)(),n=(0,r.Zp)(),[i,c]=(0,t.useState)(""),[u,d]=(0,o.fp)(s.AG.user_base_info),{initUserInfo:h}=(0,t.useContext)(a.F);return(0,t.useEffect)(()=>{localStorage.getItem("token")&&h()},[]),(0,t.useEffect)(()=>{if((0,l.Hv)())return;if(i===(0,l.vX)()||"/"===i||"/login"===i)return;c((0,l.vX)());const e=localStorage.getItem("token");e&&"null"!==e||n("/")},[e]),(0,L.jsxs)(S,{rtos:["/","/login","/*"],children:[(0,L.jsx)(t.Suspense,{fallback:(0,L.jsx)("div",{}),children:(0,L.jsx)(N,{})}),(0,L.jsx)(t.Suspense,{fallback:(0,L.jsx)("div",{}),children:(0,L.jsx)(N,{})}),(0,L.jsx)(t.Suspense,{fallback:(0,L.jsx)("div",{}),children:(0,L.jsx)(_,{})})]})};n(52388);var T=n(40505);e.m.init();(()=>{try{const e=localStorage.getItem("user_base_info");if(e){const t=JSON.parse(e);(0,T.Yl)(t?.user_data?.theme)}}catch(e){console.error(e)}})();const k=document.getElementById("root");(0,i.createRoot)(k).render((0,L.jsx)(r.Kd,{basename:e.m.base_url,children:(0,L.jsx)(a.D,{children:(0,L.jsx)(C,{})})}))})()})();