10 lines
395 KiB
JavaScript
10 lines
395 KiB
JavaScript
(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(e){function n(n){for(var r,a,s=n[0],c=n[1],l=n[2],p=0,d=[];p<s.length;p++)a=s[p],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&d.push(o[a][0]),o[a]=0;for(r in c)Object.prototype.hasOwnProperty.call(c,r)&&(e[r]=c[r]);for(u&&u(n);d.length;)d.shift()();return i.push.apply(i,l||[]),t()}function t(){for(var e,n=0;n<i.length;n++){for(var t=i[n],r=!0,s=1;s<t.length;s++){var c=t[s];0!==o[c]&&(r=!1)}r&&(i.splice(n--,1),e=a(a.s=t[0]))}return e}var r={},o={1:0},i=[];function a(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.e=function(e){var n=[],t=o[e];if(0!==t)if(t)n.push(t[2]);else{var r=new Promise((function(n,r){t=o[e]=[n,r]}));n.push(t[2]=r);var i,s=document.createElement("script");s.charset="utf-8",s.timeout=120,a.nc&&s.setAttribute("nonce",a.nc),s.src=function(e){return a.p+"assets/js/"+({}[e]||e)+"."+{2:"bcc017ba",3:"31c9497d",4:"3e10c61a",5:"26fb3e34",6:"526bfcbe",7:"df78e3fb",8:"e3e55472",9:"cc059fee",10:"aefeccb2",11:"83da976e",12:"28575ea2",13:"2bc54ade",14:"239eae84",15:"9c7084a5",16:"db6de795",17:"5a8480e4",18:"9d247656",19:"9da31ccd",20:"3ad6f2c9",21:"e3560148",22:"eb77dd26",23:"6aa343b0",24:"7e68c2e7",25:"de1c1c00",26:"a9272eda",27:"d61af734",28:"7dfe2be6",29:"ec35ef30",30:"43ea93fb",31:"3d915a65",32:"ebdd578e",33:"32f5fccd",34:"9942da58",35:"cf7271d2",36:"9bd0c33b",37:"71c8b009",38:"7632b8b0",39:"5140c9f6",40:"40facdf8"}[e]+".js"}(e);var c=new Error;i=function(n){s.onerror=s.onload=null,clearTimeout(l);var t=o[e];if(0!==t){if(t){var r=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;c.message="Loading chunk "+e+" failed.\n("+r+": "+i+")",c.name="ChunkLoadError",c.type=r,c.request=i,t[1](c)}o[e]=void 0}};var l=setTimeout((function(){i({type:"timeout",target:s})}),12e4);s.onerror=s.onload=i,document.head.appendChild(s)}return Promise.all(n)},a.m=e,a.c=r,a.d=function(e,n,t){a.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,n){if(1&n&&(e=a(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var r in e)a.d(t,r,function(n){return e[n]}.bind(null,r));return t},a.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(n,"a",n),n},a.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},a.p="/neutrino-proxy/",a.oe=function(e){throw console.error(e),e};var s=window.webpackJsonp=window.webpackJsonp||[],c=s.push.bind(s);s.push=n,s=s.slice();for(var l=0;l<s.length;l++)n(s[l]);var u=c;i.push([126,0]),t()}([function(e,n,t){"use strict";var r="object"==typeof document&&document.all;e.exports=void 0===r&&void 0!==r?function(e){return"function"==typeof e||e===r}:function(e){return"function"==typeof e}},function(e,n,t){"use strict";var r=t(8),o=String,i=TypeError;e.exports=function(e){if(r(e))return e;throw new i(o(e)+" is not an object")}},function(e,n,t){"use strict";var r=function(e){return e&&e.Math===Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof global&&global)||r("object"==typeof this&&this)||function(){return this}()||Function("return this")()},function(e,n,t){"use strict";e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,n,t){"use strict";t(127)},function(e,n,t){"use strict";var r=t(32),o=Function.prototype,i=o.call,a=r&&o.bind.bind(i,i);e.exports=r?a:function(e){return function(){return i.apply(e,arguments)}}},function(e,n,t){"use strict";var r=t(3);e.exports=!r((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(e,n,t){"use strict";var r=t(0),o=t(48),i=TypeError;e.exports=function(e){if(r(e))return e;throw new i(o(e)+" is not a function")}},function(e,n,t){"use strict";var r=t(0);e.exports=function(e){return"object"==typeof e?null!==e:r(e)}},function(e,n,t){"use strict";var r=t(5),o=t(30),i=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,n){return i(o(e),n)}},function(e,n,t){"use strict";var r=t(2),o=t(69).f,i=t(24),a=t(44),s=t(50),c=t(83),l=t(141);e.exports=function(e,n){var t,u,p,d,f,h=e.target,v=e.global,m=e.stat;if(t=v?r:m?r[h]||s(h,{}):r[h]&&r[h].prototype)for(u in n){if(d=n[u],p=e.dontCallGetSet?(f=o(t,u))&&f.value:t[u],!l(v?u:h+(m?".":"#")+u,e.forced)&&void 0!==p){if(typeof d==typeof p)continue;c(d,p)}(e.sham||p&&p.sham)&&i(d,"sham",!0),a(t,u,d,e)}}},function(e,n){var t=Array.isArray;e.exports=t},function(e,n,t){"use strict";var r=t(32),o=Function.prototype.call;e.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},function(e,n,t){var r=t(95),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,n,t){"use strict";function r(e,n,t,r,o,i,a,s){var c,l="function"==typeof e?e.options:e;if(n&&(l.render=n,l.staticRenderFns=t,l._compiled=!0),r&&(l.functional=!0),i&&(l._scopeId="data-v-"+i),a?(c=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),o&&o.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},l._ssrRegister=c):o&&(c=s?function(){o.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:o),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(e,n){return c.call(n),u(e,n)}}else{var p=l.beforeCreate;l.beforeCreate=p?[].concat(p,c):[c]}return{exports:e,options:l}}t.d(n,"a",(function(){return r}))},function(e,n,t){"use strict";t(148)},function(e,n,t){"use strict";var r=t(2),o=t(76),i=t(9),a=t(77),s=t(73),c=t(72),l=r.Symbol,u=o("wks"),p=c?l.for||l:l&&l.withoutSetter||a;e.exports=function(e){return i(u,e)||(u[e]=s&&i(l,e)?l[e]:p("Symbol."+e)),u[e]}},function(e,n,t){"use strict";var r=t(6),o=t(78),i=t(80),a=t(1),s=t(70),c=TypeError,l=Object.defineProperty,u=Object.getOwnPropertyDescriptor;n.f=r?i?function(e,n,t){if(a(e),n=s(n),a(t),"function"==typeof e&&"prototype"===n&&"value"in t&&"writable"in t&&!t.writable){var r=u(e,n);r&&r.writable&&(e[n]=t.value,t={configurable:"configurable"in t?t.configurable:r.configurable,enumerable:"enumerable"in t?t.enumerable:r.enumerable,writable:!1})}return l(e,n,t)}:l:function(e,n,t){if(a(e),n=s(n),a(t),o)try{return l(e,n,t)}catch(e){}if("get"in t||"set"in t)throw new c("Accessors not supported");return"value"in t&&(e[n]=t.value),e}},function(e,n,t){"use strict";t(158)},function(e,n,t){var r=t(199),o=t(202);e.exports=function(e,n){var t=o(e,n);return r(t)?t:void 0}},function(e,n,t){"use strict";t.d(n,"e",(function(){return r})),t.d(n,"b",(function(){return i})),t.d(n,"j",(function(){return a})),t.d(n,"g",(function(){return c})),t.d(n,"h",(function(){return l})),t.d(n,"i",(function(){return u})),t.d(n,"c",(function(){return p})),t.d(n,"f",(function(){return d})),t.d(n,"l",(function(){return f})),t.d(n,"m",(function(){return h})),t.d(n,"d",(function(){return m})),t.d(n,"k",(function(){return g})),t.d(n,"n",(function(){return y})),t.d(n,"a",(function(){return x}));t(29),t(4),t(15),t(18),t(21);const r=/#.*$/,o=/\.(md|html)$/,i=/\/$/,a=/^[a-z]+:/i;function s(e){return decodeURI(e).replace(r,"").replace(o,"")}function c(e){return a.test(e)}function l(e){return/^mailto:/.test(e)}function u(e){return/^tel:/.test(e)}function p(e){if(c(e))return e;if(!e)return"404";const n=e.match(r),t=n?n[0]:"",o=s(e);return i.test(o)?e:o+".html"+t}function d(e,n){const t=e.hash,o=function(e){const n=e&&e.match(r);if(n)return n[0]}(n);if(o&&t!==o)return!1;return s(e.path)===s(n)}function f(e,n,t){if(c(n))return{type:"external",path:n};t&&(n=function(e,n,t){const r=e.charAt(0);if("/"===r)return e;if("?"===r||"#"===r)return n+e;const o=n.split("/");t&&o[o.length-1]||o.pop();const i=e.replace(/^\//,"").split("/");for(let e=0;e<i.length;e++){const n=i[e];".."===n?o.pop():"."!==n&&o.push(n)}""!==o[0]&&o.unshift("");return o.join("/")}(n,t));const r=s(n);for(let n=0;n<e.length;n++)if(s(e[n].regularPath)===r)return Object.assign({},e[n],{type:"page",path:p(e[n].path)});return console.error(`[vuepress] No matching page found for sidebar item "${n}"`),{}}function h(e,n,t,r){const{pages:o,themeConfig:i}=t,a=r&&i.locales&&i.locales[r]||i;if("auto"===(e.frontmatter.sidebar||a.sidebar||i.sidebar))return v(e);const s=a.sidebar||i.sidebar;if(s){const{base:t,config:r}=function(e,n){if(Array.isArray(n))return{base:"/",config:n};for(const r in n)if(0===(t=e,/(\.html|\/)$/.test(t)?t:t+"/").indexOf(encodeURI(r)))return{base:r,config:n[r]};var t;return{}}(n,s);return"auto"===r?v(e):r?r.map(e=>function e(n,t,r,o=1){if("string"==typeof n)return f(t,n,r);if(Array.isArray(n))return Object.assign(f(t,n[0],r),{title:n[1]});{o>3&&console.error("[vuepress] detected a too deep nested sidebar group.");const i=n.children||[];return 0===i.length&&n.path?Object.assign(f(t,n.path,r),{title:n.title}):{type:"group",path:n.path,title:n.title,sidebarDepth:n.sidebarDepth,initialOpenGroupIndex:n.initialOpenGroupIndex,children:i.map(n=>e(n,t,r,o+1)),collapsable:!1!==n.collapsable}}}(e,o,t)):[]}return[]}function v(e){const n=m(e.headers||[]);return[{type:"group",collapsable:!1,title:e.title,path:null,children:n.map(n=>({type:"auto",title:n.title,basePath:e.path,path:e.path+"#"+n.slug,children:n.children||[]}))}]}function m(e){let n;return(e=e.map(e=>Object.assign({},e))).forEach(e=>{2===e.level?n=e:n&&(n.children||(n.children=[])).push(e)}),e.filter(e=>2===e.level)}function g(e){return Object.assign(e,{type:e.items&&e.items.length?"links":"link"})}function y(e){return Object.prototype.toString.call(e).match(/\[object (.*?)\]/)[1].toLowerCase()}function b(e){let n=e.frontmatter.date||e.lastUpdated||new Date,t=new Date(n);return"Invalid Date"==t&&n&&(t=new Date(n.replace(/-/g,"/"))),t.getTime()}function x(e,n){return b(n)-b(e)}},function(e,n,t){"use strict";t(151)},function(e,n){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,n,t){"use strict";e.exports=!1},function(e,n,t){"use strict";var r=t(6),o=t(17),i=t(33);e.exports=r?function(e,n,t){return o.f(e,n,i(1,t))}:function(e,n,t){return e[n]=t,e}},function(e,n,t){"use strict";e.exports=function(e){return{iterator:e,next:e.next,done:!1}}},function(e,n,t){var r=t(28),o=t(184),i=t(185),a=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":a&&a in Object(e)?o(e):i(e)}},function(e,n,t){"use strict";var r=t(5),o=r({}.toString),i=r("".slice);e.exports=function(e){return i(o(e),8,-1)}},function(e,n,t){var r=t(13).Symbol;e.exports=r},function(e,n,t){"use strict";var r=t(10),o=t(30),i=t(31),a=t(178),s=t(180);r({target:"Array",proto:!0,arity:1,forced:t(3)((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(e){return e instanceof TypeError}}()},{push:function(e){var n=o(this),t=i(n),r=arguments.length;s(t+r);for(var c=0;c<r;c++)n[t]=arguments[c],t++;return a(n,t),t}})},function(e,n,t){"use strict";var r=t(46),o=Object;e.exports=function(e){return o(r(e))}},function(e,n,t){"use strict";var r=t(139);e.exports=function(e){return r(e.length)}},function(e,n,t){"use strict";var r=t(3);e.exports=!r((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},function(e,n,t){"use strict";e.exports=function(e,n){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:n}}},function(e,n,t){"use strict";var r=t(65),o=t(46);e.exports=function(e){return r(o(e))}},function(e,n,t){"use strict";var r=t(2),o=t(0),i=function(e){return o(e)?e:void 0};e.exports=function(e,n){return arguments.length<2?i(r[e]):r[e]&&r[e][n]}},function(e,n,t){"use strict";var r=t(5);e.exports=r({}.isPrototypeOf)},function(e,n,t){"use strict";var r=t(7),o=t(47);e.exports=function(e,n){var t=e[n];return o(t)?void 0:r(t)}},function(e,n,t){var r=t(189),o=t(190),i=t(191),a=t(192),s=t(193);function c(e){var n=-1,t=null==e?0:e.length;for(this.clear();++n<t;){var r=e[n];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=o,c.prototype.get=i,c.prototype.has=a,c.prototype.set=s,e.exports=c},function(e,n,t){var r=t(97);e.exports=function(e,n){for(var t=e.length;t--;)if(r(e[t][0],n))return t;return-1}},function(e,n,t){var r=t(19)(Object,"create");e.exports=r},function(e,n,t){var r=t(211);e.exports=function(e,n){var t=e.__data__;return r(n)?t["string"==typeof n?"string":"hash"]:t.map}},function(e,n,t){var r=t(62);e.exports=function(e){if("string"==typeof e||r(e))return e;var n=e+"";return"0"==n&&1/e==-1/0?"-0":n}},function(e,n,t){var r,o;
|
||
/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
|
||
* @license MIT */void 0===(o="function"==typeof(r=function(){var e,n,t={version:"0.2.0"},r=t.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,n,t){return e<n?n:e>t?t:e}function i(e){return 100*(-1+e)}t.configure=function(e){var n,t;for(n in e)void 0!==(t=e[n])&&e.hasOwnProperty(n)&&(r[n]=t);return this},t.status=null,t.set=function(e){var n=t.isStarted();e=o(e,r.minimum,1),t.status=1===e?null:e;var c=t.render(!n),l=c.querySelector(r.barSelector),u=r.speed,p=r.easing;return c.offsetWidth,a((function(n){""===r.positionUsing&&(r.positionUsing=t.getPositioningCSS()),s(l,function(e,n,t){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(e)+"%,0)"}:{"margin-left":i(e)+"%"}).transition="all "+n+"ms "+t,o}(e,u,p)),1===e?(s(c,{transition:"none",opacity:1}),c.offsetWidth,setTimeout((function(){s(c,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){t.remove(),n()}),u)}),u)):setTimeout(n,u)})),this},t.isStarted=function(){return"number"==typeof t.status},t.start=function(){t.status||t.set(0);var e=function(){setTimeout((function(){t.status&&(t.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},t.done=function(e){return e||t.status?t.inc(.3+.5*Math.random()).set(1):this},t.inc=function(e){var n=t.status;return n?("number"!=typeof e&&(e=(1-n)*o(Math.random()*n,.1,.95)),n=o(n+e,0,.994),t.set(n)):t.start()},t.trickle=function(){return t.inc(Math.random()*r.trickleRate)},e=0,n=0,t.promise=function(r){return r&&"resolved"!==r.state()?(0===n&&t.start(),e++,n++,r.always((function(){0==--n?(e=0,t.done()):t.set((e-n)/e)})),this):this},t.render=function(e){if(t.isRendered())return document.getElementById("nprogress");l(document.documentElement,"nprogress-busy");var n=document.createElement("div");n.id="nprogress",n.innerHTML=r.template;var o,a=n.querySelector(r.barSelector),c=e?"-100":i(t.status||0),u=document.querySelector(r.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+c+"%,0,0)"}),r.showSpinner||(o=n.querySelector(r.spinnerSelector))&&d(o),u!=document.body&&l(u,"nprogress-custom-parent"),u.appendChild(n),n},t.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&d(e)},t.isRendered=function(){return!!document.getElementById("nprogress")},t.getPositioningCSS=function(){var e=document.body.style,n="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return n+"Perspective"in e?"translate3d":n+"Transform"in e?"translate":"margin"};var a=function(){var e=[];function n(){var t=e.shift();t&&t(n)}return function(t){e.push(t),1==e.length&&n()}}(),s=function(){var e=["Webkit","O","Moz","ms"],n={};function t(t){return t=t.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,n){return n.toUpperCase()})),n[t]||(n[t]=function(n){var t=document.body.style;if(n in t)return n;for(var r,o=e.length,i=n.charAt(0).toUpperCase()+n.slice(1);o--;)if((r=e[o]+i)in t)return r;return n}(t))}function r(e,n,r){n=t(n),e.style[n]=r}return function(e,n){var t,o,i=arguments;if(2==i.length)for(t in n)void 0!==(o=n[t])&&n.hasOwnProperty(t)&&r(e,t,o);else r(e,i[1],i[2])}}();function c(e,n){return("string"==typeof e?e:p(e)).indexOf(" "+n+" ")>=0}function l(e,n){var t=p(e),r=t+n;c(t,n)||(e.className=r.substring(1))}function u(e,n){var t,r=p(e);c(e,n)&&(t=r.replace(" "+n+" "," "),e.className=t.substring(1,t.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function d(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return t})?r.call(n,t,n,e):r)||(e.exports=o)},function(e,n,t){"use strict";var r=t(0),o=t(17),i=t(81),a=t(50);e.exports=function(e,n,t,s){s||(s={});var c=s.enumerable,l=void 0!==s.name?s.name:n;if(r(t)&&i(t,l,s),s.global)c?e[n]=t:a(n,t);else{try{s.unsafe?e[n]&&(c=!0):delete e[n]}catch(e){}c?e[n]=t:o.f(e,n,{value:t,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return e}},function(e,n,t){"use strict";var r=t(124),o=t(12),i=t(1),a=t(48),s=t(160),c=t(31),l=t(36),u=t(161),p=t(91),d=t(54),f=TypeError,h=function(e,n){this.stopped=e,this.result=n},v=h.prototype;e.exports=function(e,n,t){var m,g,y,b,x,_,w,E=t&&t.that,k=!(!t||!t.AS_ENTRIES),T=!(!t||!t.IS_RECORD),C=!(!t||!t.IS_ITERATOR),j=!(!t||!t.INTERRUPTED),S=r(n,E),A=function(e){return m&&d(m,"normal",e),new h(!0,e)},O=function(e){return k?(i(e),j?S(e[0],e[1],A):S(e[0],e[1])):j?S(e,A):S(e)};if(T)m=e.iterator;else if(C)m=e;else{if(!(g=p(e)))throw new f(a(e)+" is not iterable");if(s(g)){for(y=0,b=c(e);b>y;y++)if((x=O(e[y]))&&l(v,x))return x;return new h(!1)}m=u(e,g)}for(_=T?e.next:m.next;!(w=o(_,m)).done;){try{x=O(w.value)}catch(e){d(m,"throw",e)}if("object"==typeof x&&x&&l(v,x))return x}return new h(!1)}},function(e,n,t){"use strict";var r=t(47),o=TypeError;e.exports=function(e){if(r(e))throw new o("Can't call method on "+e);return e}},function(e,n,t){"use strict";e.exports=function(e){return null==e}},function(e,n,t){"use strict";var r=String;e.exports=function(e){try{return r(e)}catch(e){return"Object"}}},function(e,n,t){"use strict";var r=t(23),o=t(2),i=t(50),a=e.exports=o["__core-js_shared__"]||i("__core-js_shared__",{});(a.versions||(a.versions=[])).push({version:"3.39.0",mode:r?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.39.0/LICENSE",source:"https://github.com/zloirock/core-js"})},function(e,n,t){"use strict";var r=t(2),o=Object.defineProperty;e.exports=function(e,n){try{o(r,e,{value:n,configurable:!0,writable:!0})}catch(t){r[e]=n}return n}},function(e,n,t){"use strict";var r=t(76),o=t(77),i=r("keys");e.exports=function(e){return i[e]||(i[e]=o(e))}},function(e,n,t){"use strict";e.exports={}},function(e,n,t){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,n,t){"use strict";var r=t(12),o=t(1),i=t(37);e.exports=function(e,n,t){var a,s;o(e);try{if(!(a=i(e,"return"))){if("throw"===n)throw t;return t}a=r(a,e)}catch(e){s=!0,a=e}if("throw"===n)throw t;if(s)throw a;return o(a),t}},function(e,n,t){var r=t(183),o=t(22),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(e){return o(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=c},function(e,n,t){var r=t(19)(t(13),"Map");e.exports=r},function(e,n){e.exports=function(e){var n=typeof e;return null!=e&&("object"==n||"function"==n)}},function(e,n,t){var r=t(203),o=t(210),i=t(212),a=t(213),s=t(214);function c(e){var n=-1,t=null==e?0:e.length;for(this.clear();++n<t;){var r=e[n];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=o,c.prototype.get=i,c.prototype.has=a,c.prototype.set=s,e.exports=c},function(e,n){e.exports=function(e){var n=-1,t=Array(e.size);return e.forEach((function(e){t[++n]=e})),t}},function(e,n){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},function(e,n,t){var r=t(11),o=t(62),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,n){if(r(e))return!1;var t=typeof e;return!("number"!=t&&"symbol"!=t&&"boolean"!=t&&null!=e&&!o(e))||(a.test(e)||!i.test(e)||null!=n&&e in Object(n))}},function(e,n,t){var r=t(26),o=t(22);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},function(e,n){e.exports=function(e){return e}},function(e,n,t){"use strict";t(275)},function(e,n,t){"use strict";var r=t(5),o=t(3),i=t(27),a=Object,s=r("".split);e.exports=o((function(){return!a("z").propertyIsEnumerable(0)}))?function(e){return"String"===i(e)?s(e,""):a(e)}:a},function(e,n,t){"use strict";var r,o=t(1),i=t(145),a=t(53),s=t(52),c=t(147),l=t(79),u=t(51),p=u("IE_PROTO"),d=function(){},f=function(e){return"<script>"+e+"<\/script>"},h=function(e){e.write(f("")),e.close();var n=e.parentWindow.Object;return e=null,n},v=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}var e,n;v="undefined"!=typeof document?document.domain&&r?h(r):((n=l("iframe")).style.display="none",c.appendChild(n),n.src=String("javascript:"),(e=n.contentWindow.document).open(),e.write(f("document.F=Object")),e.close(),e.F):h(r);for(var t=a.length;t--;)delete v.prototype[a[t]];return v()};s[p]=!0,e.exports=Object.create||function(e,n){var t;return null!==e?(d.prototype=o(e),t=new d,d.prototype=null,t[p]=e):t=v(),void 0===n?t:i.f(t,n)}},function(e,n){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,n){var t=/^\s+|\s+$/g,r=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,i=/^0o[0-7]+$/i,a=parseInt,s="object"==typeof global&&global&&global.Object===Object&&global,c="object"==typeof self&&self&&self.Object===Object&&self,l=s||c||Function("return this")(),u=Object.prototype.toString,p=Math.max,d=Math.min,f=function(){return l.Date.now()};function h(e){var n=typeof e;return!!e&&("object"==n||"function"==n)}function v(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==u.call(e)}(e))return NaN;if(h(e)){var n="function"==typeof e.valueOf?e.valueOf():e;e=h(n)?n+"":n}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(t,"");var s=o.test(e);return s||i.test(e)?a(e.slice(2),s?2:8):r.test(e)?NaN:+e}e.exports=function(e,n,t){var r,o,i,a,s,c,l=0,u=!1,m=!1,g=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function y(n){var t=r,i=o;return r=o=void 0,l=n,a=e.apply(i,t)}function b(e){return l=e,s=setTimeout(_,n),u?y(e):a}function x(e){var t=e-c;return void 0===c||t>=n||t<0||m&&e-l>=i}function _(){var e=f();if(x(e))return w(e);s=setTimeout(_,function(e){var t=n-(e-c);return m?d(t,i-(e-l)):t}(e))}function w(e){return s=void 0,g&&r?y(e):(r=o=void 0,a)}function E(){var e=f(),t=x(e);if(r=arguments,o=this,c=e,t){if(void 0===s)return b(c);if(m)return s=setTimeout(_,n),y(c)}return void 0===s&&(s=setTimeout(_,n)),a}return n=v(n)||0,h(t)&&(u=!!t.leading,i=(m="maxWait"in t)?p(v(t.maxWait)||0,n):i,g="trailing"in t?!!t.trailing:g),E.cancel=function(){void 0!==s&&clearTimeout(s),l=0,r=c=o=s=void 0},E.flush=function(){return void 0===s?a:w(f())},E}},function(e,n,t){"use strict";var r=t(6),o=t(12),i=t(128),a=t(33),s=t(34),c=t(70),l=t(9),u=t(78),p=Object.getOwnPropertyDescriptor;n.f=r?p:function(e,n){if(e=s(e),n=c(n),u)try{return p(e,n)}catch(e){}if(l(e,n))return a(!o(i.f,e,n),e[n])}},function(e,n,t){"use strict";var r=t(129),o=t(71);e.exports=function(e){var n=r(e,"string");return o(n)?n:n+""}},function(e,n,t){"use strict";var r=t(35),o=t(0),i=t(36),a=t(72),s=Object;e.exports=a?function(e){return"symbol"==typeof e}:function(e){var n=r("Symbol");return o(n)&&i(n.prototype,s(e))}},function(e,n,t){"use strict";var r=t(73);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,n,t){"use strict";var r=t(74),o=t(3),i=t(2).String;e.exports=!!Object.getOwnPropertySymbols&&!o((function(){var e=Symbol("symbol detection");return!i(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},function(e,n,t){"use strict";var r,o,i=t(2),a=t(75),s=i.process,c=i.Deno,l=s&&s.versions||c&&c.version,u=l&&l.v8;u&&(o=(r=u.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=+r[1]),e.exports=o},function(e,n,t){"use strict";var r=t(2).navigator,o=r&&r.userAgent;e.exports=o?String(o):""},function(e,n,t){"use strict";var r=t(49);e.exports=function(e,n){return r[e]||(r[e]=n||{})}},function(e,n,t){"use strict";var r=t(5),o=0,i=Math.random(),a=r(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+a(++o+i,36)}},function(e,n,t){"use strict";var r=t(6),o=t(3),i=t(79);e.exports=!r&&!o((function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(e,n,t){"use strict";var r=t(2),o=t(8),i=r.document,a=o(i)&&o(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},function(e,n,t){"use strict";var r=t(6),o=t(3);e.exports=r&&o((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},function(e,n,t){"use strict";var r=t(5),o=t(3),i=t(0),a=t(9),s=t(6),c=t(131).CONFIGURABLE,l=t(132),u=t(82),p=u.enforce,d=u.get,f=String,h=Object.defineProperty,v=r("".slice),m=r("".replace),g=r([].join),y=s&&!o((function(){return 8!==h((function(){}),"length",{value:8}).length})),b=String(String).split("String"),x=e.exports=function(e,n,t){"Symbol("===v(f(n),0,7)&&(n="["+m(f(n),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),t&&t.getter&&(n="get "+n),t&&t.setter&&(n="set "+n),(!a(e,"name")||c&&e.name!==n)&&(s?h(e,"name",{value:n,configurable:!0}):e.name=n),y&&t&&a(t,"arity")&&e.length!==t.arity&&h(e,"length",{value:t.arity});try{t&&a(t,"constructor")&&t.constructor?s&&h(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var r=p(e);return a(r,"source")||(r.source=g(b,"string"==typeof n?n:"")),e};Function.prototype.toString=x((function(){return i(this)&&d(this).source||l(this)}),"toString")},function(e,n,t){"use strict";var r,o,i,a=t(133),s=t(2),c=t(8),l=t(24),u=t(9),p=t(49),d=t(51),f=t(52),h=s.TypeError,v=s.WeakMap;if(a||p.state){var m=p.state||(p.state=new v);m.get=m.get,m.has=m.has,m.set=m.set,r=function(e,n){if(m.has(e))throw new h("Object already initialized");return n.facade=e,m.set(e,n),n},o=function(e){return m.get(e)||{}},i=function(e){return m.has(e)}}else{var g=d("state");f[g]=!0,r=function(e,n){if(u(e,g))throw new h("Object already initialized");return n.facade=e,l(e,g,n),n},o=function(e){return u(e,g)?e[g]:{}},i=function(e){return u(e,g)}}e.exports={set:r,get:o,has:i,enforce:function(e){return i(e)?o(e):r(e,{})},getterFor:function(e){return function(n){var t;if(!c(n)||(t=o(n)).type!==e)throw new h("Incompatible receiver, "+e+" required");return t}}}},function(e,n,t){"use strict";var r=t(9),o=t(134),i=t(69),a=t(17);e.exports=function(e,n,t){for(var s=o(n),c=a.f,l=i.f,u=0;u<s.length;u++){var p=s[u];r(e,p)||t&&r(t,p)||c(e,p,l(n,p))}}},function(e,n,t){"use strict";var r=t(5),o=t(9),i=t(34),a=t(136).indexOf,s=t(52),c=r([].push);e.exports=function(e,n){var t,r=i(e),l=0,u=[];for(t in r)!o(s,t)&&o(r,t)&&c(u,t);for(;n.length>l;)o(r,t=n[l++])&&(~a(u,t)||c(u,t));return u}},function(e,n,t){"use strict";var r=t(138);e.exports=function(e){var n=+e;return n!=n||0===n?0:r(n)}},function(e,n,t){"use strict";var r=t(9),o=t(0),i=t(30),a=t(51),s=t(143),c=a("IE_PROTO"),l=Object,u=l.prototype;e.exports=s?l.getPrototypeOf:function(e){var n=i(e);if(r(n,c))return n[c];var t=n.constructor;return o(t)&&n instanceof t?t.prototype:n instanceof l?u:null}},function(e,n,t){"use strict";var r,o,i,a=t(3),s=t(0),c=t(8),l=t(66),u=t(86),p=t(44),d=t(16),f=t(23),h=d("iterator"),v=!1;[].keys&&("next"in(i=[].keys())?(o=u(u(i)))!==Object.prototype&&(r=o):v=!0),!c(r)||a((function(){var e={};return r[h].call(e)!==e}))?r={}:f&&(r=l(r)),s(r[h])||p(r,h,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:v}},function(e,n,t){"use strict";var r=t(12),o=t(66),i=t(24),a=t(149),s=t(16),c=t(82),l=t(37),u=t(87).IteratorPrototype,p=t(150),d=t(54),f=s("toStringTag"),h=c.set,v=function(e){var n=c.getterFor(e?"WrapForValidIterator":"IteratorHelper");return a(o(u),{next:function(){var t=n(this);if(e)return t.nextHandler();try{var r=t.done?void 0:t.nextHandler();return p(r,t.done)}catch(e){throw t.done=!0,e}},return:function(){var t=n(this),o=t.iterator;if(t.done=!0,e){var i=l(o,"return");return i?r(i,o):p(void 0,!0)}if(t.inner)try{d(t.inner.iterator,"normal")}catch(e){return d(o,"throw",e)}return o&&d(o,"normal"),p(void 0,!0)}})},m=v(!0),g=v(!1);i(g,f,"Iterator Helper"),e.exports=function(e,n){var t=function(t,r){r?(r.iterator=t.iterator,r.next=t.next):r=t,r.type=n?"WrapForValidIterator":"IteratorHelper",r.nextHandler=e,r.counter=0,r.done=!1,h(this,r)};return t.prototype=n?m:g,t}},function(e,n,t){"use strict";var r=t(1),o=t(54);e.exports=function(e,n,t,i){try{return i?n(r(t)[0],t[1]):n(t)}catch(n){o(e,"throw",n)}}},function(e,n,t){"use strict";e.exports={}},function(e,n,t){"use strict";var r=t(92),o=t(37),i=t(47),a=t(90),s=t(16)("iterator");e.exports=function(e){if(!i(e))return o(e,s)||o(e,"@@iterator")||a[r(e)]}},function(e,n,t){"use strict";var r=t(162),o=t(0),i=t(27),a=t(16)("toStringTag"),s=Object,c="Arguments"===i(function(){return arguments}());e.exports=r?i:function(e){var n,t,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(t=function(e,n){try{return e[n]}catch(e){}}(n=s(e),a))?t:c?i(n):"Object"===(r=i(n))&&o(n.callee)?"Arguments":r}},function(e,n,t){"use strict";var r=t(168),o=t(8),i=t(46),a=t(169);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,n=!1,t={};try{(e=r(Object.prototype,"__proto__","set"))(t,[]),n=t instanceof Array}catch(e){}return function(t,r){return i(t),a(r),o(t)?(n?e(t,r):t.__proto__=r,t):t}}():void 0)},function(e,n){e.exports=function(e,n){for(var t=-1,r=n.length,o=e.length;++t<r;)e[o+t]=n[t];return e}},function(e,n){var t="object"==typeof global&&global&&global.Object===Object&&global;e.exports=t},function(e,n,t){var r=t(38),o=t(194),i=t(195),a=t(196),s=t(197),c=t(198);function l(e){var n=this.__data__=new r(e);this.size=n.size}l.prototype.clear=o,l.prototype.delete=i,l.prototype.get=a,l.prototype.has=s,l.prototype.set=c,e.exports=l},function(e,n){e.exports=function(e,n){return e===n||e!=e&&n!=n}},function(e,n,t){var r=t(26),o=t(57);e.exports=function(e){if(!o(e))return!1;var n=r(e);return"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n}},function(e,n){var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},function(e,n,t){var r=t(215),o=t(22);e.exports=function e(n,t,i,a,s){return n===t||(null==n||null==t||!o(n)&&!o(t)?n!=n&&t!=t:r(n,t,i,a,e,s))}},function(e,n,t){var r=t(102),o=t(218),i=t(103);e.exports=function(e,n,t,a,s,c){var l=1&t,u=e.length,p=n.length;if(u!=p&&!(l&&p>u))return!1;var d=c.get(e),f=c.get(n);if(d&&f)return d==n&&f==e;var h=-1,v=!0,m=2&t?new r:void 0;for(c.set(e,n),c.set(n,e);++h<u;){var g=e[h],y=n[h];if(a)var b=l?a(y,g,h,n,e,c):a(g,y,h,e,n,c);if(void 0!==b){if(b)continue;v=!1;break}if(m){if(!o(n,(function(e,n){if(!i(m,n)&&(g===e||s(g,e,t,a,c)))return m.push(n)}))){v=!1;break}}else if(g!==y&&!s(g,y,t,a,c)){v=!1;break}}return c.delete(e),c.delete(n),v}},function(e,n,t){var r=t(58),o=t(216),i=t(217);function a(e){var n=-1,t=null==e?0:e.length;for(this.__data__=new r;++n<t;)this.add(e[n])}a.prototype.add=a.prototype.push=o,a.prototype.has=i,e.exports=a},function(e,n){e.exports=function(e,n){return e.has(n)}},function(e,n,t){var r=t(228),o=t(234),i=t(108);e.exports=function(e){return i(e)?r(e):o(e)}},function(e,n,t){(function(e){var r=t(13),o=t(230),i=n&&!n.nodeType&&n,a=i&&"object"==typeof e&&e&&!e.nodeType&&e,s=a&&a.exports===i?r.Buffer:void 0,c=(s?s.isBuffer:void 0)||o;e.exports=c}).call(this,t(67)(e))},function(e,n){var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e<n}},function(e,n,t){var r=t(231),o=t(232),i=t(233),a=i&&i.isTypedArray,s=a?o(a):r;e.exports=s},function(e,n,t){var r=t(98),o=t(60);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},function(e,n,t){var r=t(19)(t(13),"Set");e.exports=r},function(e,n,t){var r=t(57);e.exports=function(e){return e==e&&!r(e)}},function(e,n){e.exports=function(e,n){return function(t){return null!=t&&(t[e]===n&&(void 0!==n||e in Object(t)))}}},function(e,n,t){var r=t(113),o=t(42);e.exports=function(e,n){for(var t=0,i=(n=r(n,e)).length;null!=e&&t<i;)e=e[o(n[t++])];return t&&t==i?e:void 0}},function(e,n,t){var r=t(11),o=t(61),i=t(245),a=t(248);e.exports=function(e,n){return r(e)?e:o(e,n)?[e]:i(a(e))}},function(e,n,t){},function(e,n,t){},function(e,n,t){},function(e,n,t){},function(e,n,t){var r=t(181),o=t(186),i=t(257),a=t(265),s=t(274),c=t(125),l=i((function(e){var n=c(e);return s(n)&&(n=void 0),a(r(e,1,s,!0),o(n,2))}));e.exports=l},function(e,n,t){"use strict";
|
||
/*!
|
||
* escape-html
|
||
* Copyright(c) 2012-2013 TJ Holowaychuk
|
||
* Copyright(c) 2015 Andreas Lubbe
|
||
* Copyright(c) 2015 Tiancheng "Timothy" Gu
|
||
* MIT Licensed
|
||
*/var r=/["'&<>]/;e.exports=function(e){var n,t=""+e,o=r.exec(t);if(!o)return t;var i="",a=0,s=0;for(a=o.index;a<t.length;a++){switch(t.charCodeAt(a)){case 34:n=""";break;case 38:n="&";break;case 39:n="'";break;case 60:n="<";break;case 62:n=">";break;default:continue}s!==a&&(i+=t.substring(s,a)),s=a+1,i+=n}return s!==a?i+t.substring(s,a):i}},function(e,n,t){"use strict";t.r(n);var r={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}}},o=(t(278),t(14)),i=Object(o.a)(r,(function(){return(0,this._self._c)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"4f1e9d0c",null);n.default=i.exports},function(e,n,t){"use strict";t.r(n);t(4),t(15),t(18),t(21);var r={name:"CodeGroup",data:()=>({codeTabs:[],activeCodeTabIndex:-1}),watch:{activeCodeTabIndex(e){this.codeTabs.forEach(e=>{e.elm.classList.remove("theme-code-block__active")}),this.codeTabs[e].elm.classList.add("theme-code-block__active")}},mounted(){this.codeTabs=(this.$slots.default||[]).filter(e=>Boolean(e.componentOptions)).map((e,n)=>(""===e.componentOptions.propsData.active&&(this.activeCodeTabIndex=n),{title:e.componentOptions.propsData.title,elm:e.elm})),-1===this.activeCodeTabIndex&&this.codeTabs.length>0&&(this.activeCodeTabIndex=0)},methods:{changeCodeTab(e){this.activeCodeTabIndex=e}}},o=(t(279),t(14)),i=Object(o.a)(r,(function(){var e=this,n=e._self._c;return n("div",{staticClass:"theme-code-group"},[n("div",{staticClass:"theme-code-group__nav"},[n("ul",{staticClass:"theme-code-group__ul"},e._l(e.codeTabs,(function(t,r){return n("li",{key:t.title,staticClass:"theme-code-group__li"},[n("button",{staticClass:"theme-code-group__nav-tab",class:{"theme-code-group__nav-tab-active":r===e.activeCodeTabIndex},on:{click:function(n){return e.changeCodeTab(r)}}},[e._v("\n "+e._s(t.title)+"\n ")])])})),0)]),e._v(" "),e._t("default"),e._v(" "),e.codeTabs.length<1?n("pre",{staticClass:"pre-blank"},[e._v("// Make sure to add code blocks to your code group")]):e._e()],2)}),[],!1,null,"2f5f1757",null);n.default=i.exports},function(e,n,t){"use strict";var r=t(92),o=String;e.exports=function(e){if("Symbol"===r(e))throw new TypeError("Cannot convert a Symbol value to a string");return o(e)}},function(e,n,t){"use strict";var r=t(81),o=t(17);e.exports=function(e,n,t){return t.get&&r(t.get,n,{getter:!0}),t.set&&r(t.set,n,{setter:!0}),o.f(e,n,t)}},function(e,n,t){"use strict";var r=t(159),o=t(7),i=t(32),a=r(r.bind);e.exports=function(e,n){return o(e),void 0===n?e:i?a(e,n):function(){return e.apply(n,arguments)}}},function(e,n){e.exports=function(e){var n=null==e?0:e.length;return n?e[n-1]:void 0}},function(e,n,t){e.exports=t(284)},function(e,n,t){"use strict";var r=t(10),o=t(2),i=t(142),a=t(1),s=t(0),c=t(86),l=t(123),u=t(144),p=t(3),d=t(9),f=t(16),h=t(87).IteratorPrototype,v=t(6),m=t(23),g=f("toStringTag"),y=TypeError,b=o.Iterator,x=m||!s(b)||b.prototype!==h||!p((function(){b({})})),_=function(){if(i(this,h),c(this)===h)throw new y("Abstract class Iterator not directly constructable")},w=function(e,n){v?l(h,e,{configurable:!0,get:function(){return n},set:function(n){if(a(this),this===h)throw new y("You can't redefine this property");d(this,e)?this[e]=n:u(this,e,n)}}):h[e]=n};d(h,g)||w(g,"Iterator"),!x&&d(h,"constructor")&&h.constructor!==Object||w("constructor",_),_.prototype=h,r({global:!0,constructor:!0,forced:x},{Iterator:_})},function(e,n,t){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);n.f=i?function(e){var n=o(this,e);return!!n&&n.enumerable}:r},function(e,n,t){"use strict";var r=t(12),o=t(8),i=t(71),a=t(37),s=t(130),c=t(16),l=TypeError,u=c("toPrimitive");e.exports=function(e,n){if(!o(e)||i(e))return e;var t,c=a(e,u);if(c){if(void 0===n&&(n="default"),t=r(c,e,n),!o(t)||i(t))return t;throw new l("Can't convert object to primitive value")}return void 0===n&&(n="number"),s(e,n)}},function(e,n,t){"use strict";var r=t(12),o=t(0),i=t(8),a=TypeError;e.exports=function(e,n){var t,s;if("string"===n&&o(t=e.toString)&&!i(s=r(t,e)))return s;if(o(t=e.valueOf)&&!i(s=r(t,e)))return s;if("string"!==n&&o(t=e.toString)&&!i(s=r(t,e)))return s;throw new a("Can't convert object to primitive value")}},function(e,n,t){"use strict";var r=t(6),o=t(9),i=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,s=o(i,"name"),c=s&&"something"===function(){}.name,l=s&&(!r||r&&a(i,"name").configurable);e.exports={EXISTS:s,PROPER:c,CONFIGURABLE:l}},function(e,n,t){"use strict";var r=t(5),o=t(0),i=t(49),a=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(e){return a(e)}),e.exports=i.inspectSource},function(e,n,t){"use strict";var r=t(2),o=t(0),i=r.WeakMap;e.exports=o(i)&&/native code/.test(String(i))},function(e,n,t){"use strict";var r=t(35),o=t(5),i=t(135),a=t(140),s=t(1),c=o([].concat);e.exports=r("Reflect","ownKeys")||function(e){var n=i.f(s(e)),t=a.f;return t?c(n,t(e)):n}},function(e,n,t){"use strict";var r=t(84),o=t(53).concat("length","prototype");n.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},function(e,n,t){"use strict";var r=t(34),o=t(137),i=t(31),a=function(e){return function(n,t,a){var s=r(n),c=i(s);if(0===c)return!e&&-1;var l,u=o(a,c);if(e&&t!=t){for(;c>u;)if((l=s[u++])!=l)return!0}else for(;c>u;u++)if((e||u in s)&&s[u]===t)return e||u||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},function(e,n,t){"use strict";var r=t(85),o=Math.max,i=Math.min;e.exports=function(e,n){var t=r(e);return t<0?o(t+n,0):i(t,n)}},function(e,n,t){"use strict";var r=Math.ceil,o=Math.floor;e.exports=Math.trunc||function(e){var n=+e;return(n>0?o:r)(n)}},function(e,n,t){"use strict";var r=t(85),o=Math.min;e.exports=function(e){var n=r(e);return n>0?o(n,9007199254740991):0}},function(e,n,t){"use strict";n.f=Object.getOwnPropertySymbols},function(e,n,t){"use strict";var r=t(3),o=t(0),i=/#|\.prototype\./,a=function(e,n){var t=c[s(e)];return t===u||t!==l&&(o(n)?r(n):!!n)},s=a.normalize=function(e){return String(e).replace(i,".").toLowerCase()},c=a.data={},l=a.NATIVE="N",u=a.POLYFILL="P";e.exports=a},function(e,n,t){"use strict";var r=t(36),o=TypeError;e.exports=function(e,n){if(r(n,e))return e;throw new o("Incorrect invocation")}},function(e,n,t){"use strict";var r=t(3);e.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},function(e,n,t){"use strict";var r=t(6),o=t(17),i=t(33);e.exports=function(e,n,t){r?o.f(e,n,i(0,t)):e[n]=t}},function(e,n,t){"use strict";var r=t(6),o=t(80),i=t(17),a=t(1),s=t(34),c=t(146);n.f=r&&!o?Object.defineProperties:function(e,n){a(e);for(var t,r=s(n),o=c(n),l=o.length,u=0;l>u;)i.f(e,t=o[u++],r[t]);return e}},function(e,n,t){"use strict";var r=t(84),o=t(53);e.exports=Object.keys||function(e){return r(e,o)}},function(e,n,t){"use strict";var r=t(35);e.exports=r("document","documentElement")},function(e,n,t){"use strict";var r=t(10),o=t(12),i=t(7),a=t(1),s=t(25),c=t(88),l=t(89),u=t(23),p=c((function(){for(var e,n,t=this.iterator,r=this.predicate,i=this.next;;){if(e=a(o(i,t)),this.done=!!e.done)return;if(n=e.value,l(t,r,[n,this.counter++],!0))return n}}));r({target:"Iterator",proto:!0,real:!0,forced:u},{filter:function(e){return a(this),i(e),new p(s(this),{predicate:e})}})},function(e,n,t){"use strict";var r=t(44);e.exports=function(e,n,t){for(var o in n)r(e,o,n[o],t);return e}},function(e,n,t){"use strict";e.exports=function(e,n){return{value:e,done:n}}},function(e,n,t){"use strict";var r=t(10),o=t(152);r({target:"Iterator",proto:!0,real:!0,forced:t(23)},{map:o})},function(e,n,t){"use strict";var r=t(12),o=t(7),i=t(1),a=t(25),s=t(88),c=t(89),l=s((function(){var e=this.iterator,n=i(r(this.next,e));if(!(this.done=!!n.done))return c(e,this.mapper,[n.value,this.counter++],!0)}));e.exports=function(e){return i(this),o(e),new l(a(this),{mapper:e})}},function(e,n,t){"use strict";var r=t(10),o=t(154).left,i=t(155),a=t(74);r({target:"Array",proto:!0,forced:!t(156)&&a>79&&a<83||!i("reduce")},{reduce:function(e){var n=arguments.length;return o(this,e,n,n>1?arguments[1]:void 0)}})},function(e,n,t){"use strict";var r=t(7),o=t(30),i=t(65),a=t(31),s=TypeError,c="Reduce of empty array with no initial value",l=function(e){return function(n,t,l,u){var p=o(n),d=i(p),f=a(p);if(r(t),0===f&&l<2)throw new s(c);var h=e?f-1:0,v=e?-1:1;if(l<2)for(;;){if(h in d){u=d[h],h+=v;break}if(h+=v,e?h<0:f<=h)throw new s(c)}for(;e?h>=0:f>h;h+=v)h in d&&(u=t(u,d[h],h,p));return u}};e.exports={left:l(!1),right:l(!0)}},function(e,n,t){"use strict";var r=t(3);e.exports=function(e,n){var t=[][e];return!!t&&r((function(){t.call(null,n||function(){return 1},1)}))}},function(e,n,t){"use strict";var r=t(157);e.exports="NODE"===r},function(e,n,t){"use strict";var r=t(2),o=t(75),i=t(27),a=function(e){return o.slice(0,e.length)===e};e.exports=a("Bun/")?"BUN":a("Cloudflare-Workers")?"CLOUDFLARE":a("Deno/")?"DENO":a("Node.js/")?"NODE":r.Bun&&"string"==typeof Bun.version?"BUN":r.Deno&&"object"==typeof Deno.version?"DENO":"process"===i(r.process)?"NODE":r.window&&r.document?"BROWSER":"REST"},function(e,n,t){"use strict";var r=t(10),o=t(45),i=t(7),a=t(1),s=t(25);r({target:"Iterator",proto:!0,real:!0},{forEach:function(e){a(this),i(e);var n=s(this),t=0;o(n,(function(n){e(n,t++)}),{IS_RECORD:!0})}})},function(e,n,t){"use strict";var r=t(27),o=t(5);e.exports=function(e){if("Function"===r(e))return o(e)}},function(e,n,t){"use strict";var r=t(16),o=t(90),i=r("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(o.Array===e||a[i]===e)}},function(e,n,t){"use strict";var r=t(12),o=t(7),i=t(1),a=t(48),s=t(91),c=TypeError;e.exports=function(e,n){var t=arguments.length<2?s(e):n;if(o(t))return i(r(t,e));throw new c(a(e)+" is not iterable")}},function(e,n,t){"use strict";var r={};r[t(16)("toStringTag")]="z",e.exports="[object z]"===String(r)},function(e,n,t){"use strict";t(164)},function(e,n,t){"use strict";var r=t(10),o=t(45),i=t(7),a=t(1),s=t(25),c=TypeError;r({target:"Iterator",proto:!0,real:!0},{reduce:function(e){a(this),i(e);var n=s(this),t=arguments.length<2,r=t?void 0:arguments[1],l=0;if(o(n,(function(n){t?(t=!1,r=n):r=e(r,n,l),l++}),{IS_RECORD:!0}),t)throw new c("Reduce of empty iterator with no initial value");return r}})},function(e,n,t){"use strict";var r=t(10),o=t(2),i=t(166),a=t(167),s=o.WebAssembly,c=7!==new Error("e",{cause:7}).cause,l=function(e,n){var t={};t[e]=a(e,n,c),r({global:!0,constructor:!0,arity:1,forced:c},t)},u=function(e,n){if(s&&s[e]){var t={};t[e]=a("WebAssembly."+e,n,c),r({target:"WebAssembly",stat:!0,constructor:!0,arity:1,forced:c},t)}};l("Error",(function(e){return function(n){return i(e,this,arguments)}})),l("EvalError",(function(e){return function(n){return i(e,this,arguments)}})),l("RangeError",(function(e){return function(n){return i(e,this,arguments)}})),l("ReferenceError",(function(e){return function(n){return i(e,this,arguments)}})),l("SyntaxError",(function(e){return function(n){return i(e,this,arguments)}})),l("TypeError",(function(e){return function(n){return i(e,this,arguments)}})),l("URIError",(function(e){return function(n){return i(e,this,arguments)}})),u("CompileError",(function(e){return function(n){return i(e,this,arguments)}})),u("LinkError",(function(e){return function(n){return i(e,this,arguments)}})),u("RuntimeError",(function(e){return function(n){return i(e,this,arguments)}}))},function(e,n,t){"use strict";var r=t(32),o=Function.prototype,i=o.apply,a=o.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?a.bind(i):function(){return a.apply(i,arguments)})},function(e,n,t){"use strict";var r=t(35),o=t(9),i=t(24),a=t(36),s=t(93),c=t(83),l=t(171),u=t(172),p=t(173),d=t(174),f=t(175),h=t(6),v=t(23);e.exports=function(e,n,t,m){var g=m?2:1,y=e.split("."),b=y[y.length-1],x=r.apply(null,y);if(x){var _=x.prototype;if(!v&&o(_,"cause")&&delete _.cause,!t)return x;var w=r("Error"),E=n((function(e,n){var t=p(m?n:e,void 0),r=m?new x(e):new x;return void 0!==t&&i(r,"message",t),f(r,E,r.stack,2),this&&a(_,this)&&u(r,this,E),arguments.length>g&&d(r,arguments[g]),r}));if(E.prototype=_,"Error"!==b?s?s(E,w):c(E,w,{name:!0}):h&&"stackTraceLimit"in x&&(l(E,x,"stackTraceLimit"),l(E,x,"prepareStackTrace")),c(E,x),!v)try{_.name!==b&&i(_,"name",b),_.constructor=E}catch(e){}return E}}},function(e,n,t){"use strict";var r=t(5),o=t(7);e.exports=function(e,n,t){try{return r(o(Object.getOwnPropertyDescriptor(e,n)[t]))}catch(e){}}},function(e,n,t){"use strict";var r=t(170),o=String,i=TypeError;e.exports=function(e){if(r(e))return e;throw new i("Can't set "+o(e)+" as a prototype")}},function(e,n,t){"use strict";var r=t(8);e.exports=function(e){return r(e)||null===e}},function(e,n,t){"use strict";var r=t(17).f;e.exports=function(e,n,t){t in e||r(e,t,{configurable:!0,get:function(){return n[t]},set:function(e){n[t]=e}})}},function(e,n,t){"use strict";var r=t(0),o=t(8),i=t(93);e.exports=function(e,n,t){var a,s;return i&&r(a=n.constructor)&&a!==t&&o(s=a.prototype)&&s!==t.prototype&&i(e,s),e}},function(e,n,t){"use strict";var r=t(122);e.exports=function(e,n){return void 0===e?arguments.length<2?"":n:r(e)}},function(e,n,t){"use strict";var r=t(8),o=t(24);e.exports=function(e,n){r(n)&&"cause"in n&&o(e,"cause",n.cause)}},function(e,n,t){"use strict";var r=t(24),o=t(176),i=t(177),a=Error.captureStackTrace;e.exports=function(e,n,t,s){i&&(a?a(e,n):r(e,"stack",o(t,s)))}},function(e,n,t){"use strict";var r=t(5),o=Error,i=r("".replace),a=String(new o("zxcasd").stack),s=/\n\s*at [^:]*:[^\n]*/,c=s.test(a);e.exports=function(e,n){if(c&&"string"==typeof e&&!o.prepareStackTrace)for(;n--;)e=i(e,s,"");return e}},function(e,n,t){"use strict";var r=t(3),o=t(33);e.exports=!r((function(){var e=new Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",o(1,7)),7!==e.stack)}))},function(e,n,t){"use strict";var r=t(6),o=t(179),i=TypeError,a=Object.getOwnPropertyDescriptor,s=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();e.exports=s?function(e,n){if(o(e)&&!a(e,"length").writable)throw new i("Cannot set read only .length");return e.length=n}:function(e,n){return e.length=n}},function(e,n,t){"use strict";var r=t(27);e.exports=Array.isArray||function(e){return"Array"===r(e)}},function(e,n,t){"use strict";var r=TypeError;e.exports=function(e){if(e>9007199254740991)throw r("Maximum allowed index exceeded");return e}},function(e,n,t){var r=t(94),o=t(182);e.exports=function e(n,t,i,a,s){var c=-1,l=n.length;for(i||(i=o),s||(s=[]);++c<l;){var u=n[c];t>0&&i(u)?t>1?e(u,t-1,i,a,s):r(s,u):a||(s[s.length]=u)}return s}},function(e,n,t){var r=t(28),o=t(55),i=t(11),a=r?r.isConcatSpreadable:void 0;e.exports=function(e){return i(e)||o(e)||!!(a&&e&&e[a])}},function(e,n,t){var r=t(26),o=t(22);e.exports=function(e){return o(e)&&"[object Arguments]"==r(e)}},function(e,n,t){var r=t(28),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var n=i.call(e,s),t=e[s];try{e[s]=void 0;var r=!0}catch(e){}var o=a.call(e);return r&&(n?e[s]=t:delete e[s]),o}},function(e,n){var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},function(e,n,t){var r=t(187),o=t(243),i=t(63),a=t(11),s=t(254);e.exports=function(e){return"function"==typeof e?e:null==e?i:"object"==typeof e?a(e)?o(e[0],e[1]):r(e):s(e)}},function(e,n,t){var r=t(188),o=t(242),i=t(111);e.exports=function(e){var n=o(e);return 1==n.length&&n[0][2]?i(n[0][0],n[0][1]):function(t){return t===e||r(t,e,n)}}},function(e,n,t){var r=t(96),o=t(100);e.exports=function(e,n,t,i){var a=t.length,s=a,c=!i;if(null==e)return!s;for(e=Object(e);a--;){var l=t[a];if(c&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++a<s;){var u=(l=t[a])[0],p=e[u],d=l[1];if(c&&l[2]){if(void 0===p&&!(u in e))return!1}else{var f=new r;if(i)var h=i(p,d,u,e,n,f);if(!(void 0===h?o(d,p,3,i,f):h))return!1}}return!0}},function(e,n){e.exports=function(){this.__data__=[],this.size=0}},function(e,n,t){var r=t(39),o=Array.prototype.splice;e.exports=function(e){var n=this.__data__,t=r(n,e);return!(t<0)&&(t==n.length-1?n.pop():o.call(n,t,1),--this.size,!0)}},function(e,n,t){var r=t(39);e.exports=function(e){var n=this.__data__,t=r(n,e);return t<0?void 0:n[t][1]}},function(e,n,t){var r=t(39);e.exports=function(e){return r(this.__data__,e)>-1}},function(e,n,t){var r=t(39);e.exports=function(e,n){var t=this.__data__,o=r(t,e);return o<0?(++this.size,t.push([e,n])):t[o][1]=n,this}},function(e,n,t){var r=t(38);e.exports=function(){this.__data__=new r,this.size=0}},function(e,n){e.exports=function(e){var n=this.__data__,t=n.delete(e);return this.size=n.size,t}},function(e,n){e.exports=function(e){return this.__data__.get(e)}},function(e,n){e.exports=function(e){return this.__data__.has(e)}},function(e,n,t){var r=t(38),o=t(56),i=t(58);e.exports=function(e,n){var t=this.__data__;if(t instanceof r){var a=t.__data__;if(!o||a.length<199)return a.push([e,n]),this.size=++t.size,this;t=this.__data__=new i(a)}return t.set(e,n),this.size=t.size,this}},function(e,n,t){var r=t(98),o=t(200),i=t(57),a=t(99),s=/^\[object .+?Constructor\]$/,c=Function.prototype,l=Object.prototype,u=c.toString,p=l.hasOwnProperty,d=RegExp("^"+u.call(p).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!i(e)||o(e))&&(r(e)?d:s).test(a(e))}},function(e,n,t){var r,o=t(201),i=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!i&&i in e}},function(e,n,t){var r=t(13)["__core-js_shared__"];e.exports=r},function(e,n){e.exports=function(e,n){return null==e?void 0:e[n]}},function(e,n,t){var r=t(204),o=t(38),i=t(56);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(i||o),string:new r}}},function(e,n,t){var r=t(205),o=t(206),i=t(207),a=t(208),s=t(209);function c(e){var n=-1,t=null==e?0:e.length;for(this.clear();++n<t;){var r=e[n];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=o,c.prototype.get=i,c.prototype.has=a,c.prototype.set=s,e.exports=c},function(e,n,t){var r=t(40);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},function(e,n){e.exports=function(e){var n=this.has(e)&&delete this.__data__[e];return this.size-=n?1:0,n}},function(e,n,t){var r=t(40),o=Object.prototype.hasOwnProperty;e.exports=function(e){var n=this.__data__;if(r){var t=n[e];return"__lodash_hash_undefined__"===t?void 0:t}return o.call(n,e)?n[e]:void 0}},function(e,n,t){var r=t(40),o=Object.prototype.hasOwnProperty;e.exports=function(e){var n=this.__data__;return r?void 0!==n[e]:o.call(n,e)}},function(e,n,t){var r=t(40);e.exports=function(e,n){var t=this.__data__;return this.size+=this.has(e)?0:1,t[e]=r&&void 0===n?"__lodash_hash_undefined__":n,this}},function(e,n,t){var r=t(41);e.exports=function(e){var n=r(this,e).delete(e);return this.size-=n?1:0,n}},function(e,n){e.exports=function(e){var n=typeof e;return"string"==n||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==e:null===e}},function(e,n,t){var r=t(41);e.exports=function(e){return r(this,e).get(e)}},function(e,n,t){var r=t(41);e.exports=function(e){return r(this,e).has(e)}},function(e,n,t){var r=t(41);e.exports=function(e,n){var t=r(this,e),o=t.size;return t.set(e,n),this.size+=t.size==o?0:1,this}},function(e,n,t){var r=t(96),o=t(101),i=t(219),a=t(222),s=t(238),c=t(11),l=t(105),u=t(107),p="[object Object]",d=Object.prototype.hasOwnProperty;e.exports=function(e,n,t,f,h,v){var m=c(e),g=c(n),y=m?"[object Array]":s(e),b=g?"[object Array]":s(n),x=(y="[object Arguments]"==y?p:y)==p,_=(b="[object Arguments]"==b?p:b)==p,w=y==b;if(w&&l(e)){if(!l(n))return!1;m=!0,x=!1}if(w&&!x)return v||(v=new r),m||u(e)?o(e,n,t,f,h,v):i(e,n,y,t,f,h,v);if(!(1&t)){var E=x&&d.call(e,"__wrapped__"),k=_&&d.call(n,"__wrapped__");if(E||k){var T=E?e.value():e,C=k?n.value():n;return v||(v=new r),h(T,C,t,f,v)}}return!!w&&(v||(v=new r),a(e,n,t,f,h,v))}},function(e,n){e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},function(e,n){e.exports=function(e){return this.__data__.has(e)}},function(e,n){e.exports=function(e,n){for(var t=-1,r=null==e?0:e.length;++t<r;)if(n(e[t],t,e))return!0;return!1}},function(e,n,t){var r=t(28),o=t(220),i=t(97),a=t(101),s=t(221),c=t(59),l=r?r.prototype:void 0,u=l?l.valueOf:void 0;e.exports=function(e,n,t,r,l,p,d){switch(t){case"[object DataView]":if(e.byteLength!=n.byteLength||e.byteOffset!=n.byteOffset)return!1;e=e.buffer,n=n.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=n.byteLength||!p(new o(e),new o(n)));case"[object Boolean]":case"[object Date]":case"[object Number]":return i(+e,+n);case"[object Error]":return e.name==n.name&&e.message==n.message;case"[object RegExp]":case"[object String]":return e==n+"";case"[object Map]":var f=s;case"[object Set]":var h=1&r;if(f||(f=c),e.size!=n.size&&!h)return!1;var v=d.get(e);if(v)return v==n;r|=2,d.set(e,n);var m=a(f(e),f(n),r,l,p,d);return d.delete(e),m;case"[object Symbol]":if(u)return u.call(e)==u.call(n)}return!1}},function(e,n,t){var r=t(13).Uint8Array;e.exports=r},function(e,n){e.exports=function(e){var n=-1,t=Array(e.size);return e.forEach((function(e,r){t[++n]=[r,e]})),t}},function(e,n,t){var r=t(223),o=Object.prototype.hasOwnProperty;e.exports=function(e,n,t,i,a,s){var c=1&t,l=r(e),u=l.length;if(u!=r(n).length&&!c)return!1;for(var p=u;p--;){var d=l[p];if(!(c?d in n:o.call(n,d)))return!1}var f=s.get(e),h=s.get(n);if(f&&h)return f==n&&h==e;var v=!0;s.set(e,n),s.set(n,e);for(var m=c;++p<u;){var g=e[d=l[p]],y=n[d];if(i)var b=c?i(y,g,d,n,e,s):i(g,y,d,e,n,s);if(!(void 0===b?g===y||a(g,y,t,i,s):b)){v=!1;break}m||(m="constructor"==d)}if(v&&!m){var x=e.constructor,_=n.constructor;x==_||!("constructor"in e)||!("constructor"in n)||"function"==typeof x&&x instanceof x&&"function"==typeof _&&_ instanceof _||(v=!1)}return s.delete(e),s.delete(n),v}},function(e,n,t){var r=t(224),o=t(225),i=t(104);e.exports=function(e){return r(e,i,o)}},function(e,n,t){var r=t(94),o=t(11);e.exports=function(e,n,t){var i=n(e);return o(e)?i:r(i,t(e))}},function(e,n,t){var r=t(226),o=t(227),i=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),r(a(e),(function(n){return i.call(e,n)})))}:o;e.exports=s},function(e,n){e.exports=function(e,n){for(var t=-1,r=null==e?0:e.length,o=0,i=[];++t<r;){var a=e[t];n(a,t,e)&&(i[o++]=a)}return i}},function(e,n){e.exports=function(){return[]}},function(e,n,t){var r=t(229),o=t(55),i=t(11),a=t(105),s=t(106),c=t(107),l=Object.prototype.hasOwnProperty;e.exports=function(e,n){var t=i(e),u=!t&&o(e),p=!t&&!u&&a(e),d=!t&&!u&&!p&&c(e),f=t||u||p||d,h=f?r(e.length,String):[],v=h.length;for(var m in e)!n&&!l.call(e,m)||f&&("length"==m||p&&("offset"==m||"parent"==m)||d&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||s(m,v))||h.push(m);return h}},function(e,n){e.exports=function(e,n){for(var t=-1,r=Array(e);++t<e;)r[t]=n(t);return r}},function(e,n){e.exports=function(){return!1}},function(e,n,t){var r=t(26),o=t(60),i=t(22),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,e.exports=function(e){return i(e)&&o(e.length)&&!!a[r(e)]}},function(e,n){e.exports=function(e){return function(n){return e(n)}}},function(e,n,t){(function(e){var r=t(95),o=n&&!n.nodeType&&n,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=i&&i.exports===o&&r.process,s=function(){try{var e=i&&i.require&&i.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(e){}}();e.exports=s}).call(this,t(67)(e))},function(e,n,t){var r=t(235),o=t(236),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var n=[];for(var t in Object(e))i.call(e,t)&&"constructor"!=t&&n.push(t);return n}},function(e,n){var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},function(e,n,t){var r=t(237)(Object.keys,Object);e.exports=r},function(e,n){e.exports=function(e,n){return function(t){return e(n(t))}}},function(e,n,t){var r=t(239),o=t(56),i=t(240),a=t(109),s=t(241),c=t(26),l=t(99),u=l(r),p=l(o),d=l(i),f=l(a),h=l(s),v=c;(r&&"[object DataView]"!=v(new r(new ArrayBuffer(1)))||o&&"[object Map]"!=v(new o)||i&&"[object Promise]"!=v(i.resolve())||a&&"[object Set]"!=v(new a)||s&&"[object WeakMap]"!=v(new s))&&(v=function(e){var n=c(e),t="[object Object]"==n?e.constructor:void 0,r=t?l(t):"";if(r)switch(r){case u:return"[object DataView]";case p:return"[object Map]";case d:return"[object Promise]";case f:return"[object Set]";case h:return"[object WeakMap]"}return n}),e.exports=v},function(e,n,t){var r=t(19)(t(13),"DataView");e.exports=r},function(e,n,t){var r=t(19)(t(13),"Promise");e.exports=r},function(e,n,t){var r=t(19)(t(13),"WeakMap");e.exports=r},function(e,n,t){var r=t(110),o=t(104);e.exports=function(e){for(var n=o(e),t=n.length;t--;){var i=n[t],a=e[i];n[t]=[i,a,r(a)]}return n}},function(e,n,t){var r=t(100),o=t(244),i=t(251),a=t(61),s=t(110),c=t(111),l=t(42);e.exports=function(e,n){return a(e)&&s(n)?c(l(e),n):function(t){var a=o(t,e);return void 0===a&&a===n?i(t,e):r(n,a,3)}}},function(e,n,t){var r=t(112);e.exports=function(e,n,t){var o=null==e?void 0:r(e,n);return void 0===o?t:o}},function(e,n,t){var r=t(246),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g,a=r((function(e){var n=[];return 46===e.charCodeAt(0)&&n.push(""),e.replace(o,(function(e,t,r,o){n.push(r?o.replace(i,"$1"):t||e)})),n}));e.exports=a},function(e,n,t){var r=t(247);e.exports=function(e){var n=r(e,(function(e){return 500===t.size&&t.clear(),e})),t=n.cache;return n}},function(e,n,t){var r=t(58);function o(e,n){if("function"!=typeof e||null!=n&&"function"!=typeof n)throw new TypeError("Expected a function");var t=function(){var r=arguments,o=n?n.apply(this,r):r[0],i=t.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return t.cache=i.set(o,a)||i,a};return t.cache=new(o.Cache||r),t}o.Cache=r,e.exports=o},function(e,n,t){var r=t(249);e.exports=function(e){return null==e?"":r(e)}},function(e,n,t){var r=t(28),o=t(250),i=t(11),a=t(62),s=r?r.prototype:void 0,c=s?s.toString:void 0;e.exports=function e(n){if("string"==typeof n)return n;if(i(n))return o(n,e)+"";if(a(n))return c?c.call(n):"";var t=n+"";return"0"==t&&1/n==-1/0?"-0":t}},function(e,n){e.exports=function(e,n){for(var t=-1,r=null==e?0:e.length,o=Array(r);++t<r;)o[t]=n(e[t],t,e);return o}},function(e,n,t){var r=t(252),o=t(253);e.exports=function(e,n){return null!=e&&o(e,n,r)}},function(e,n){e.exports=function(e,n){return null!=e&&n in Object(e)}},function(e,n,t){var r=t(113),o=t(55),i=t(11),a=t(106),s=t(60),c=t(42);e.exports=function(e,n,t){for(var l=-1,u=(n=r(n,e)).length,p=!1;++l<u;){var d=c(n[l]);if(!(p=null!=e&&t(e,d)))break;e=e[d]}return p||++l!=u?p:!!(u=null==e?0:e.length)&&s(u)&&a(d,u)&&(i(e)||o(e))}},function(e,n,t){var r=t(255),o=t(256),i=t(61),a=t(42);e.exports=function(e){return i(e)?r(a(e)):o(e)}},function(e,n){e.exports=function(e){return function(n){return null==n?void 0:n[e]}}},function(e,n,t){var r=t(112);e.exports=function(e){return function(n){return r(n,e)}}},function(e,n,t){var r=t(63),o=t(258),i=t(260);e.exports=function(e,n){return i(o(e,n,r),e+"")}},function(e,n,t){var r=t(259),o=Math.max;e.exports=function(e,n,t){return n=o(void 0===n?e.length-1:n,0),function(){for(var i=arguments,a=-1,s=o(i.length-n,0),c=Array(s);++a<s;)c[a]=i[n+a];a=-1;for(var l=Array(n+1);++a<n;)l[a]=i[a];return l[n]=t(c),r(e,this,l)}}},function(e,n){e.exports=function(e,n,t){switch(t.length){case 0:return e.call(n);case 1:return e.call(n,t[0]);case 2:return e.call(n,t[0],t[1]);case 3:return e.call(n,t[0],t[1],t[2])}return e.apply(n,t)}},function(e,n,t){var r=t(261),o=t(264)(r);e.exports=o},function(e,n,t){var r=t(262),o=t(263),i=t(63),a=o?function(e,n){return o(e,"toString",{configurable:!0,enumerable:!1,value:r(n),writable:!0})}:i;e.exports=a},function(e,n){e.exports=function(e){return function(){return e}}},function(e,n,t){var r=t(19),o=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=o},function(e,n){var t=Date.now;e.exports=function(e){var n=0,r=0;return function(){var o=t(),i=16-(o-r);if(r=o,i>0){if(++n>=800)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}},function(e,n,t){var r=t(102),o=t(266),i=t(271),a=t(103),s=t(272),c=t(59);e.exports=function(e,n,t){var l=-1,u=o,p=e.length,d=!0,f=[],h=f;if(t)d=!1,u=i;else if(p>=200){var v=n?null:s(e);if(v)return c(v);d=!1,u=a,h=new r}else h=n?[]:f;e:for(;++l<p;){var m=e[l],g=n?n(m):m;if(m=t||0!==m?m:0,d&&g==g){for(var y=h.length;y--;)if(h[y]===g)continue e;n&&h.push(g),f.push(m)}else u(h,g,t)||(h!==f&&h.push(g),f.push(m))}return f}},function(e,n,t){var r=t(267);e.exports=function(e,n){return!!(null==e?0:e.length)&&r(e,n,0)>-1}},function(e,n,t){var r=t(268),o=t(269),i=t(270);e.exports=function(e,n,t){return n==n?i(e,n,t):r(e,o,t)}},function(e,n){e.exports=function(e,n,t,r){for(var o=e.length,i=t+(r?1:-1);r?i--:++i<o;)if(n(e[i],i,e))return i;return-1}},function(e,n){e.exports=function(e){return e!=e}},function(e,n){e.exports=function(e,n,t){for(var r=t-1,o=e.length;++r<o;)if(e[r]===n)return r;return-1}},function(e,n){e.exports=function(e,n,t){for(var r=-1,o=null==e?0:e.length;++r<o;)if(t(n,e[r]))return!0;return!1}},function(e,n,t){var r=t(109),o=t(273),i=t(59),a=r&&1/i(new r([,-0]))[1]==1/0?function(e){return new r(e)}:o;e.exports=a},function(e,n){e.exports=function(){}},function(e,n,t){var r=t(108),o=t(22);e.exports=function(e){return o(e)&&r(e)}},function(e,n,t){"use strict";var r=t(10),o=t(45),i=t(7),a=t(1),s=t(25);r({target:"Iterator",proto:!0,real:!0},{some:function(e){a(this),i(e);var n=s(this),t=0;return o(n,(function(n,r){if(e(n,t++))return r()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},function(e,n,t){},function(e,n,t){},function(e,n,t){"use strict";t(114)},function(e,n,t){"use strict";t(115)},function(e,n,t){},function(e,n,t){},function(e,n,t){"use strict";t(116)},function(e,n,t){"use strict";t(117)},function(e,n,t){"use strict";t.r(n);t(4),t(15),t(21);var r=Object.freeze({}),o=Array.isArray;function i(e){return null==e}function a(e){return null!=e}function s(e){return!0===e}function c(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function l(e){return"function"==typeof e}function u(e){return null!==e&&"object"==typeof e}var p=Object.prototype.toString;function d(e){return"[object Object]"===p.call(e)}function f(e){return"[object RegExp]"===p.call(e)}function h(e){var n=parseFloat(String(e));return n>=0&&Math.floor(n)===n&&isFinite(e)}function v(e){return a(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function m(e){return null==e?"":Array.isArray(e)||d(e)&&e.toString===p?JSON.stringify(e,g,2):String(e)}function g(e,n){return n&&n.__v_isRef?n.value:n}function y(e){var n=parseFloat(e);return isNaN(n)?e:n}function b(e,n){for(var t=Object.create(null),r=e.split(","),o=0;o<r.length;o++)t[r[o]]=!0;return n?function(e){return t[e.toLowerCase()]}:function(e){return t[e]}}b("slot,component",!0);var x=b("key,ref,slot,slot-scope,is");function _(e,n){var t=e.length;if(t){if(n===e[t-1])return void(e.length=t-1);var r=e.indexOf(n);if(r>-1)return e.splice(r,1)}}var w=Object.prototype.hasOwnProperty;function E(e,n){return w.call(e,n)}function k(e){var n=Object.create(null);return function(t){return n[t]||(n[t]=e(t))}}var T=/-(\w)/g,C=k((function(e){return e.replace(T,(function(e,n){return n?n.toUpperCase():""}))})),j=k((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),S=/\B([A-Z])/g,A=k((function(e){return e.replace(S,"-$1").toLowerCase()}));var O=Function.prototype.bind?function(e,n){return e.bind(n)}:function(e,n){function t(t){var r=arguments.length;return r?r>1?e.apply(n,arguments):e.call(n,t):e.call(n)}return t._length=e.length,t};function P(e,n){n=n||0;for(var t=e.length-n,r=new Array(t);t--;)r[t]=e[t+n];return r}function $(e,n){for(var t in n)e[t]=n[t];return e}function B(e){for(var n={},t=0;t<e.length;t++)e[t]&&$(n,e[t]);return n}function I(e,n,t){}var L=function(e,n,t){return!1},z=function(e){return e};function D(e,n){if(e===n)return!0;var t=u(e),r=u(n);if(!t||!r)return!t&&!r&&String(e)===String(n);try{var o=Array.isArray(e),i=Array.isArray(n);if(o&&i)return e.length===n.length&&e.every((function(e,t){return D(e,n[t])}));if(e instanceof Date&&n instanceof Date)return e.getTime()===n.getTime();if(o||i)return!1;var a=Object.keys(e),s=Object.keys(n);return a.length===s.length&&a.every((function(t){return D(e[t],n[t])}))}catch(e){return!1}}function R(e,n){for(var t=0;t<e.length;t++)if(D(e[t],n))return t;return-1}function U(e){var n=!1;return function(){n||(n=!0,e.apply(this,arguments))}}function M(e,n){return e===n?0===e&&1/e!=1/n:e==e||n==n}var F=["component","directive","filter"],N=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch","renderTracked","renderTriggered"],q={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:L,isReservedAttr:L,isUnknownElement:L,getTagNamespace:I,parsePlatformTagName:z,mustUseProp:L,async:!0,_lifecycleHooks:N},H=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;function V(e){var n=(e+"").charCodeAt(0);return 36===n||95===n}function G(e,n,t,r){Object.defineProperty(e,n,{value:t,enumerable:!!r,writable:!0,configurable:!0})}var W=new RegExp("[^".concat(H.source,".$_\\d]"));var K="__proto__"in{},Z="undefined"!=typeof window,Y=Z&&window.navigator.userAgent.toLowerCase(),X=Y&&/msie|trident/.test(Y),J=Y&&Y.indexOf("msie 9.0")>0,Q=Y&&Y.indexOf("edge/")>0;Y&&Y.indexOf("android");var ee=Y&&/iphone|ipad|ipod|ios/.test(Y);Y&&/chrome\/\d+/.test(Y),Y&&/phantomjs/.test(Y);var ne,te=Y&&Y.match(/firefox\/(\d+)/),re={}.watch,oe=!1;if(Z)try{var ie={};Object.defineProperty(ie,"passive",{get:function(){oe=!0}}),window.addEventListener("test-passive",null,ie)}catch(e){}var ae=function(){return void 0===ne&&(ne=!Z&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),ne},se=Z&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ce(e){return"function"==typeof e&&/native code/.test(e.toString())}var le,ue="undefined"!=typeof Symbol&&ce(Symbol)&&"undefined"!=typeof Reflect&&ce(Reflect.ownKeys);le="undefined"!=typeof Set&&ce(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var pe=null;function de(e){void 0===e&&(e=null),e||pe&&pe._scope.off(),pe=e,e&&e._scope.on()}var fe=function(){function e(e,n,t,r,o,i,a,s){this.tag=e,this.data=n,this.children=t,this.text=r,this.elm=o,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=n&&n.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(e.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),e}(),he=function(e){void 0===e&&(e="");var n=new fe;return n.text=e,n.isComment=!0,n};function ve(e){return new fe(void 0,void 0,void 0,String(e))}function me(e){var n=new fe(e.tag,e.data,e.children&&e.children.slice(),e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);return n.ns=e.ns,n.isStatic=e.isStatic,n.key=e.key,n.isComment=e.isComment,n.fnContext=e.fnContext,n.fnOptions=e.fnOptions,n.fnScopeId=e.fnScopeId,n.asyncMeta=e.asyncMeta,n.isCloned=!0,n}"function"==typeof SuppressedError&&SuppressedError;var ge=0,ye=[],be=function(){function e(){this._pending=!1,this.id=ge++,this.subs=[]}return e.prototype.addSub=function(e){this.subs.push(e)},e.prototype.removeSub=function(e){this.subs[this.subs.indexOf(e)]=null,this._pending||(this._pending=!0,ye.push(this))},e.prototype.depend=function(n){e.target&&e.target.addDep(this)},e.prototype.notify=function(e){var n=this.subs.filter((function(e){return e}));for(var t=0,r=n.length;t<r;t++){0,n[t].update()}},e}();be.target=null;var xe=[];function _e(e){xe.push(e),be.target=e}function we(){xe.pop(),be.target=xe[xe.length-1]}var Ee=Array.prototype,ke=Object.create(Ee);["push","pop","shift","unshift","splice","sort","reverse"].forEach((function(e){var n=Ee[e];G(ke,e,(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var o,i=n.apply(this,t),a=this.__ob__;switch(e){case"push":case"unshift":o=t;break;case"splice":o=t.slice(2)}return o&&a.observeArray(o),a.dep.notify(),i}))}));var Te=Object.getOwnPropertyNames(ke),Ce={},je=!0;function Se(e){je=e}var Ae={notify:I,depend:I,addSub:I,removeSub:I},Oe=function(){function e(e,n,t){if(void 0===n&&(n=!1),void 0===t&&(t=!1),this.value=e,this.shallow=n,this.mock=t,this.dep=t?Ae:new be,this.vmCount=0,G(e,"__ob__",this),o(e)){if(!t)if(K)e.__proto__=ke;else for(var r=0,i=Te.length;r<i;r++){G(e,s=Te[r],ke[s])}n||this.observeArray(e)}else{var a=Object.keys(e);for(r=0;r<a.length;r++){var s;$e(e,s=a[r],Ce,void 0,n,t)}}}return e.prototype.observeArray=function(e){for(var n=0,t=e.length;n<t;n++)Pe(e[n],!1,this.mock)},e}();function Pe(e,n,t){return e&&E(e,"__ob__")&&e.__ob__ instanceof Oe?e.__ob__:!je||!t&&ae()||!o(e)&&!d(e)||!Object.isExtensible(e)||e.__v_skip||Ue(e)||e instanceof fe?void 0:new Oe(e,n,t)}function $e(e,n,t,r,i,a,s){void 0===s&&(s=!1);var c=new be,l=Object.getOwnPropertyDescriptor(e,n);if(!l||!1!==l.configurable){var u=l&&l.get,p=l&&l.set;u&&!p||t!==Ce&&2!==arguments.length||(t=e[n]);var d=i?t&&t.__ob__:Pe(t,!1,a);return Object.defineProperty(e,n,{enumerable:!0,configurable:!0,get:function(){var n=u?u.call(e):t;return be.target&&(c.depend(),d&&(d.dep.depend(),o(n)&&Le(n))),Ue(n)&&!i?n.value:n},set:function(n){var r=u?u.call(e):t;if(M(r,n)){if(p)p.call(e,n);else{if(u)return;if(!i&&Ue(r)&&!Ue(n))return void(r.value=n);t=n}d=i?n&&n.__ob__:Pe(n,!1,a),c.notify()}}}),c}}function Be(e,n,t){if(!Re(e)){var r=e.__ob__;return o(e)&&h(n)?(e.length=Math.max(e.length,n),e.splice(n,1,t),r&&!r.shallow&&r.mock&&Pe(t,!1,!0),t):n in e&&!(n in Object.prototype)?(e[n]=t,t):e._isVue||r&&r.vmCount?t:r?($e(r.value,n,t,void 0,r.shallow,r.mock),r.dep.notify(),t):(e[n]=t,t)}}function Ie(e,n){if(o(e)&&h(n))e.splice(n,1);else{var t=e.__ob__;e._isVue||t&&t.vmCount||Re(e)||E(e,n)&&(delete e[n],t&&t.dep.notify())}}function Le(e){for(var n=void 0,t=0,r=e.length;t<r;t++)(n=e[t])&&n.__ob__&&n.__ob__.dep.depend(),o(n)&&Le(n)}function ze(e){return De(e,!0),G(e,"__v_isShallow",!0),e}function De(e,n){if(!Re(e)){Pe(e,n,ae());0}}function Re(e){return!(!e||!e.__v_isReadonly)}function Ue(e){return!(!e||!0!==e.__v_isRef)}function Me(e,n,t){Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:function(){var e=n[t];if(Ue(e))return e.value;var r=e&&e.__ob__;return r&&r.dep.depend(),e},set:function(e){var r=n[t];Ue(r)&&!Ue(e)?r.value=e:n[t]=e}})}"".concat("watcher"," callback"),"".concat("watcher"," getter"),"".concat("watcher"," cleanup");var Fe;var Ne=function(){function e(e){void 0===e&&(e=!1),this.detached=e,this.active=!0,this.effects=[],this.cleanups=[],this.parent=Fe,!e&&Fe&&(this.index=(Fe.scopes||(Fe.scopes=[])).push(this)-1)}return e.prototype.run=function(e){if(this.active){var n=Fe;try{return Fe=this,e()}finally{Fe=n}}else 0},e.prototype.on=function(){Fe=this},e.prototype.off=function(){Fe=this.parent},e.prototype.stop=function(e){if(this.active){var n=void 0,t=void 0;for(n=0,t=this.effects.length;n<t;n++)this.effects[n].teardown();for(n=0,t=this.cleanups.length;n<t;n++)this.cleanups[n]();if(this.scopes)for(n=0,t=this.scopes.length;n<t;n++)this.scopes[n].stop(!0);if(!this.detached&&this.parent&&!e){var r=this.parent.scopes.pop();r&&r!==this&&(this.parent.scopes[this.index]=r,r.index=this.index)}this.parent=void 0,this.active=!1}},e}();function qe(e){var n=e._provided,t=e.$parent&&e.$parent._provided;return t===n?e._provided=Object.create(t):n}var He=k((function(e){var n="&"===e.charAt(0),t="~"===(e=n?e.slice(1):e).charAt(0),r="!"===(e=t?e.slice(1):e).charAt(0);return{name:e=r?e.slice(1):e,once:t,capture:r,passive:n}}));function Ve(e,n){function t(){var e=t.fns;if(!o(e))return Sn(e,null,arguments,n,"v-on handler");for(var r=e.slice(),i=0;i<r.length;i++)Sn(r[i],null,arguments,n,"v-on handler")}return t.fns=e,t}function Ge(e,n,t,r,o,a){var c,l,u,p;for(c in e)l=e[c],u=n[c],p=He(c),i(l)||(i(u)?(i(l.fns)&&(l=e[c]=Ve(l,a)),s(p.once)&&(l=e[c]=o(p.name,l,p.capture)),t(p.name,l,p.capture,p.passive,p.params)):l!==u&&(u.fns=l,e[c]=u));for(c in n)i(e[c])&&r((p=He(c)).name,n[c],p.capture)}function We(e,n,t){var r;e instanceof fe&&(e=e.data.hook||(e.data.hook={}));var o=e[n];function c(){t.apply(this,arguments),_(r.fns,c)}i(o)?r=Ve([c]):a(o.fns)&&s(o.merged)?(r=o).fns.push(c):r=Ve([o,c]),r.merged=!0,e[n]=r}function Ke(e,n,t,r,o){if(a(n)){if(E(n,t))return e[t]=n[t],o||delete n[t],!0;if(E(n,r))return e[t]=n[r],o||delete n[r],!0}return!1}function Ze(e){return c(e)?[ve(e)]:o(e)?function e(n,t){var r,l,u,p,d=[];for(r=0;r<n.length;r++)i(l=n[r])||"boolean"==typeof l||(u=d.length-1,p=d[u],o(l)?l.length>0&&(Ye((l=e(l,"".concat(t||"","_").concat(r)))[0])&&Ye(p)&&(d[u]=ve(p.text+l[0].text),l.shift()),d.push.apply(d,l)):c(l)?Ye(p)?d[u]=ve(p.text+l):""!==l&&d.push(ve(l)):Ye(l)&&Ye(p)?d[u]=ve(p.text+l.text):(s(n._isVList)&&a(l.tag)&&i(l.key)&&a(t)&&(l.key="__vlist".concat(t,"_").concat(r,"__")),d.push(l)));return d}(e):void 0}function Ye(e){return a(e)&&a(e.text)&&!1===e.isComment}function Xe(e,n){var t,r,i,s,c=null;if(o(e)||"string"==typeof e)for(c=new Array(e.length),t=0,r=e.length;t<r;t++)c[t]=n(e[t],t);else if("number"==typeof e)for(c=new Array(e),t=0;t<e;t++)c[t]=n(t+1,t);else if(u(e))if(ue&&e[Symbol.iterator]){c=[];for(var l=e[Symbol.iterator](),p=l.next();!p.done;)c.push(n(p.value,c.length)),p=l.next()}else for(i=Object.keys(e),c=new Array(i.length),t=0,r=i.length;t<r;t++)s=i[t],c[t]=n(e[s],s,t);return a(c)||(c=[]),c._isVList=!0,c}function Je(e,n,t,r){var o,i=this.$scopedSlots[e];i?(t=t||{},r&&(t=$($({},r),t)),o=i(t)||(l(n)?n():n)):o=this.$slots[e]||(l(n)?n():n);var a=t&&t.slot;return a?this.$createElement("template",{slot:a},o):o}function Qe(e){return Pt(this.$options,"filters",e,!0)||z}function en(e,n){return o(e)?-1===e.indexOf(n):e!==n}function nn(e,n,t,r,o){var i=q.keyCodes[n]||t;return o&&r&&!q.keyCodes[n]?en(o,r):i?en(i,e):r?A(r)!==n:void 0===e}function tn(e,n,t,r,i){if(t)if(u(t)){o(t)&&(t=B(t));var a=void 0,s=function(o){if("class"===o||"style"===o||x(o))a=e;else{var s=e.attrs&&e.attrs.type;a=r||q.mustUseProp(n,s,o)?e.domProps||(e.domProps={}):e.attrs||(e.attrs={})}var c=C(o),l=A(o);c in a||l in a||(a[o]=t[o],i&&((e.on||(e.on={}))["update:".concat(o)]=function(e){t[o]=e}))};for(var c in t)s(c)}else;return e}function rn(e,n){var t=this._staticTrees||(this._staticTrees=[]),r=t[e];return r&&!n||an(r=t[e]=this.$options.staticRenderFns[e].call(this._renderProxy,this._c,this),"__static__".concat(e),!1),r}function on(e,n,t){return an(e,"__once__".concat(n).concat(t?"_".concat(t):""),!0),e}function an(e,n,t){if(o(e))for(var r=0;r<e.length;r++)e[r]&&"string"!=typeof e[r]&&sn(e[r],"".concat(n,"_").concat(r),t);else sn(e,n,t)}function sn(e,n,t){e.isStatic=!0,e.key=n,e.isOnce=t}function cn(e,n){if(n)if(d(n)){var t=e.on=e.on?$({},e.on):{};for(var r in n){var o=t[r],i=n[r];t[r]=o?[].concat(o,i):i}}else;return e}function ln(e,n,t,r){n=n||{$stable:!t};for(var i=0;i<e.length;i++){var a=e[i];o(a)?ln(a,n,t):a&&(a.proxy&&(a.fn.proxy=!0),n[a.key]=a.fn)}return r&&(n.$key=r),n}function un(e,n){for(var t=0;t<n.length;t+=2){var r=n[t];"string"==typeof r&&r&&(e[n[t]]=n[t+1])}return e}function pn(e,n){return"string"==typeof e?n+e:e}function dn(e){e._o=on,e._n=y,e._s=m,e._l=Xe,e._t=Je,e._q=D,e._i=R,e._m=rn,e._f=Qe,e._k=nn,e._b=tn,e._v=ve,e._e=he,e._u=ln,e._g=cn,e._d=un,e._p=pn}function fn(e,n){if(!e||!e.length)return{};for(var t={},r=0,o=e.length;r<o;r++){var i=e[r],a=i.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,i.context!==n&&i.fnContext!==n||!a||null==a.slot)(t.default||(t.default=[])).push(i);else{var s=a.slot,c=t[s]||(t[s]=[]);"template"===i.tag?c.push.apply(c,i.children||[]):c.push(i)}}for(var l in t)t[l].every(hn)&&delete t[l];return t}function hn(e){return e.isComment&&!e.asyncFactory||" "===e.text}function vn(e){return e.isComment&&e.asyncFactory}function mn(e,n,t,o){var i,a=Object.keys(t).length>0,s=n?!!n.$stable:!a,c=n&&n.$key;if(n){if(n._normalized)return n._normalized;if(s&&o&&o!==r&&c===o.$key&&!a&&!o.$hasNormal)return o;for(var l in i={},n)n[l]&&"$"!==l[0]&&(i[l]=gn(e,t,l,n[l]))}else i={};for(var u in t)u in i||(i[u]=yn(t,u));return n&&Object.isExtensible(n)&&(n._normalized=i),G(i,"$stable",s),G(i,"$key",c),G(i,"$hasNormal",a),i}function gn(e,n,t,r){var i=function(){var n=pe;de(e);var t=arguments.length?r.apply(null,arguments):r({}),i=(t=t&&"object"==typeof t&&!o(t)?[t]:Ze(t))&&t[0];return de(n),t&&(!i||1===t.length&&i.isComment&&!vn(i))?void 0:t};return r.proxy&&Object.defineProperty(n,t,{get:i,enumerable:!0,configurable:!0}),i}function yn(e,n){return function(){return e[n]}}function bn(e){return{get attrs(){if(!e._attrsProxy){var n=e._attrsProxy={};G(n,"_v_attr_proxy",!0),xn(n,e.$attrs,r,e,"$attrs")}return e._attrsProxy},get listeners(){e._listenersProxy||xn(e._listenersProxy={},e.$listeners,r,e,"$listeners");return e._listenersProxy},get slots(){return function(e){e._slotsProxy||wn(e._slotsProxy={},e.$scopedSlots);return e._slotsProxy}(e)},emit:O(e.$emit,e),expose:function(n){n&&Object.keys(n).forEach((function(t){return Me(e,n,t)}))}}}function xn(e,n,t,r,o){var i=!1;for(var a in n)a in e?n[a]!==t[a]&&(i=!0):(i=!0,_n(e,a,r,o));for(var a in e)a in n||(i=!0,delete e[a]);return i}function _n(e,n,t,r){Object.defineProperty(e,n,{enumerable:!0,configurable:!0,get:function(){return t[r][n]}})}function wn(e,n){for(var t in n)e[t]=n[t];for(var t in e)t in n||delete e[t]}var En=null;function kn(e,n){return(e.__esModule||ue&&"Module"===e[Symbol.toStringTag])&&(e=e.default),u(e)?n.extend(e):e}function Tn(e){if(o(e))for(var n=0;n<e.length;n++){var t=e[n];if(a(t)&&(a(t.componentOptions)||vn(t)))return t}}function Cn(e,n,t,r,p,d){return(o(t)||c(t))&&(p=r,r=t,t=void 0),s(d)&&(p=2),function(e,n,t,r,c){if(a(t)&&a(t.__ob__))return he();a(t)&&a(t.is)&&(n=t.is);if(!n)return he();0;o(r)&&l(r[0])&&((t=t||{}).scopedSlots={default:r[0]},r.length=0);2===c?r=Ze(r):1===c&&(r=function(e){for(var n=0;n<e.length;n++)if(o(e[n]))return Array.prototype.concat.apply([],e);return e}(r));var p,d;if("string"==typeof n){var f=void 0;d=e.$vnode&&e.$vnode.ns||q.getTagNamespace(n),p=q.isReservedTag(n)?new fe(q.parsePlatformTagName(n),t,r,void 0,void 0,e):t&&t.pre||!a(f=Pt(e.$options,"components",n))?new fe(n,t,r,void 0,void 0,e):_t(f,t,e,r,n)}else p=_t(n,t,e,r);return o(p)?p:a(p)?(a(d)&&function e(n,t,r){n.ns=t,"foreignObject"===n.tag&&(t=void 0,r=!0);if(a(n.children))for(var o=0,c=n.children.length;o<c;o++){var l=n.children[o];a(l.tag)&&(i(l.ns)||s(r)&&"svg"!==l.tag)&&e(l,t,r)}}(p,d),a(t)&&function(e){u(e.style)&&qn(e.style);u(e.class)&&qn(e.class)}(t),p):he()}(e,n,t,r,p)}function jn(e,n,t){_e();try{if(n)for(var r=n;r=r.$parent;){var o=r.$options.errorCaptured;if(o)for(var i=0;i<o.length;i++)try{if(!1===o[i].call(r,e,n,t))return}catch(e){An(e,r,"errorCaptured hook")}}An(e,n,t)}finally{we()}}function Sn(e,n,t,r,o){var i;try{(i=t?e.apply(n,t):e.call(n))&&!i._isVue&&v(i)&&!i._handled&&(i.catch((function(e){return jn(e,r,o+" (Promise/async)")})),i._handled=!0)}catch(e){jn(e,r,o)}return i}function An(e,n,t){if(q.errorHandler)try{return q.errorHandler.call(null,e,n,t)}catch(n){n!==e&&On(n,null,"config.errorHandler")}On(e,n,t)}function On(e,n,t){if(!Z||"undefined"==typeof console)throw e;console.error(e)}var Pn,$n=!1,Bn=[],In=!1;function Ln(){In=!1;var e=Bn.slice(0);Bn.length=0;for(var n=0;n<e.length;n++)e[n]()}if("undefined"!=typeof Promise&&ce(Promise)){var zn=Promise.resolve();Pn=function(){zn.then(Ln),ee&&setTimeout(I)},$n=!0}else if(X||"undefined"==typeof MutationObserver||!ce(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())Pn="undefined"!=typeof setImmediate&&ce(setImmediate)?function(){setImmediate(Ln)}:function(){setTimeout(Ln,0)};else{var Dn=1,Rn=new MutationObserver(Ln),Un=document.createTextNode(String(Dn));Rn.observe(Un,{characterData:!0}),Pn=function(){Dn=(Dn+1)%2,Un.data=String(Dn)},$n=!0}function Mn(e,n){var t;if(Bn.push((function(){if(e)try{e.call(n)}catch(e){jn(e,n,"nextTick")}else t&&t(n)})),In||(In=!0,Pn()),!e&&"undefined"!=typeof Promise)return new Promise((function(e){t=e}))}function Fn(e){return function(n,t){if(void 0===t&&(t=pe),t)return function(e,n,t){var r=e.$options;r[n]=jt(r[n],t)}(t,e,n)}}Fn("beforeMount"),Fn("mounted"),Fn("beforeUpdate"),Fn("updated"),Fn("beforeDestroy"),Fn("destroyed"),Fn("activated"),Fn("deactivated"),Fn("serverPrefetch"),Fn("renderTracked"),Fn("renderTriggered"),Fn("errorCaptured");var Nn=new le;function qn(e){return function e(n,t){var r,i,a=o(n);if(!a&&!u(n)||n.__v_skip||Object.isFrozen(n)||n instanceof fe)return;if(n.__ob__){var s=n.__ob__.dep.id;if(t.has(s))return;t.add(s)}if(a)for(r=n.length;r--;)e(n[r],t);else if(Ue(n))e(n.value,t);else for(i=Object.keys(n),r=i.length;r--;)e(n[i[r]],t)}(e,Nn),Nn.clear(),e}var Hn,Vn=0,Gn=function(){function e(e,n,t,r,o){var i,a;i=this,void 0===(a=Fe&&!Fe._vm?Fe:e?e._scope:void 0)&&(a=Fe),a&&a.active&&a.effects.push(i),(this.vm=e)&&o&&(e._watcher=this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=t,this.id=++Vn,this.active=!0,this.post=!1,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new le,this.newDepIds=new le,this.expression="",l(n)?this.getter=n:(this.getter=function(e){if(!W.test(e)){var n=e.split(".");return function(e){for(var t=0;t<n.length;t++){if(!e)return;e=e[n[t]]}return e}}}(n),this.getter||(this.getter=I)),this.value=this.lazy?void 0:this.get()}return e.prototype.get=function(){var e;_e(this);var n=this.vm;try{e=this.getter.call(n,n)}catch(e){if(!this.user)throw e;jn(e,n,'getter for watcher "'.concat(this.expression,'"'))}finally{this.deep&&qn(e),we(),this.cleanupDeps()}return e},e.prototype.addDep=function(e){var n=e.id;this.newDepIds.has(n)||(this.newDepIds.add(n),this.newDeps.push(e),this.depIds.has(n)||e.addSub(this))},e.prototype.cleanupDeps=function(){for(var e=this.deps.length;e--;){var n=this.deps[e];this.newDepIds.has(n.id)||n.removeSub(this)}var t=this.depIds;this.depIds=this.newDepIds,this.newDepIds=t,this.newDepIds.clear(),t=this.deps,this.deps=this.newDeps,this.newDeps=t,this.newDeps.length=0},e.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():ft(this)},e.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||u(e)||this.deep){var n=this.value;if(this.value=e,this.user){var t='callback for watcher "'.concat(this.expression,'"');Sn(this.cb,this.vm,[e,n],this.vm,t)}else this.cb.call(this.vm,e,n)}}},e.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},e.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},e.prototype.teardown=function(){if(this.vm&&!this.vm._isBeingDestroyed&&_(this.vm._scope.effects,this),this.active){for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1,this.onStop&&this.onStop()}},e}();function Wn(e,n){Hn.$on(e,n)}function Kn(e,n){Hn.$off(e,n)}function Zn(e,n){var t=Hn;return function r(){var o=n.apply(null,arguments);null!==o&&t.$off(e,r)}}function Yn(e,n,t){Hn=e,Ge(n,t||{},Wn,Kn,Zn,e),Hn=void 0}var Xn=null;function Jn(e){var n=Xn;return Xn=e,function(){Xn=n}}function Qn(e){for(;e&&(e=e.$parent);)if(e._inactive)return!0;return!1}function et(e,n){if(n){if(e._directInactive=!1,Qn(e))return}else if(e._directInactive)return;if(e._inactive||null===e._inactive){e._inactive=!1;for(var t=0;t<e.$children.length;t++)et(e.$children[t]);nt(e,"activated")}}function nt(e,n,t,r){void 0===r&&(r=!0),_e();var o=pe,i=Fe;r&&de(e);var a=e.$options[n],s="".concat(n," hook");if(a)for(var c=0,l=a.length;c<l;c++)Sn(a[c],e,t||null,e,s);e._hasHookEvent&&e.$emit("hook:"+n),r&&(de(o),i&&i.on()),we()}var tt=[],rt=[],ot={},it=!1,at=!1,st=0;var ct=0,lt=Date.now;if(Z&&!X){var ut=window.performance;ut&&"function"==typeof ut.now&<()>document.createEvent("Event").timeStamp&&(lt=function(){return ut.now()})}var pt=function(e,n){if(e.post){if(!n.post)return 1}else if(n.post)return-1;return e.id-n.id};function dt(){var e,n;for(ct=lt(),at=!0,tt.sort(pt),st=0;st<tt.length;st++)(e=tt[st]).before&&e.before(),n=e.id,ot[n]=null,e.run();var t=rt.slice(),r=tt.slice();st=tt.length=rt.length=0,ot={},it=at=!1,function(e){for(var n=0;n<e.length;n++)e[n]._inactive=!0,et(e[n],!0)}(t),function(e){var n=e.length;for(;n--;){var t=e[n],r=t.vm;r&&r._watcher===t&&r._isMounted&&!r._isDestroyed&&nt(r,"updated")}}(r),function(){for(var e=0;e<ye.length;e++){var n=ye[e];n.subs=n.subs.filter((function(e){return e})),n._pending=!1}ye.length=0}(),se&&q.devtools&&se.emit("flush")}function ft(e){var n=e.id;if(null==ot[n]&&(e!==be.target||!e.noRecurse)){if(ot[n]=!0,at){for(var t=tt.length-1;t>st&&tt[t].id>e.id;)t--;tt.splice(t+1,0,e)}else tt.push(e);it||(it=!0,Mn(dt))}}function ht(e,n){if(e){for(var t=Object.create(null),r=ue?Reflect.ownKeys(e):Object.keys(e),o=0;o<r.length;o++){var i=r[o];if("__ob__"!==i){var a=e[i].from;if(a in n._provided)t[i]=n._provided[a];else if("default"in e[i]){var s=e[i].default;t[i]=l(s)?s.call(n):s}else 0}}return t}}function vt(e,n,t,i,a){var c,l=this,u=a.options;E(i,"_uid")?(c=Object.create(i))._original=i:(c=i,i=i._original);var p=s(u._compiled),d=!p;this.data=e,this.props=n,this.children=t,this.parent=i,this.listeners=e.on||r,this.injections=ht(u.inject,i),this.slots=function(){return l.$slots||mn(i,e.scopedSlots,l.$slots=fn(t,i)),l.$slots},Object.defineProperty(this,"scopedSlots",{enumerable:!0,get:function(){return mn(i,e.scopedSlots,this.slots())}}),p&&(this.$options=u,this.$slots=this.slots(),this.$scopedSlots=mn(i,e.scopedSlots,this.$slots)),u._scopeId?this._c=function(e,n,t,r){var a=Cn(c,e,n,t,r,d);return a&&!o(a)&&(a.fnScopeId=u._scopeId,a.fnContext=i),a}:this._c=function(e,n,t,r){return Cn(c,e,n,t,r,d)}}function mt(e,n,t,r,o){var i=me(e);return i.fnContext=t,i.fnOptions=r,n.slot&&((i.data||(i.data={})).slot=n.slot),i}function gt(e,n){for(var t in n)e[C(t)]=n[t]}function yt(e){return e.name||e.__name||e._componentTag}dn(vt.prototype);var bt={init:function(e,n){if(e.componentInstance&&!e.componentInstance._isDestroyed&&e.data.keepAlive){var t=e;bt.prepatch(t,t)}else{(e.componentInstance=function(e,n){var t={_isComponent:!0,_parentVnode:e,parent:n},r=e.data.inlineTemplate;a(r)&&(t.render=r.render,t.staticRenderFns=r.staticRenderFns);return new e.componentOptions.Ctor(t)}(e,Xn)).$mount(n?e.elm:void 0,n)}},prepatch:function(e,n){var t=n.componentOptions;!function(e,n,t,o,i){var a=o.data.scopedSlots,s=e.$scopedSlots,c=!!(a&&!a.$stable||s!==r&&!s.$stable||a&&e.$scopedSlots.$key!==a.$key||!a&&e.$scopedSlots.$key),l=!!(i||e.$options._renderChildren||c),u=e.$vnode;e.$options._parentVnode=o,e.$vnode=o,e._vnode&&(e._vnode.parent=o),e.$options._renderChildren=i;var p=o.data.attrs||r;e._attrsProxy&&xn(e._attrsProxy,p,u.data&&u.data.attrs||r,e,"$attrs")&&(l=!0),e.$attrs=p,t=t||r;var d=e.$options._parentListeners;if(e._listenersProxy&&xn(e._listenersProxy,t,d||r,e,"$listeners"),e.$listeners=e.$options._parentListeners=t,Yn(e,t,d),n&&e.$options.props){Se(!1);for(var f=e._props,h=e.$options._propKeys||[],v=0;v<h.length;v++){var m=h[v],g=e.$options.props;f[m]=$t(m,g,n,e)}Se(!0),e.$options.propsData=n}l&&(e.$slots=fn(i,o.context),e.$forceUpdate())}(n.componentInstance=e.componentInstance,t.propsData,t.listeners,n,t.children)},insert:function(e){var n,t=e.context,r=e.componentInstance;r._isMounted||(r._isMounted=!0,nt(r,"mounted")),e.data.keepAlive&&(t._isMounted?((n=r)._inactive=!1,rt.push(n)):et(r,!0))},destroy:function(e){var n=e.componentInstance;n._isDestroyed||(e.data.keepAlive?function e(n,t){if(!(t&&(n._directInactive=!0,Qn(n))||n._inactive)){n._inactive=!0;for(var r=0;r<n.$children.length;r++)e(n.$children[r]);nt(n,"deactivated")}}(n,!0):n.$destroy())}},xt=Object.keys(bt);function _t(e,n,t,c,l){if(!i(e)){var p=t.$options._base;if(u(e)&&(e=p.extend(e)),"function"==typeof e){var d;if(i(e.cid)&&void 0===(e=function(e,n){if(s(e.error)&&a(e.errorComp))return e.errorComp;if(a(e.resolved))return e.resolved;var t=En;if(t&&a(e.owners)&&-1===e.owners.indexOf(t)&&e.owners.push(t),s(e.loading)&&a(e.loadingComp))return e.loadingComp;if(t&&!a(e.owners)){var r=e.owners=[t],o=!0,c=null,l=null;t.$on("hook:destroyed",(function(){return _(r,t)}));var p=function(e){for(var n=0,t=r.length;n<t;n++)r[n].$forceUpdate();e&&(r.length=0,null!==c&&(clearTimeout(c),c=null),null!==l&&(clearTimeout(l),l=null))},d=U((function(t){e.resolved=kn(t,n),o?r.length=0:p(!0)})),f=U((function(n){a(e.errorComp)&&(e.error=!0,p(!0))})),h=e(d,f);return u(h)&&(v(h)?i(e.resolved)&&h.then(d,f):v(h.component)&&(h.component.then(d,f),a(h.error)&&(e.errorComp=kn(h.error,n)),a(h.loading)&&(e.loadingComp=kn(h.loading,n),0===h.delay?e.loading=!0:c=setTimeout((function(){c=null,i(e.resolved)&&i(e.error)&&(e.loading=!0,p(!1))}),h.delay||200)),a(h.timeout)&&(l=setTimeout((function(){l=null,i(e.resolved)&&f(null)}),h.timeout)))),o=!1,e.loading?e.loadingComp:e.resolved}}(d=e,p)))return function(e,n,t,r,o){var i=he();return i.asyncFactory=e,i.asyncMeta={data:n,context:t,children:r,tag:o},i}(d,n,t,c,l);n=n||{},Gt(e),a(n.model)&&function(e,n){var t=e.model&&e.model.prop||"value",r=e.model&&e.model.event||"input";(n.attrs||(n.attrs={}))[t]=n.model.value;var i=n.on||(n.on={}),s=i[r],c=n.model.callback;a(s)?(o(s)?-1===s.indexOf(c):s!==c)&&(i[r]=[c].concat(s)):i[r]=c}(e.options,n);var f=function(e,n,t){var r=n.options.props;if(!i(r)){var o={},s=e.attrs,c=e.props;if(a(s)||a(c))for(var l in r){var u=A(l);Ke(o,c,l,u,!0)||Ke(o,s,l,u,!1)}return o}}(n,e);if(s(e.options.functional))return function(e,n,t,i,s){var c=e.options,l={},u=c.props;if(a(u))for(var p in u)l[p]=$t(p,u,n||r);else a(t.attrs)&>(l,t.attrs),a(t.props)&>(l,t.props);var d=new vt(t,l,s,i,e),f=c.render.call(null,d._c,d);if(f instanceof fe)return mt(f,t,d.parent,c,d);if(o(f)){for(var h=Ze(f)||[],v=new Array(h.length),m=0;m<h.length;m++)v[m]=mt(h[m],t,d.parent,c,d);return v}}(e,f,n,t,c);var h=n.on;if(n.on=n.nativeOn,s(e.options.abstract)){var m=n.slot;n={},m&&(n.slot=m)}!function(e){for(var n=e.hook||(e.hook={}),t=0;t<xt.length;t++){var r=xt[t],o=n[r],i=bt[r];o===i||o&&o._merged||(n[r]=o?wt(i,o):i)}}(n);var g=yt(e.options)||l;return new fe("vue-component-".concat(e.cid).concat(g?"-".concat(g):""),n,void 0,void 0,void 0,t,{Ctor:e,propsData:f,listeners:h,tag:l,children:c},d)}}}function wt(e,n){var t=function(t,r){e(t,r),n(t,r)};return t._merged=!0,t}var Et=I,kt=q.optionMergeStrategies;function Tt(e,n,t){if(void 0===t&&(t=!0),!n)return e;for(var r,o,i,a=ue?Reflect.ownKeys(n):Object.keys(n),s=0;s<a.length;s++)"__ob__"!==(r=a[s])&&(o=e[r],i=n[r],t&&E(e,r)?o!==i&&d(o)&&d(i)&&Tt(o,i):Be(e,r,i));return e}function Ct(e,n,t){return t?function(){var r=l(n)?n.call(t,t):n,o=l(e)?e.call(t,t):e;return r?Tt(r,o):o}:n?e?function(){return Tt(l(n)?n.call(this,this):n,l(e)?e.call(this,this):e)}:n:e}function jt(e,n){var t=n?e?e.concat(n):o(n)?n:[n]:e;return t?function(e){for(var n=[],t=0;t<e.length;t++)-1===n.indexOf(e[t])&&n.push(e[t]);return n}(t):t}function St(e,n,t,r){var o=Object.create(e||null);return n?$(o,n):o}kt.data=function(e,n,t){return t?Ct(e,n,t):n&&"function"!=typeof n?e:Ct(e,n)},N.forEach((function(e){kt[e]=jt})),F.forEach((function(e){kt[e+"s"]=St})),kt.watch=function(e,n,t,r){if(e===re&&(e=void 0),n===re&&(n=void 0),!n)return Object.create(e||null);if(!e)return n;var i={};for(var a in $(i,e),n){var s=i[a],c=n[a];s&&!o(s)&&(s=[s]),i[a]=s?s.concat(c):o(c)?c:[c]}return i},kt.props=kt.methods=kt.inject=kt.computed=function(e,n,t,r){if(!e)return n;var o=Object.create(null);return $(o,e),n&&$(o,n),o},kt.provide=function(e,n){return e?function(){var t=Object.create(null);return Tt(t,l(e)?e.call(this):e),n&&Tt(t,l(n)?n.call(this):n,!1),t}:n};var At=function(e,n){return void 0===n?e:n};function Ot(e,n,t){if(l(n)&&(n=n.options),function(e,n){var t=e.props;if(t){var r,i,a={};if(o(t))for(r=t.length;r--;)"string"==typeof(i=t[r])&&(a[C(i)]={type:null});else if(d(t))for(var s in t)i=t[s],a[C(s)]=d(i)?i:{type:i};else 0;e.props=a}}(n),function(e,n){var t=e.inject;if(t){var r=e.inject={};if(o(t))for(var i=0;i<t.length;i++)r[t[i]]={from:t[i]};else if(d(t))for(var a in t){var s=t[a];r[a]=d(s)?$({from:a},s):{from:s}}else 0}}(n),function(e){var n=e.directives;if(n)for(var t in n){var r=n[t];l(r)&&(n[t]={bind:r,update:r})}}(n),!n._base&&(n.extends&&(e=Ot(e,n.extends,t)),n.mixins))for(var r=0,i=n.mixins.length;r<i;r++)e=Ot(e,n.mixins[r],t);var a,s={};for(a in e)c(a);for(a in n)E(e,a)||c(a);function c(r){var o=kt[r]||At;s[r]=o(e[r],n[r],t,r)}return s}function Pt(e,n,t,r){if("string"==typeof t){var o=e[n];if(E(o,t))return o[t];var i=C(t);if(E(o,i))return o[i];var a=j(i);return E(o,a)?o[a]:o[t]||o[i]||o[a]}}function $t(e,n,t,r){var o=n[e],i=!E(t,e),a=t[e],s=zt(Boolean,o.type);if(s>-1)if(i&&!E(o,"default"))a=!1;else if(""===a||a===A(e)){var c=zt(String,o.type);(c<0||s<c)&&(a=!0)}if(void 0===a){a=function(e,n,t){if(!E(n,"default"))return;var r=n.default;0;if(e&&e.$options.propsData&&void 0===e.$options.propsData[t]&&void 0!==e._props[t])return e._props[t];return l(r)&&"Function"!==It(n.type)?r.call(e):r}(r,o,e);var u=je;Se(!0),Pe(a),Se(u)}return a}var Bt=/^\s*function (\w+)/;function It(e){var n=e&&e.toString().match(Bt);return n?n[1]:""}function Lt(e,n){return It(e)===It(n)}function zt(e,n){if(!o(n))return Lt(n,e)?0:-1;for(var t=0,r=n.length;t<r;t++)if(Lt(n[t],e))return t;return-1}var Dt={enumerable:!0,configurable:!0,get:I,set:I};function Rt(e,n,t){Dt.get=function(){return this[n][t]},Dt.set=function(e){this[n][t]=e},Object.defineProperty(e,t,Dt)}function Ut(e){var n=e.$options;if(n.props&&function(e,n){var t=e.$options.propsData||{},r=e._props=ze({}),o=e.$options._propKeys=[];e.$parent&&Se(!1);var i=function(i){o.push(i);var a=$t(i,n,t,e);$e(r,i,a,void 0,!0),i in e||Rt(e,"_props",i)};for(var a in n)i(a);Se(!0)}(e,n.props),function(e){var n=e.$options,t=n.setup;if(t){var r=e._setupContext=bn(e);de(e),_e();var o=Sn(t,null,[e._props||ze({}),r],e,"setup");if(we(),de(),l(o))n.render=o;else if(u(o))if(e._setupState=o,o.__sfc){var i=e._setupProxy={};for(var a in o)"__sfc"!==a&&Me(i,o,a)}else for(var a in o)V(a)||Me(e,o,a);else 0}}(e),n.methods&&function(e,n){e.$options.props;for(var t in n)e[t]="function"!=typeof n[t]?I:O(n[t],e)}(e,n.methods),n.data)!function(e){var n=e.$options.data;d(n=e._data=l(n)?function(e,n){_e();try{return e.call(n,n)}catch(e){return jn(e,n,"data()"),{}}finally{we()}}(n,e):n||{})||(n={});var t=Object.keys(n),r=e.$options.props,o=(e.$options.methods,t.length);for(;o--;){var i=t[o];0,r&&E(r,i)||V(i)||Rt(e,"_data",i)}var a=Pe(n);a&&a.vmCount++}(e);else{var t=Pe(e._data={});t&&t.vmCount++}n.computed&&function(e,n){var t=e._computedWatchers=Object.create(null),r=ae();for(var o in n){var i=n[o],a=l(i)?i:i.get;0,r||(t[o]=new Gn(e,a||I,I,Mt)),o in e||Ft(e,o,i)}}(e,n.computed),n.watch&&n.watch!==re&&function(e,n){for(var t in n){var r=n[t];if(o(r))for(var i=0;i<r.length;i++)Ht(e,t,r[i]);else Ht(e,t,r)}}(e,n.watch)}var Mt={lazy:!0};function Ft(e,n,t){var r=!ae();l(t)?(Dt.get=r?Nt(n):qt(t),Dt.set=I):(Dt.get=t.get?r&&!1!==t.cache?Nt(n):qt(t.get):I,Dt.set=t.set||I),Object.defineProperty(e,n,Dt)}function Nt(e){return function(){var n=this._computedWatchers&&this._computedWatchers[e];if(n)return n.dirty&&n.evaluate(),be.target&&n.depend(),n.value}}function qt(e){return function(){return e.call(this,this)}}function Ht(e,n,t,r){return d(t)&&(r=t,t=t.handler),"string"==typeof t&&(t=e[t]),e.$watch(n,t,r)}var Vt=0;function Gt(e){var n=e.options;if(e.super){var t=Gt(e.super);if(t!==e.superOptions){e.superOptions=t;var r=function(e){var n,t=e.options,r=e.sealedOptions;for(var o in t)t[o]!==r[o]&&(n||(n={}),n[o]=t[o]);return n}(e);r&&$(e.extendOptions,r),(n=e.options=Ot(t,e.extendOptions)).name&&(n.components[n.name]=e)}}return n}function Wt(e){this._init(e)}function Kt(e){e.cid=0;var n=1;e.extend=function(e){e=e||{};var t=this,r=t.cid,o=e._Ctor||(e._Ctor={});if(o[r])return o[r];var i=yt(e)||yt(t.options);var a=function(e){this._init(e)};return(a.prototype=Object.create(t.prototype)).constructor=a,a.cid=n++,a.options=Ot(t.options,e),a.super=t,a.options.props&&function(e){var n=e.options.props;for(var t in n)Rt(e.prototype,"_props",t)}(a),a.options.computed&&function(e){var n=e.options.computed;for(var t in n)Ft(e.prototype,t,n[t])}(a),a.extend=t.extend,a.mixin=t.mixin,a.use=t.use,F.forEach((function(e){a[e]=t[e]})),i&&(a.options.components[i]=a),a.superOptions=t.options,a.extendOptions=e,a.sealedOptions=$({},a.options),o[r]=a,a}}function Zt(e){return e&&(yt(e.Ctor.options)||e.tag)}function Yt(e,n){return o(e)?e.indexOf(n)>-1:"string"==typeof e?e.split(",").indexOf(n)>-1:!!f(e)&&e.test(n)}function Xt(e,n){var t=e.cache,r=e.keys,o=e._vnode,i=e.$vnode;for(var a in t){var s=t[a];if(s){var c=s.name;c&&!n(c)&&Jt(t,a,r,o)}}i.componentOptions.children=void 0}function Jt(e,n,t,r){var o=e[n];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),e[n]=null,_(t,n)}!function(e){e.prototype._init=function(e){var n=this;n._uid=Vt++,n._isVue=!0,n.__v_skip=!0,n._scope=new Ne(!0),n._scope.parent=void 0,n._scope._vm=!0,e&&e._isComponent?function(e,n){var t=e.$options=Object.create(e.constructor.options),r=n._parentVnode;t.parent=n.parent,t._parentVnode=r;var o=r.componentOptions;t.propsData=o.propsData,t._parentListeners=o.listeners,t._renderChildren=o.children,t._componentTag=o.tag,n.render&&(t.render=n.render,t.staticRenderFns=n.staticRenderFns)}(n,e):n.$options=Ot(Gt(n.constructor),e||{},n),n._renderProxy=n,n._self=n,function(e){var n=e.$options,t=n.parent;if(t&&!n.abstract){for(;t.$options.abstract&&t.$parent;)t=t.$parent;t.$children.push(e)}e.$parent=t,e.$root=t?t.$root:e,e.$children=[],e.$refs={},e._provided=t?t._provided:Object.create(null),e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(n),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var n=e.$options._parentListeners;n&&Yn(e,n)}(n),function(e){e._vnode=null,e._staticTrees=null;var n=e.$options,t=e.$vnode=n._parentVnode,o=t&&t.context;e.$slots=fn(n._renderChildren,o),e.$scopedSlots=t?mn(e.$parent,t.data.scopedSlots,e.$slots):r,e._c=function(n,t,r,o){return Cn(e,n,t,r,o,!1)},e.$createElement=function(n,t,r,o){return Cn(e,n,t,r,o,!0)};var i=t&&t.data;$e(e,"$attrs",i&&i.attrs||r,null,!0),$e(e,"$listeners",n._parentListeners||r,null,!0)}(n),nt(n,"beforeCreate",void 0,!1),function(e){var n=ht(e.$options.inject,e);n&&(Se(!1),Object.keys(n).forEach((function(t){$e(e,t,n[t])})),Se(!0))}(n),Ut(n),function(e){var n=e.$options.provide;if(n){var t=l(n)?n.call(e):n;if(!u(t))return;for(var r=qe(e),o=ue?Reflect.ownKeys(t):Object.keys(t),i=0;i<o.length;i++){var a=o[i];Object.defineProperty(r,a,Object.getOwnPropertyDescriptor(t,a))}}}(n),nt(n,"created"),n.$options.el&&n.$mount(n.$options.el)}}(Wt),function(e){var n={get:function(){return this._data}},t={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",n),Object.defineProperty(e.prototype,"$props",t),e.prototype.$set=Be,e.prototype.$delete=Ie,e.prototype.$watch=function(e,n,t){if(d(n))return Ht(this,e,n,t);(t=t||{}).user=!0;var r=new Gn(this,e,n,t);if(t.immediate){var o='callback for immediate watcher "'.concat(r.expression,'"');_e(),Sn(n,this,[r.value],this,o),we()}return function(){r.teardown()}}}(Wt),function(e){var n=/^hook:/;e.prototype.$on=function(e,t){var r=this;if(o(e))for(var i=0,a=e.length;i<a;i++)r.$on(e[i],t);else(r._events[e]||(r._events[e]=[])).push(t),n.test(e)&&(r._hasHookEvent=!0);return r},e.prototype.$once=function(e,n){var t=this;function r(){t.$off(e,r),n.apply(t,arguments)}return r.fn=n,t.$on(e,r),t},e.prototype.$off=function(e,n){var t=this;if(!arguments.length)return t._events=Object.create(null),t;if(o(e)){for(var r=0,i=e.length;r<i;r++)t.$off(e[r],n);return t}var a,s=t._events[e];if(!s)return t;if(!n)return t._events[e]=null,t;for(var c=s.length;c--;)if((a=s[c])===n||a.fn===n){s.splice(c,1);break}return t},e.prototype.$emit=function(e){var n=this,t=n._events[e];if(t){t=t.length>1?P(t):t;for(var r=P(arguments,1),o='event handler for "'.concat(e,'"'),i=0,a=t.length;i<a;i++)Sn(t[i],n,r,n,o)}return n}}(Wt),function(e){e.prototype._update=function(e,n){var t=this,r=t.$el,o=t._vnode,i=Jn(t);t._vnode=e,t.$el=o?t.__patch__(o,e):t.__patch__(t.$el,e,n,!1),i(),r&&(r.__vue__=null),t.$el&&(t.$el.__vue__=t);for(var a=t;a&&a.$vnode&&a.$parent&&a.$vnode===a.$parent._vnode;)a.$parent.$el=a.$el,a=a.$parent},e.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},e.prototype.$destroy=function(){var e=this;if(!e._isBeingDestroyed){nt(e,"beforeDestroy"),e._isBeingDestroyed=!0;var n=e.$parent;!n||n._isBeingDestroyed||e.$options.abstract||_(n.$children,e),e._scope.stop(),e._data.__ob__&&e._data.__ob__.vmCount--,e._isDestroyed=!0,e.__patch__(e._vnode,null),nt(e,"destroyed"),e.$off(),e.$el&&(e.$el.__vue__=null),e.$vnode&&(e.$vnode.parent=null)}}}(Wt),function(e){dn(e.prototype),e.prototype.$nextTick=function(e){return Mn(e,this)},e.prototype._render=function(){var e=this,n=e.$options,t=n.render,r=n._parentVnode;r&&e._isMounted&&(e.$scopedSlots=mn(e.$parent,r.data.scopedSlots,e.$slots,e.$scopedSlots),e._slotsProxy&&wn(e._slotsProxy,e.$scopedSlots)),e.$vnode=r;var i,a=pe,s=En;try{de(e),En=e,i=t.call(e._renderProxy,e.$createElement)}catch(n){jn(n,e,"render"),i=e._vnode}finally{En=s,de(a)}return o(i)&&1===i.length&&(i=i[0]),i instanceof fe||(i=he()),i.parent=r,i}}(Wt);var Qt=[String,RegExp,Array],er={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:Qt,exclude:Qt,max:[String,Number]},methods:{cacheVNode:function(){var e=this.cache,n=this.keys,t=this.vnodeToCache,r=this.keyToCache;if(t){var o=t.tag,i=t.componentInstance,a=t.componentOptions;e[r]={name:Zt(a),tag:o,componentInstance:i},n.push(r),this.max&&n.length>parseInt(this.max)&&Jt(e,n[0],n,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)Jt(this.cache,e,this.keys)},mounted:function(){var e=this;this.cacheVNode(),this.$watch("include",(function(n){Xt(e,(function(e){return Yt(n,e)}))})),this.$watch("exclude",(function(n){Xt(e,(function(e){return!Yt(n,e)}))}))},updated:function(){this.cacheVNode()},render:function(){var e=this.$slots.default,n=Tn(e),t=n&&n.componentOptions;if(t){var r=Zt(t),o=this.include,i=this.exclude;if(o&&(!r||!Yt(o,r))||i&&r&&Yt(i,r))return n;var a=this.cache,s=this.keys,c=null==n.key?t.Ctor.cid+(t.tag?"::".concat(t.tag):""):n.key;a[c]?(n.componentInstance=a[c].componentInstance,_(s,c),s.push(c)):(this.vnodeToCache=n,this.keyToCache=c),n.data.keepAlive=!0}return n||e&&e[0]}}};!function(e){var n={get:function(){return q}};Object.defineProperty(e,"config",n),e.util={warn:Et,extend:$,mergeOptions:Ot,defineReactive:$e},e.set=Be,e.delete=Ie,e.nextTick=Mn,e.observable=function(e){return Pe(e),e},e.options=Object.create(null),F.forEach((function(n){e.options[n+"s"]=Object.create(null)})),e.options._base=e,$(e.options.components,er),function(e){e.use=function(e){var n=this._installedPlugins||(this._installedPlugins=[]);if(n.indexOf(e)>-1)return this;var t=P(arguments,1);return t.unshift(this),l(e.install)?e.install.apply(e,t):l(e)&&e.apply(null,t),n.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=Ot(this.options,e),this}}(e),Kt(e),function(e){F.forEach((function(n){e[n]=function(e,t){return t?("component"===n&&d(t)&&(t.name=t.name||e,t=this.options._base.extend(t)),"directive"===n&&l(t)&&(t={bind:t,update:t}),this.options[n+"s"][e]=t,t):this.options[n+"s"][e]}}))}(e)}(Wt),Object.defineProperty(Wt.prototype,"$isServer",{get:ae}),Object.defineProperty(Wt.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Wt,"FunctionalRenderContext",{value:vt}),Wt.version="2.7.16";var nr=b("style,class"),tr=b("input,textarea,option,select,progress"),rr=b("contenteditable,draggable,spellcheck"),or=b("events,caret,typing,plaintext-only"),ir=b("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),ar="http://www.w3.org/1999/xlink",sr=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},cr=function(e){return sr(e)?e.slice(6,e.length):""},lr=function(e){return null==e||!1===e};function ur(e){for(var n=e.data,t=e,r=e;a(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(n=pr(r.data,n));for(;a(t=t.parent);)t&&t.data&&(n=pr(n,t.data));return function(e,n){if(a(e)||a(n))return dr(e,fr(n));return""}(n.staticClass,n.class)}function pr(e,n){return{staticClass:dr(e.staticClass,n.staticClass),class:a(e.class)?[e.class,n.class]:n.class}}function dr(e,n){return e?n?e+" "+n:e:n||""}function fr(e){return Array.isArray(e)?function(e){for(var n,t="",r=0,o=e.length;r<o;r++)a(n=fr(e[r]))&&""!==n&&(t&&(t+=" "),t+=n);return t}(e):u(e)?function(e){var n="";for(var t in e)e[t]&&(n&&(n+=" "),n+=t);return n}(e):"string"==typeof e?e:""}var hr={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},vr=b("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),mr=b("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),gr=function(e){return vr(e)||mr(e)};var yr=Object.create(null);var br=b("text,number,password,search,email,tel,url");var xr=Object.freeze({__proto__:null,createElement:function(e,n){var t=document.createElement(e);return"select"!==e||n.data&&n.data.attrs&&void 0!==n.data.attrs.multiple&&t.setAttribute("multiple","multiple"),t},createElementNS:function(e,n){return document.createElementNS(hr[e],n)},createTextNode:function(e){return document.createTextNode(e)},createComment:function(e){return document.createComment(e)},insertBefore:function(e,n,t){e.insertBefore(n,t)},removeChild:function(e,n){e.removeChild(n)},appendChild:function(e,n){e.appendChild(n)},parentNode:function(e){return e.parentNode},nextSibling:function(e){return e.nextSibling},tagName:function(e){return e.tagName},setTextContent:function(e,n){e.textContent=n},setStyleScope:function(e,n){e.setAttribute(n,"")}}),_r={create:function(e,n){wr(n)},update:function(e,n){e.data.ref!==n.data.ref&&(wr(e,!0),wr(n))},destroy:function(e){wr(e,!0)}};function wr(e,n){var t=e.data.ref;if(a(t)){var r=e.context,i=e.componentInstance||e.elm,s=n?null:i,c=n?void 0:i;if(l(t))Sn(t,r,[s],r,"template ref function");else{var u=e.data.refInFor,p="string"==typeof t||"number"==typeof t,d=Ue(t),f=r.$refs;if(p||d)if(u){var h=p?f[t]:t.value;n?o(h)&&_(h,i):o(h)?h.includes(i)||h.push(i):p?(f[t]=[i],Er(r,t,f[t])):t.value=[i]}else if(p){if(n&&f[t]!==i)return;f[t]=c,Er(r,t,s)}else if(d){if(n&&t.value!==i)return;t.value=s}else 0}}}function Er(e,n,t){var r=e._setupState;r&&E(r,n)&&(Ue(r[n])?r[n].value=t:r[n]=t)}var kr=new fe("",{},[]),Tr=["create","activate","update","remove","destroy"];function Cr(e,n){return e.key===n.key&&e.asyncFactory===n.asyncFactory&&(e.tag===n.tag&&e.isComment===n.isComment&&a(e.data)===a(n.data)&&function(e,n){if("input"!==e.tag)return!0;var t,r=a(t=e.data)&&a(t=t.attrs)&&t.type,o=a(t=n.data)&&a(t=t.attrs)&&t.type;return r===o||br(r)&&br(o)}(e,n)||s(e.isAsyncPlaceholder)&&i(n.asyncFactory.error))}function jr(e,n,t){var r,o,i={};for(r=n;r<=t;++r)a(o=e[r].key)&&(i[o]=r);return i}var Sr={create:Ar,update:Ar,destroy:function(e){Ar(e,kr)}};function Ar(e,n){(e.data.directives||n.data.directives)&&function(e,n){var t,r,o,i=e===kr,a=n===kr,s=Pr(e.data.directives,e.context),c=Pr(n.data.directives,n.context),l=[],u=[];for(t in c)r=s[t],o=c[t],r?(o.oldValue=r.value,o.oldArg=r.arg,Br(o,"update",n,e),o.def&&o.def.componentUpdated&&u.push(o)):(Br(o,"bind",n,e),o.def&&o.def.inserted&&l.push(o));if(l.length){var p=function(){for(var t=0;t<l.length;t++)Br(l[t],"inserted",n,e)};i?We(n,"insert",p):p()}u.length&&We(n,"postpatch",(function(){for(var t=0;t<u.length;t++)Br(u[t],"componentUpdated",n,e)}));if(!i)for(t in s)c[t]||Br(s[t],"unbind",e,e,a)}(e,n)}var Or=Object.create(null);function Pr(e,n){var t,r,o=Object.create(null);if(!e)return o;for(t=0;t<e.length;t++){if((r=e[t]).modifiers||(r.modifiers=Or),o[$r(r)]=r,n._setupState&&n._setupState.__sfc){var i=r.def||Pt(n,"_setupState","v-"+r.name);r.def="function"==typeof i?{bind:i,update:i}:i}r.def=r.def||Pt(n.$options,"directives",r.name)}return o}function $r(e){return e.rawName||"".concat(e.name,".").concat(Object.keys(e.modifiers||{}).join("."))}function Br(e,n,t,r,o){var i=e.def&&e.def[n];if(i)try{i(t.elm,e,t,r,o)}catch(r){jn(r,t.context,"directive ".concat(e.name," ").concat(n," hook"))}}var Ir=[_r,Sr];function Lr(e,n){var t=n.componentOptions;if(!(a(t)&&!1===t.Ctor.options.inheritAttrs||i(e.data.attrs)&&i(n.data.attrs))){var r,o,c=n.elm,l=e.data.attrs||{},u=n.data.attrs||{};for(r in(a(u.__ob__)||s(u._v_attr_proxy))&&(u=n.data.attrs=$({},u)),u)o=u[r],l[r]!==o&&zr(c,r,o,n.data.pre);for(r in(X||Q)&&u.value!==l.value&&zr(c,"value",u.value),l)i(u[r])&&(sr(r)?c.removeAttributeNS(ar,cr(r)):rr(r)||c.removeAttribute(r))}}function zr(e,n,t,r){r||e.tagName.indexOf("-")>-1?Dr(e,n,t):ir(n)?lr(t)?e.removeAttribute(n):(t="allowfullscreen"===n&&"EMBED"===e.tagName?"true":n,e.setAttribute(n,t)):rr(n)?e.setAttribute(n,function(e,n){return lr(n)||"false"===n?"false":"contenteditable"===e&&or(n)?n:"true"}(n,t)):sr(n)?lr(t)?e.removeAttributeNS(ar,cr(n)):e.setAttributeNS(ar,n,t):Dr(e,n,t)}function Dr(e,n,t){if(lr(t))e.removeAttribute(n);else{if(X&&!J&&"TEXTAREA"===e.tagName&&"placeholder"===n&&""!==t&&!e.__ieph){var r=function(n){n.stopImmediatePropagation(),e.removeEventListener("input",r)};e.addEventListener("input",r),e.__ieph=!0}e.setAttribute(n,t)}}var Rr={create:Lr,update:Lr};function Ur(e,n){var t=n.elm,r=n.data,o=e.data;if(!(i(r.staticClass)&&i(r.class)&&(i(o)||i(o.staticClass)&&i(o.class)))){var s=ur(n),c=t._transitionClasses;a(c)&&(s=dr(s,fr(c))),s!==t._prevClass&&(t.setAttribute("class",s),t._prevClass=s)}}var Mr,Fr={create:Ur,update:Ur};function Nr(e,n,t){var r=Mr;return function o(){var i=n.apply(null,arguments);null!==i&&Vr(e,o,t,r)}}var qr=$n&&!(te&&Number(te[1])<=53);function Hr(e,n,t,r){if(qr){var o=ct,i=n;n=i._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=o||e.timeStamp<=0||e.target.ownerDocument!==document)return i.apply(this,arguments)}}Mr.addEventListener(e,n,oe?{capture:t,passive:r}:t)}function Vr(e,n,t,r){(r||Mr).removeEventListener(e,n._wrapper||n,t)}function Gr(e,n){if(!i(e.data.on)||!i(n.data.on)){var t=n.data.on||{},r=e.data.on||{};Mr=n.elm||e.elm,function(e){if(a(e.__r)){var n=X?"change":"input";e[n]=[].concat(e.__r,e[n]||[]),delete e.__r}a(e.__c)&&(e.change=[].concat(e.__c,e.change||[]),delete e.__c)}(t),Ge(t,r,Hr,Vr,Nr,n.context),Mr=void 0}}var Wr,Kr={create:Gr,update:Gr,destroy:function(e){return Gr(e,kr)}};function Zr(e,n){if(!i(e.data.domProps)||!i(n.data.domProps)){var t,r,o=n.elm,c=e.data.domProps||{},l=n.data.domProps||{};for(t in(a(l.__ob__)||s(l._v_attr_proxy))&&(l=n.data.domProps=$({},l)),c)t in l||(o[t]="");for(t in l){if(r=l[t],"textContent"===t||"innerHTML"===t){if(n.children&&(n.children.length=0),r===c[t])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===t&&"PROGRESS"!==o.tagName){o._value=r;var u=i(r)?"":String(r);Yr(o,u)&&(o.value=u)}else if("innerHTML"===t&&mr(o.tagName)&&i(o.innerHTML)){(Wr=Wr||document.createElement("div")).innerHTML="<svg>".concat(r,"</svg>");for(var p=Wr.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;p.firstChild;)o.appendChild(p.firstChild)}else if(r!==c[t])try{o[t]=r}catch(e){}}}}function Yr(e,n){return!e.composing&&("OPTION"===e.tagName||function(e,n){var t=!0;try{t=document.activeElement!==e}catch(e){}return t&&e.value!==n}(e,n)||function(e,n){var t=e.value,r=e._vModifiers;if(a(r)){if(r.number)return y(t)!==y(n);if(r.trim)return t.trim()!==n.trim()}return t!==n}(e,n))}var Xr={create:Zr,update:Zr},Jr=k((function(e){var n={},t=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach((function(e){if(e){var r=e.split(t);r.length>1&&(n[r[0].trim()]=r[1].trim())}})),n}));function Qr(e){var n=eo(e.style);return e.staticStyle?$(e.staticStyle,n):n}function eo(e){return Array.isArray(e)?B(e):"string"==typeof e?Jr(e):e}var no,to=/^--/,ro=/\s*!important$/,oo=function(e,n,t){if(to.test(n))e.style.setProperty(n,t);else if(ro.test(t))e.style.setProperty(A(n),t.replace(ro,""),"important");else{var r=ao(n);if(Array.isArray(t))for(var o=0,i=t.length;o<i;o++)e.style[r]=t[o];else e.style[r]=t}},io=["Webkit","Moz","ms"],ao=k((function(e){if(no=no||document.createElement("div").style,"filter"!==(e=C(e))&&e in no)return e;for(var n=e.charAt(0).toUpperCase()+e.slice(1),t=0;t<io.length;t++){var r=io[t]+n;if(r in no)return r}}));function so(e,n){var t=n.data,r=e.data;if(!(i(t.staticStyle)&&i(t.style)&&i(r.staticStyle)&&i(r.style))){var o,s,c=n.elm,l=r.staticStyle,u=r.normalizedStyle||r.style||{},p=l||u,d=eo(n.data.style)||{};n.data.normalizedStyle=a(d.__ob__)?$({},d):d;var f=function(e,n){var t,r={};if(n)for(var o=e;o.componentInstance;)(o=o.componentInstance._vnode)&&o.data&&(t=Qr(o.data))&&$(r,t);(t=Qr(e.data))&&$(r,t);for(var i=e;i=i.parent;)i.data&&(t=Qr(i.data))&&$(r,t);return r}(n,!0);for(s in p)i(f[s])&&oo(c,s,"");for(s in f)o=f[s],oo(c,s,null==o?"":o)}}var co={create:so,update:so},lo=/\s+/;function uo(e,n){if(n&&(n=n.trim()))if(e.classList)n.indexOf(" ")>-1?n.split(lo).forEach((function(n){return e.classList.add(n)})):e.classList.add(n);else{var t=" ".concat(e.getAttribute("class")||""," ");t.indexOf(" "+n+" ")<0&&e.setAttribute("class",(t+n).trim())}}function po(e,n){if(n&&(n=n.trim()))if(e.classList)n.indexOf(" ")>-1?n.split(lo).forEach((function(n){return e.classList.remove(n)})):e.classList.remove(n),e.classList.length||e.removeAttribute("class");else{for(var t=" ".concat(e.getAttribute("class")||""," "),r=" "+n+" ";t.indexOf(r)>=0;)t=t.replace(r," ");(t=t.trim())?e.setAttribute("class",t):e.removeAttribute("class")}}function fo(e){if(e){if("object"==typeof e){var n={};return!1!==e.css&&$(n,ho(e.name||"v")),$(n,e),n}return"string"==typeof e?ho(e):void 0}}var ho=k((function(e){return{enterClass:"".concat(e,"-enter"),enterToClass:"".concat(e,"-enter-to"),enterActiveClass:"".concat(e,"-enter-active"),leaveClass:"".concat(e,"-leave"),leaveToClass:"".concat(e,"-leave-to"),leaveActiveClass:"".concat(e,"-leave-active")}})),vo=Z&&!J,mo="transition",go="transitionend",yo="animation",bo="animationend";vo&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(mo="WebkitTransition",go="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(yo="WebkitAnimation",bo="webkitAnimationEnd"));var xo=Z?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function _o(e){xo((function(){xo(e)}))}function wo(e,n){var t=e._transitionClasses||(e._transitionClasses=[]);t.indexOf(n)<0&&(t.push(n),uo(e,n))}function Eo(e,n){e._transitionClasses&&_(e._transitionClasses,n),po(e,n)}function ko(e,n,t){var r=Co(e,n),o=r.type,i=r.timeout,a=r.propCount;if(!o)return t();var s="transition"===o?go:bo,c=0,l=function(){e.removeEventListener(s,u),t()},u=function(n){n.target===e&&++c>=a&&l()};setTimeout((function(){c<a&&l()}),i+1),e.addEventListener(s,u)}var To=/\b(transform|all)(,|$)/;function Co(e,n){var t,r=window.getComputedStyle(e),o=(r[mo+"Delay"]||"").split(", "),i=(r[mo+"Duration"]||"").split(", "),a=jo(o,i),s=(r[yo+"Delay"]||"").split(", "),c=(r[yo+"Duration"]||"").split(", "),l=jo(s,c),u=0,p=0;return"transition"===n?a>0&&(t="transition",u=a,p=i.length):"animation"===n?l>0&&(t="animation",u=l,p=c.length):p=(t=(u=Math.max(a,l))>0?a>l?"transition":"animation":null)?"transition"===t?i.length:c.length:0,{type:t,timeout:u,propCount:p,hasTransform:"transition"===t&&To.test(r[mo+"Property"])}}function jo(e,n){for(;e.length<n.length;)e=e.concat(e);return Math.max.apply(null,n.map((function(n,t){return So(n)+So(e[t])})))}function So(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}function Ao(e,n){var t=e.elm;a(t._leaveCb)&&(t._leaveCb.cancelled=!0,t._leaveCb());var r=fo(e.data.transition);if(!i(r)&&!a(t._enterCb)&&1===t.nodeType){for(var o=r.css,s=r.type,c=r.enterClass,p=r.enterToClass,d=r.enterActiveClass,f=r.appearClass,h=r.appearToClass,v=r.appearActiveClass,m=r.beforeEnter,g=r.enter,b=r.afterEnter,x=r.enterCancelled,_=r.beforeAppear,w=r.appear,E=r.afterAppear,k=r.appearCancelled,T=r.duration,C=Xn,j=Xn.$vnode;j&&j.parent;)C=j.context,j=j.parent;var S=!C._isMounted||!e.isRootInsert;if(!S||w||""===w){var A=S&&f?f:c,O=S&&v?v:d,P=S&&h?h:p,$=S&&_||m,B=S&&l(w)?w:g,I=S&&E||b,L=S&&k||x,z=y(u(T)?T.enter:T);0;var D=!1!==o&&!J,R=$o(B),M=t._enterCb=U((function(){D&&(Eo(t,P),Eo(t,O)),M.cancelled?(D&&Eo(t,A),L&&L(t)):I&&I(t),t._enterCb=null}));e.data.show||We(e,"insert",(function(){var n=t.parentNode,r=n&&n._pending&&n._pending[e.key];r&&r.tag===e.tag&&r.elm._leaveCb&&r.elm._leaveCb(),B&&B(t,M)})),$&&$(t),D&&(wo(t,A),wo(t,O),_o((function(){Eo(t,A),M.cancelled||(wo(t,P),R||(Po(z)?setTimeout(M,z):ko(t,s,M)))}))),e.data.show&&(n&&n(),B&&B(t,M)),D||R||M()}}}function Oo(e,n){var t=e.elm;a(t._enterCb)&&(t._enterCb.cancelled=!0,t._enterCb());var r=fo(e.data.transition);if(i(r)||1!==t.nodeType)return n();if(!a(t._leaveCb)){var o=r.css,s=r.type,c=r.leaveClass,l=r.leaveToClass,p=r.leaveActiveClass,d=r.beforeLeave,f=r.leave,h=r.afterLeave,v=r.leaveCancelled,m=r.delayLeave,g=r.duration,b=!1!==o&&!J,x=$o(f),_=y(u(g)?g.leave:g);0;var w=t._leaveCb=U((function(){t.parentNode&&t.parentNode._pending&&(t.parentNode._pending[e.key]=null),b&&(Eo(t,l),Eo(t,p)),w.cancelled?(b&&Eo(t,c),v&&v(t)):(n(),h&&h(t)),t._leaveCb=null}));m?m(E):E()}function E(){w.cancelled||(!e.data.show&&t.parentNode&&((t.parentNode._pending||(t.parentNode._pending={}))[e.key]=e),d&&d(t),b&&(wo(t,c),wo(t,p),_o((function(){Eo(t,c),w.cancelled||(wo(t,l),x||(Po(_)?setTimeout(w,_):ko(t,s,w)))}))),f&&f(t,w),b||x||w())}}function Po(e){return"number"==typeof e&&!isNaN(e)}function $o(e){if(i(e))return!1;var n=e.fns;return a(n)?$o(Array.isArray(n)?n[0]:n):(e._length||e.length)>1}function Bo(e,n){!0!==n.data.show&&Ao(n)}var Io=function(e){var n,t,r={},l=e.modules,u=e.nodeOps;for(n=0;n<Tr.length;++n)for(r[Tr[n]]=[],t=0;t<l.length;++t)a(l[t][Tr[n]])&&r[Tr[n]].push(l[t][Tr[n]]);function p(e){var n=u.parentNode(e);a(n)&&u.removeChild(n,e)}function d(e,n,t,o,i,c,l){if(a(e.elm)&&a(c)&&(e=c[l]=me(e)),e.isRootInsert=!i,!function(e,n,t,o){var i=e.data;if(a(i)){var c=a(e.componentInstance)&&i.keepAlive;if(a(i=i.hook)&&a(i=i.init)&&i(e,!1),a(e.componentInstance))return f(e,n),h(t,e.elm,o),s(c)&&function(e,n,t,o){var i,s=e;for(;s.componentInstance;)if(s=s.componentInstance._vnode,a(i=s.data)&&a(i=i.transition)){for(i=0;i<r.activate.length;++i)r.activate[i](kr,s);n.push(s);break}h(t,e.elm,o)}(e,n,t,o),!0}}(e,n,t,o)){var p=e.data,d=e.children,m=e.tag;a(m)?(e.elm=e.ns?u.createElementNS(e.ns,m):u.createElement(m,e),y(e),v(e,d,n),a(p)&&g(e,n),h(t,e.elm,o)):s(e.isComment)?(e.elm=u.createComment(e.text),h(t,e.elm,o)):(e.elm=u.createTextNode(e.text),h(t,e.elm,o))}}function f(e,n){a(e.data.pendingInsert)&&(n.push.apply(n,e.data.pendingInsert),e.data.pendingInsert=null),e.elm=e.componentInstance.$el,m(e)?(g(e,n),y(e)):(wr(e),n.push(e))}function h(e,n,t){a(e)&&(a(t)?u.parentNode(t)===e&&u.insertBefore(e,n,t):u.appendChild(e,n))}function v(e,n,t){if(o(n)){0;for(var r=0;r<n.length;++r)d(n[r],t,e.elm,null,!0,n,r)}else c(e.text)&&u.appendChild(e.elm,u.createTextNode(String(e.text)))}function m(e){for(;e.componentInstance;)e=e.componentInstance._vnode;return a(e.tag)}function g(e,t){for(var o=0;o<r.create.length;++o)r.create[o](kr,e);a(n=e.data.hook)&&(a(n.create)&&n.create(kr,e),a(n.insert)&&t.push(e))}function y(e){var n;if(a(n=e.fnScopeId))u.setStyleScope(e.elm,n);else for(var t=e;t;)a(n=t.context)&&a(n=n.$options._scopeId)&&u.setStyleScope(e.elm,n),t=t.parent;a(n=Xn)&&n!==e.context&&n!==e.fnContext&&a(n=n.$options._scopeId)&&u.setStyleScope(e.elm,n)}function x(e,n,t,r,o,i){for(;r<=o;++r)d(t[r],i,e,n,!1,t,r)}function _(e){var n,t,o=e.data;if(a(o))for(a(n=o.hook)&&a(n=n.destroy)&&n(e),n=0;n<r.destroy.length;++n)r.destroy[n](e);if(a(n=e.children))for(t=0;t<e.children.length;++t)_(e.children[t])}function w(e,n,t){for(;n<=t;++n){var r=e[n];a(r)&&(a(r.tag)?(E(r),_(r)):p(r.elm))}}function E(e,n){if(a(n)||a(e.data)){var t,o=r.remove.length+1;for(a(n)?n.listeners+=o:n=function(e,n){function t(){0==--t.listeners&&p(e)}return t.listeners=n,t}(e.elm,o),a(t=e.componentInstance)&&a(t=t._vnode)&&a(t.data)&&E(t,n),t=0;t<r.remove.length;++t)r.remove[t](e,n);a(t=e.data.hook)&&a(t=t.remove)?t(e,n):n()}else p(e.elm)}function k(e,n,t,r){for(var o=t;o<r;o++){var i=n[o];if(a(i)&&Cr(e,i))return o}}function T(e,n,t,o,c,l){if(e!==n){a(n.elm)&&a(o)&&(n=o[c]=me(n));var p=n.elm=e.elm;if(s(e.isAsyncPlaceholder))a(n.asyncFactory.resolved)?S(e.elm,n,t):n.isAsyncPlaceholder=!0;else if(s(n.isStatic)&&s(e.isStatic)&&n.key===e.key&&(s(n.isCloned)||s(n.isOnce)))n.componentInstance=e.componentInstance;else{var f,h=n.data;a(h)&&a(f=h.hook)&&a(f=f.prepatch)&&f(e,n);var v=e.children,g=n.children;if(a(h)&&m(n)){for(f=0;f<r.update.length;++f)r.update[f](e,n);a(f=h.hook)&&a(f=f.update)&&f(e,n)}i(n.text)?a(v)&&a(g)?v!==g&&function(e,n,t,r,o){var s,c,l,p=0,f=0,h=n.length-1,v=n[0],m=n[h],g=t.length-1,y=t[0],b=t[g],_=!o;for(0;p<=h&&f<=g;)i(v)?v=n[++p]:i(m)?m=n[--h]:Cr(v,y)?(T(v,y,r,t,f),v=n[++p],y=t[++f]):Cr(m,b)?(T(m,b,r,t,g),m=n[--h],b=t[--g]):Cr(v,b)?(T(v,b,r,t,g),_&&u.insertBefore(e,v.elm,u.nextSibling(m.elm)),v=n[++p],b=t[--g]):Cr(m,y)?(T(m,y,r,t,f),_&&u.insertBefore(e,m.elm,v.elm),m=n[--h],y=t[++f]):(i(s)&&(s=jr(n,p,h)),i(c=a(y.key)?s[y.key]:k(y,n,p,h))?d(y,r,e,v.elm,!1,t,f):Cr(l=n[c],y)?(T(l,y,r,t,f),n[c]=void 0,_&&u.insertBefore(e,l.elm,v.elm)):d(y,r,e,v.elm,!1,t,f),y=t[++f]);p>h?x(e,i(t[g+1])?null:t[g+1].elm,t,f,g,r):f>g&&w(n,p,h)}(p,v,g,t,l):a(g)?(a(e.text)&&u.setTextContent(p,""),x(p,null,g,0,g.length-1,t)):a(v)?w(v,0,v.length-1):a(e.text)&&u.setTextContent(p,""):e.text!==n.text&&u.setTextContent(p,n.text),a(h)&&a(f=h.hook)&&a(f=f.postpatch)&&f(e,n)}}}function C(e,n,t){if(s(t)&&a(e.parent))e.parent.data.pendingInsert=n;else for(var r=0;r<n.length;++r)n[r].data.hook.insert(n[r])}var j=b("attrs,class,staticClass,staticStyle,key");function S(e,n,t,r){var o,i=n.tag,c=n.data,l=n.children;if(r=r||c&&c.pre,n.elm=e,s(n.isComment)&&a(n.asyncFactory))return n.isAsyncPlaceholder=!0,!0;if(a(c)&&(a(o=c.hook)&&a(o=o.init)&&o(n,!0),a(o=n.componentInstance)))return f(n,t),!0;if(a(i)){if(a(l))if(e.hasChildNodes())if(a(o=c)&&a(o=o.domProps)&&a(o=o.innerHTML)){if(o!==e.innerHTML)return!1}else{for(var u=!0,p=e.firstChild,d=0;d<l.length;d++){if(!p||!S(p,l[d],t,r)){u=!1;break}p=p.nextSibling}if(!u||p)return!1}else v(n,l,t);if(a(c)){var h=!1;for(var m in c)if(!j(m)){h=!0,g(n,t);break}!h&&c.class&&qn(c.class)}}else e.data!==n.text&&(e.data=n.text);return!0}return function(e,n,t,o){if(!i(n)){var c,l=!1,p=[];if(i(e))l=!0,d(n,p);else{var f=a(e.nodeType);if(!f&&Cr(e,n))T(e,n,p,null,null,o);else{if(f){if(1===e.nodeType&&e.hasAttribute("data-server-rendered")&&(e.removeAttribute("data-server-rendered"),t=!0),s(t)&&S(e,n,p))return C(n,p,!0),e;c=e,e=new fe(u.tagName(c).toLowerCase(),{},[],void 0,c)}var h=e.elm,v=u.parentNode(h);if(d(n,p,h._leaveCb?null:v,u.nextSibling(h)),a(n.parent))for(var g=n.parent,y=m(n);g;){for(var b=0;b<r.destroy.length;++b)r.destroy[b](g);if(g.elm=n.elm,y){for(var x=0;x<r.create.length;++x)r.create[x](kr,g);var E=g.data.hook.insert;if(E.merged)for(var k=E.fns.slice(1),j=0;j<k.length;j++)k[j]()}else wr(g);g=g.parent}a(v)?w([e],0,0):a(e.tag)&&_(e)}}return C(n,p,l),n.elm}a(e)&&_(e)}}({nodeOps:xr,modules:[Rr,Fr,Kr,Xr,co,Z?{create:Bo,activate:Bo,remove:function(e,n){!0!==e.data.show?Oo(e,n):n()}}:{}].concat(Ir)});J&&document.addEventListener("selectionchange",(function(){var e=document.activeElement;e&&e.vmodel&&No(e,"input")}));var Lo={inserted:function(e,n,t,r){"select"===t.tag?(r.elm&&!r.elm._vOptions?We(t,"postpatch",(function(){Lo.componentUpdated(e,n,t)})):zo(e,n,t.context),e._vOptions=[].map.call(e.options,Uo)):("textarea"===t.tag||br(e.type))&&(e._vModifiers=n.modifiers,n.modifiers.lazy||(e.addEventListener("compositionstart",Mo),e.addEventListener("compositionend",Fo),e.addEventListener("change",Fo),J&&(e.vmodel=!0)))},componentUpdated:function(e,n,t){if("select"===t.tag){zo(e,n,t.context);var r=e._vOptions,o=e._vOptions=[].map.call(e.options,Uo);if(o.some((function(e,n){return!D(e,r[n])})))(e.multiple?n.value.some((function(e){return Ro(e,o)})):n.value!==n.oldValue&&Ro(n.value,o))&&No(e,"change")}}};function zo(e,n,t){Do(e,n,t),(X||Q)&&setTimeout((function(){Do(e,n,t)}),0)}function Do(e,n,t){var r=n.value,o=e.multiple;if(!o||Array.isArray(r)){for(var i,a,s=0,c=e.options.length;s<c;s++)if(a=e.options[s],o)i=R(r,Uo(a))>-1,a.selected!==i&&(a.selected=i);else if(D(Uo(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));o||(e.selectedIndex=-1)}}function Ro(e,n){return n.every((function(n){return!D(n,e)}))}function Uo(e){return"_value"in e?e._value:e.value}function Mo(e){e.target.composing=!0}function Fo(e){e.target.composing&&(e.target.composing=!1,No(e.target,"input"))}function No(e,n){var t=document.createEvent("HTMLEvents");t.initEvent(n,!0,!0),e.dispatchEvent(t)}function qo(e){return!e.componentInstance||e.data&&e.data.transition?e:qo(e.componentInstance._vnode)}var Ho={model:Lo,show:{bind:function(e,n,t){var r=n.value,o=(t=qo(t)).data&&t.data.transition,i=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&o?(t.data.show=!0,Ao(t,(function(){e.style.display=i}))):e.style.display=r?i:"none"},update:function(e,n,t){var r=n.value;!r!=!n.oldValue&&((t=qo(t)).data&&t.data.transition?(t.data.show=!0,r?Ao(t,(function(){e.style.display=e.__vOriginalDisplay})):Oo(t,(function(){e.style.display="none"}))):e.style.display=r?e.__vOriginalDisplay:"none")},unbind:function(e,n,t,r,o){o||(e.style.display=e.__vOriginalDisplay)}}},Vo={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Go(e){var n=e&&e.componentOptions;return n&&n.Ctor.options.abstract?Go(Tn(n.children)):e}function Wo(e){var n={},t=e.$options;for(var r in t.propsData)n[r]=e[r];var o=t._parentListeners;for(var r in o)n[C(r)]=o[r];return n}function Ko(e,n){if(/\d-keep-alive$/.test(n.tag))return e("keep-alive",{props:n.componentOptions.propsData})}var Zo=function(e){return e.tag||vn(e)},Yo=function(e){return"show"===e.name},Xo={name:"transition",props:Vo,abstract:!0,render:function(e){var n=this,t=this.$slots.default;if(t&&(t=t.filter(Zo)).length){0;var r=this.mode;0;var o=t[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return o;var i=Go(o);if(!i)return o;if(this._leaving)return Ko(e,o);var a="__transition-".concat(this._uid,"-");i.key=null==i.key?i.isComment?a+"comment":a+i.tag:c(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var s=(i.data||(i.data={})).transition=Wo(this),l=this._vnode,u=Go(l);if(i.data.directives&&i.data.directives.some(Yo)&&(i.data.show=!0),u&&u.data&&!function(e,n){return n.key===e.key&&n.tag===e.tag}(i,u)&&!vn(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var p=u.data.transition=$({},s);if("out-in"===r)return this._leaving=!0,We(p,"afterLeave",(function(){n._leaving=!1,n.$forceUpdate()})),Ko(e,o);if("in-out"===r){if(vn(i))return l;var d,f=function(){d()};We(s,"afterEnter",f),We(s,"enterCancelled",f),We(p,"delayLeave",(function(e){d=e}))}}return o}}},Jo=$({tag:String,moveClass:String},Vo);function Qo(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function ei(e){e.data.newPos=e.elm.getBoundingClientRect()}function ni(e){var n=e.data.pos,t=e.data.newPos,r=n.left-t.left,o=n.top-t.top;if(r||o){e.data.moved=!0;var i=e.elm.style;i.transform=i.WebkitTransform="translate(".concat(r,"px,").concat(o,"px)"),i.transitionDuration="0s"}}delete Jo.mode;var ti={Transition:Xo,TransitionGroup:{props:Jo,beforeMount:function(){var e=this,n=this._update;this._update=function(t,r){var o=Jn(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,o(),n.call(e,t,r)}},render:function(e){for(var n=this.tag||this.$vnode.data.tag||"span",t=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=Wo(this),s=0;s<o.length;s++){if((u=o[s]).tag)if(null!=u.key&&0!==String(u.key).indexOf("__vlist"))i.push(u),t[u.key]=u,(u.data||(u.data={})).transition=a;else;}if(r){var c=[],l=[];for(s=0;s<r.length;s++){var u;(u=r[s]).data.transition=a,u.data.pos=u.elm.getBoundingClientRect(),t[u.key]?c.push(u):l.push(u)}this.kept=e(n,null,c),this.removed=l}return e(n,null,i)},updated:function(){var e=this.prevChildren,n=this.moveClass||(this.name||"v")+"-move";e.length&&this.hasMove(e[0].elm,n)&&(e.forEach(Qo),e.forEach(ei),e.forEach(ni),this._reflow=document.body.offsetHeight,e.forEach((function(e){if(e.data.moved){var t=e.elm,r=t.style;wo(t,n),r.transform=r.WebkitTransform=r.transitionDuration="",t.addEventListener(go,t._moveCb=function e(r){r&&r.target!==t||r&&!/transform$/.test(r.propertyName)||(t.removeEventListener(go,e),t._moveCb=null,Eo(t,n))})}})))},methods:{hasMove:function(e,n){if(!vo)return!1;if(this._hasMove)return this._hasMove;var t=e.cloneNode();e._transitionClasses&&e._transitionClasses.forEach((function(e){po(t,e)})),uo(t,n),t.style.display="none",this.$el.appendChild(t);var r=Co(t);return this.$el.removeChild(t),this._hasMove=r.hasTransform}}}};function ri(e,n){for(var t in n)e[t]=n[t];return e}Wt.config.mustUseProp=function(e,n,t){return"value"===t&&tr(e)&&"button"!==n||"selected"===t&&"option"===e||"checked"===t&&"input"===e||"muted"===t&&"video"===e},Wt.config.isReservedTag=gr,Wt.config.isReservedAttr=nr,Wt.config.getTagNamespace=function(e){return mr(e)?"svg":"math"===e?"math":void 0},Wt.config.isUnknownElement=function(e){if(!Z)return!0;if(gr(e))return!1;if(e=e.toLowerCase(),null!=yr[e])return yr[e];var n=document.createElement(e);return e.indexOf("-")>-1?yr[e]=n.constructor===window.HTMLUnknownElement||n.constructor===window.HTMLElement:yr[e]=/HTMLUnknownElement/.test(n.toString())},$(Wt.options.directives,Ho),$(Wt.options.components,ti),Wt.prototype.__patch__=Z?Io:I,Wt.prototype.$mount=function(e,n){return function(e,n,t){var r;e.$el=n,e.$options.render||(e.$options.render=he),nt(e,"beforeMount"),r=function(){e._update(e._render(),t)},new Gn(e,r,I,{before:function(){e._isMounted&&!e._isDestroyed&&nt(e,"beforeUpdate")}},!0),t=!1;var o=e._preWatchers;if(o)for(var i=0;i<o.length;i++)o[i].run();return null==e.$vnode&&(e._isMounted=!0,nt(e,"mounted")),e}(this,e=e&&Z?function(e){if("string"==typeof e){var n=document.querySelector(e);return n||document.createElement("div")}return e}(e):void 0,n)},Z&&setTimeout((function(){q.devtools&&se&&se.emit("init",Wt)}),0);var oi=/[!'()*]/g,ii=function(e){return"%"+e.charCodeAt(0).toString(16)},ai=/%2C/g,si=function(e){return encodeURIComponent(e).replace(oi,ii).replace(ai,",")};function ci(e){try{return decodeURIComponent(e)}catch(e){0}return e}var li=function(e){return null==e||"object"==typeof e?e:String(e)};function ui(e){var n={};return(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var t=e.replace(/\+/g," ").split("="),r=ci(t.shift()),o=t.length>0?ci(t.join("=")):null;void 0===n[r]?n[r]=o:Array.isArray(n[r])?n[r].push(o):n[r]=[n[r],o]})),n):n}function pi(e){var n=e?Object.keys(e).map((function(n){var t=e[n];if(void 0===t)return"";if(null===t)return si(n);if(Array.isArray(t)){var r=[];return t.forEach((function(e){void 0!==e&&(null===e?r.push(si(n)):r.push(si(n)+"="+si(e)))})),r.join("&")}return si(n)+"="+si(t)})).filter((function(e){return e.length>0})).join("&"):null;return n?"?"+n:""}var di=/\/?$/;function fi(e,n,t,r){var o=r&&r.options.stringifyQuery,i=n.query||{};try{i=hi(i)}catch(e){}var a={name:n.name||e&&e.name,meta:e&&e.meta||{},path:n.path||"/",hash:n.hash||"",query:i,params:n.params||{},fullPath:gi(n,o),matched:e?mi(e):[]};return t&&(a.redirectedFrom=gi(t,o)),Object.freeze(a)}function hi(e){if(Array.isArray(e))return e.map(hi);if(e&&"object"==typeof e){var n={};for(var t in e)n[t]=hi(e[t]);return n}return e}var vi=fi(null,{path:"/"});function mi(e){for(var n=[];e;)n.unshift(e),e=e.parent;return n}function gi(e,n){var t=e.path,r=e.query;void 0===r&&(r={});var o=e.hash;return void 0===o&&(o=""),(t||"/")+(n||pi)(r)+o}function yi(e,n,t){return n===vi?e===n:!!n&&(e.path&&n.path?e.path.replace(di,"")===n.path.replace(di,"")&&(t||e.hash===n.hash&&bi(e.query,n.query)):!(!e.name||!n.name)&&(e.name===n.name&&(t||e.hash===n.hash&&bi(e.query,n.query)&&bi(e.params,n.params))))}function bi(e,n){if(void 0===e&&(e={}),void 0===n&&(n={}),!e||!n)return e===n;var t=Object.keys(e).sort(),r=Object.keys(n).sort();return t.length===r.length&&t.every((function(t,o){var i=e[t];if(r[o]!==t)return!1;var a=n[t];return null==i||null==a?i===a:"object"==typeof i&&"object"==typeof a?bi(i,a):String(i)===String(a)}))}function xi(e){for(var n=0;n<e.matched.length;n++){var t=e.matched[n];for(var r in t.instances){var o=t.instances[r],i=t.enteredCbs[r];if(o&&i){delete t.enteredCbs[r];for(var a=0;a<i.length;a++)o._isBeingDestroyed||i[a](o)}}}}var _i={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(e,n){var t=n.props,r=n.children,o=n.parent,i=n.data;i.routerView=!0;for(var a=o.$createElement,s=t.name,c=o.$route,l=o._routerViewCache||(o._routerViewCache={}),u=0,p=!1;o&&o._routerRoot!==o;){var d=o.$vnode?o.$vnode.data:{};d.routerView&&u++,d.keepAlive&&o._directInactive&&o._inactive&&(p=!0),o=o.$parent}if(i.routerViewDepth=u,p){var f=l[s],h=f&&f.component;return h?(f.configProps&&wi(h,i,f.route,f.configProps),a(h,i,r)):a()}var v=c.matched[u],m=v&&v.components[s];if(!v||!m)return l[s]=null,a();l[s]={component:m},i.registerRouteInstance=function(e,n){var t=v.instances[s];(n&&t!==e||!n&&t===e)&&(v.instances[s]=n)},(i.hook||(i.hook={})).prepatch=function(e,n){v.instances[s]=n.componentInstance},i.hook.init=function(e){e.data.keepAlive&&e.componentInstance&&e.componentInstance!==v.instances[s]&&(v.instances[s]=e.componentInstance),xi(c)};var g=v.props&&v.props[s];return g&&(ri(l[s],{route:c,configProps:g}),wi(m,i,c,g)),a(m,i,r)}};function wi(e,n,t,r){var o=n.props=function(e,n){switch(typeof n){case"undefined":return;case"object":return n;case"function":return n(e);case"boolean":return n?e.params:void 0;default:0}}(t,r);if(o){o=n.props=ri({},o);var i=n.attrs=n.attrs||{};for(var a in o)e.props&&a in e.props||(i[a]=o[a],delete o[a])}}function Ei(e,n,t){var r=e.charAt(0);if("/"===r)return e;if("?"===r||"#"===r)return n+e;var o=n.split("/");t&&o[o.length-1]||o.pop();for(var i=e.replace(/^\//,"").split("/"),a=0;a<i.length;a++){var s=i[a];".."===s?o.pop():"."!==s&&o.push(s)}return""!==o[0]&&o.unshift(""),o.join("/")}function ki(e){return e.replace(/\/(?:\s*\/)+/g,"/")}var Ti=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)},Ci=Mi,ji=$i,Si=function(e,n){return Ii($i(e,n),n)},Ai=Ii,Oi=Ui,Pi=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function $i(e,n){for(var t,r=[],o=0,i=0,a="",s=n&&n.delimiter||"/";null!=(t=Pi.exec(e));){var c=t[0],l=t[1],u=t.index;if(a+=e.slice(i,u),i=u+c.length,l)a+=l[1];else{var p=e[i],d=t[2],f=t[3],h=t[4],v=t[5],m=t[6],g=t[7];a&&(r.push(a),a="");var y=null!=d&&null!=p&&p!==d,b="+"===m||"*"===m,x="?"===m||"*"===m,_=t[2]||s,w=h||v;r.push({name:f||o++,prefix:d||"",delimiter:_,optional:x,repeat:b,partial:y,asterisk:!!g,pattern:w?zi(w):g?".*":"[^"+Li(_)+"]+?"})}}return i<e.length&&(a+=e.substr(i)),a&&r.push(a),r}function Bi(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function Ii(e,n){for(var t=new Array(e.length),r=0;r<e.length;r++)"object"==typeof e[r]&&(t[r]=new RegExp("^(?:"+e[r].pattern+")$",Ri(n)));return function(n,r){for(var o="",i=n||{},a=(r||{}).pretty?Bi:encodeURIComponent,s=0;s<e.length;s++){var c=e[s];if("string"!=typeof c){var l,u=i[c.name];if(null==u){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(Ti(u)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(u)+"`");if(0===u.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var p=0;p<u.length;p++){if(l=a(u[p]),!t[s].test(l))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(l)+"`");o+=(0===p?c.prefix:c.delimiter)+l}}else{if(l=c.asterisk?encodeURI(u).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):a(u),!t[s].test(l))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+l+'"');o+=c.prefix+l}}else o+=c}return o}}function Li(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function zi(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function Di(e,n){return e.keys=n,e}function Ri(e){return e&&e.sensitive?"":"i"}function Ui(e,n,t){Ti(n)||(t=n||t,n=[]);for(var r=(t=t||{}).strict,o=!1!==t.end,i="",a=0;a<e.length;a++){var s=e[a];if("string"==typeof s)i+=Li(s);else{var c=Li(s.prefix),l="(?:"+s.pattern+")";n.push(s),s.repeat&&(l+="(?:"+c+l+")*"),i+=l=s.optional?s.partial?c+"("+l+")?":"(?:"+c+"("+l+"))?":c+"("+l+")"}}var u=Li(t.delimiter||"/"),p=i.slice(-u.length)===u;return r||(i=(p?i.slice(0,-u.length):i)+"(?:"+u+"(?=$))?"),i+=o?"$":r&&p?"":"(?="+u+"|$)",Di(new RegExp("^"+i,Ri(t)),n)}function Mi(e,n,t){return Ti(n)||(t=n||t,n=[]),t=t||{},e instanceof RegExp?function(e,n){var t=e.source.match(/\((?!\?)/g);if(t)for(var r=0;r<t.length;r++)n.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return Di(e,n)}(e,n):Ti(e)?function(e,n,t){for(var r=[],o=0;o<e.length;o++)r.push(Mi(e[o],n,t).source);return Di(new RegExp("(?:"+r.join("|")+")",Ri(t)),n)}(e,n,t):function(e,n,t){return Ui($i(e,t),n,t)}(e,n,t)}Ci.parse=ji,Ci.compile=Si,Ci.tokensToFunction=Ai,Ci.tokensToRegExp=Oi;var Fi=Object.create(null);function Ni(e,n,t){n=n||{};try{var r=Fi[e]||(Fi[e]=Ci.compile(e));return"string"==typeof n.pathMatch&&(n[0]=n.pathMatch),r(n,{pretty:!0})}catch(e){return""}finally{delete n[0]}}function qi(e,n,t,r){var o="string"==typeof e?{path:e}:e;if(o._normalized)return o;if(o.name){var i=(o=ri({},e)).params;return i&&"object"==typeof i&&(o.params=ri({},i)),o}if(!o.path&&o.params&&n){(o=ri({},o))._normalized=!0;var a=ri(ri({},n.params),o.params);if(n.name)o.name=n.name,o.params=a;else if(n.matched.length){var s=n.matched[n.matched.length-1].path;o.path=Ni(s,a,n.path)}else 0;return o}var c=function(e){var n="",t="",r=e.indexOf("#");r>=0&&(n=e.slice(r),e=e.slice(0,r));var o=e.indexOf("?");return o>=0&&(t=e.slice(o+1),e=e.slice(0,o)),{path:e,query:t,hash:n}}(o.path||""),l=n&&n.path||"/",u=c.path?Ei(c.path,l,t||o.append):l,p=function(e,n,t){void 0===n&&(n={});var r,o=t||ui;try{r=o(e||"")}catch(e){r={}}for(var i in n){var a=n[i];r[i]=Array.isArray(a)?a.map(li):li(a)}return r}(c.query,o.query,r&&r.options.parseQuery),d=o.hash||c.hash;return d&&"#"!==d.charAt(0)&&(d="#"+d),{_normalized:!0,path:u,query:p,hash:d}}var Hi,Vi=function(){},Gi={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(e){var n=this,t=this.$router,r=this.$route,o=t.resolve(this.to,r,this.append),i=o.location,a=o.route,s=o.href,c={},l=t.options.linkActiveClass,u=t.options.linkExactActiveClass,p=null==l?"router-link-active":l,d=null==u?"router-link-exact-active":u,f=null==this.activeClass?p:this.activeClass,h=null==this.exactActiveClass?d:this.exactActiveClass,v=a.redirectedFrom?fi(null,qi(a.redirectedFrom),null,t):a;c[h]=yi(r,v,this.exactPath),c[f]=this.exact||this.exactPath?c[h]:function(e,n){return 0===e.path.replace(di,"/").indexOf(n.path.replace(di,"/"))&&(!n.hash||e.hash===n.hash)&&function(e,n){for(var t in n)if(!(t in e))return!1;return!0}(e.query,n.query)}(r,v);var m=c[h]?this.ariaCurrentValue:null,g=function(e){Wi(e)&&(n.replace?t.replace(i,Vi):t.push(i,Vi))},y={click:Wi};Array.isArray(this.event)?this.event.forEach((function(e){y[e]=g})):y[this.event]=g;var b={class:c},x=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:g,isActive:c[f],isExactActive:c[h]});if(x){if(1===x.length)return x[0];if(x.length>1||!x.length)return 0===x.length?e():e("span",{},x)}if("a"===this.tag)b.on=y,b.attrs={href:s,"aria-current":m};else{var _=function e(n){var t;if(n)for(var r=0;r<n.length;r++){if("a"===(t=n[r]).tag)return t;if(t.children&&(t=e(t.children)))return t}}(this.$slots.default);if(_){_.isStatic=!1;var w=_.data=ri({},_.data);for(var E in w.on=w.on||{},w.on){var k=w.on[E];E in y&&(w.on[E]=Array.isArray(k)?k:[k])}for(var T in y)T in w.on?w.on[T].push(y[T]):w.on[T]=g;var C=_.data.attrs=ri({},_.data.attrs);C.href=s,C["aria-current"]=m}else b.on=y}return e(this.tag,b,this.$slots.default)}};function Wi(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||e.defaultPrevented||void 0!==e.button&&0!==e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){var n=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(n))return}return e.preventDefault&&e.preventDefault(),!0}}var Ki="undefined"!=typeof window;function Zi(e,n,t,r,o){var i=n||[],a=t||Object.create(null),s=r||Object.create(null);e.forEach((function(e){!function e(n,t,r,o,i,a){var s=o.path,c=o.name;0;var l=o.pathToRegexpOptions||{},u=function(e,n,t){t||(e=e.replace(/\/$/,""));if("/"===e[0])return e;if(null==n)return e;return ki(n.path+"/"+e)}(s,i,l.strict);"boolean"==typeof o.caseSensitive&&(l.sensitive=o.caseSensitive);var p={path:u,regex:Yi(u,l),components:o.components||{default:o.component},alias:o.alias?"string"==typeof o.alias?[o.alias]:o.alias:[],instances:{},enteredCbs:{},name:c,parent:i,matchAs:a,redirect:o.redirect,beforeEnter:o.beforeEnter,meta:o.meta||{},props:null==o.props?{}:o.components?o.props:{default:o.props}};o.children&&o.children.forEach((function(o){var i=a?ki(a+"/"+o.path):void 0;e(n,t,r,o,p,i)}));t[p.path]||(n.push(p.path),t[p.path]=p);if(void 0!==o.alias)for(var d=Array.isArray(o.alias)?o.alias:[o.alias],f=0;f<d.length;++f){0;var h={path:d[f],children:o.children};e(n,t,r,h,i,p.path||"/")}c&&(r[c]||(r[c]=p))}(i,a,s,e,o)}));for(var c=0,l=i.length;c<l;c++)"*"===i[c]&&(i.push(i.splice(c,1)[0]),l--,c--);return{pathList:i,pathMap:a,nameMap:s}}function Yi(e,n){return Ci(e,[],n)}function Xi(e,n){var t=Zi(e),r=t.pathList,o=t.pathMap,i=t.nameMap;function a(e,t,a){var s=qi(e,t,!1,n),l=s.name;if(l){var u=i[l];if(!u)return c(null,s);var p=u.regex.keys.filter((function(e){return!e.optional})).map((function(e){return e.name}));if("object"!=typeof s.params&&(s.params={}),t&&"object"==typeof t.params)for(var d in t.params)!(d in s.params)&&p.indexOf(d)>-1&&(s.params[d]=t.params[d]);return s.path=Ni(u.path,s.params),c(u,s,a)}if(s.path){s.params={};for(var f=0;f<r.length;f++){var h=r[f],v=o[h];if(Ji(v.regex,s.path,s.params))return c(v,s,a)}}return c(null,s)}function s(e,t){var r=e.redirect,o="function"==typeof r?r(fi(e,t,null,n)):r;if("string"==typeof o&&(o={path:o}),!o||"object"!=typeof o)return c(null,t);var s=o,l=s.name,u=s.path,p=t.query,d=t.hash,f=t.params;if(p=s.hasOwnProperty("query")?s.query:p,d=s.hasOwnProperty("hash")?s.hash:d,f=s.hasOwnProperty("params")?s.params:f,l){i[l];return a({_normalized:!0,name:l,query:p,hash:d,params:f},void 0,t)}if(u){var h=function(e,n){return Ei(e,n.parent?n.parent.path:"/",!0)}(u,e);return a({_normalized:!0,path:Ni(h,f),query:p,hash:d},void 0,t)}return c(null,t)}function c(e,t,r){return e&&e.redirect?s(e,r||t):e&&e.matchAs?function(e,n,t){var r=a({_normalized:!0,path:Ni(t,n.params)});if(r){var o=r.matched,i=o[o.length-1];return n.params=r.params,c(i,n)}return c(null,n)}(0,t,e.matchAs):fi(e,t,r,n)}return{match:a,addRoute:function(e,n){var t="object"!=typeof e?i[e]:void 0;Zi([n||e],r,o,i,t),t&&t.alias.length&&Zi(t.alias.map((function(e){return{path:e,children:[n]}})),r,o,i,t)},getRoutes:function(){return r.map((function(e){return o[e]}))},addRoutes:function(e){Zi(e,r,o,i)}}}function Ji(e,n,t){var r=n.match(e);if(!r)return!1;if(!t)return!0;for(var o=1,i=r.length;o<i;++o){var a=e.keys[o-1];a&&(t[a.name||"pathMatch"]="string"==typeof r[o]?ci(r[o]):r[o])}return!0}var Qi=Ki&&window.performance&&window.performance.now?window.performance:Date;function ea(){return Qi.now().toFixed(3)}var na=ea();function ta(){return na}function ra(e){return na=e}var oa=Object.create(null);function ia(){"scrollRestoration"in window.history&&(window.history.scrollRestoration="manual");var e=window.location.protocol+"//"+window.location.host,n=window.location.href.replace(e,""),t=ri({},window.history.state);return t.key=ta(),window.history.replaceState(t,"",n),window.addEventListener("popstate",ca),function(){window.removeEventListener("popstate",ca)}}function aa(e,n,t,r){if(e.app){var o=e.options.scrollBehavior;o&&e.app.$nextTick((function(){var i=function(){var e=ta();if(e)return oa[e]}(),a=o.call(e,n,t,r?i:null);a&&("function"==typeof a.then?a.then((function(e){fa(e,i)})).catch((function(e){0})):fa(a,i))}))}}function sa(){var e=ta();e&&(oa[e]={x:window.pageXOffset,y:window.pageYOffset})}function ca(e){sa(),e.state&&e.state.key&&ra(e.state.key)}function la(e){return pa(e.x)||pa(e.y)}function ua(e){return{x:pa(e.x)?e.x:window.pageXOffset,y:pa(e.y)?e.y:window.pageYOffset}}function pa(e){return"number"==typeof e}var da=/^#\d/;function fa(e,n){var t,r="object"==typeof e;if(r&&"string"==typeof e.selector){var o=da.test(e.selector)?document.getElementById(e.selector.slice(1)):document.querySelector(e.selector);if(o){var i=e.offset&&"object"==typeof e.offset?e.offset:{};n=function(e,n){var t=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{x:r.left-t.left-n.x,y:r.top-t.top-n.y}}(o,i={x:pa((t=i).x)?t.x:0,y:pa(t.y)?t.y:0})}else la(e)&&(n=ua(e))}else r&&la(e)&&(n=ua(e));n&&("scrollBehavior"in document.documentElement.style?window.scrollTo({left:n.x,top:n.y,behavior:e.behavior}):window.scrollTo(n.x,n.y))}var ha,va=Ki&&((-1===(ha=window.navigator.userAgent).indexOf("Android 2.")&&-1===ha.indexOf("Android 4.0")||-1===ha.indexOf("Mobile Safari")||-1!==ha.indexOf("Chrome")||-1!==ha.indexOf("Windows Phone"))&&window.history&&"function"==typeof window.history.pushState);function ma(e,n){sa();var t=window.history;try{if(n){var r=ri({},t.state);r.key=ta(),t.replaceState(r,"",e)}else t.pushState({key:ra(ea())},"",e)}catch(t){window.location[n?"replace":"assign"](e)}}function ga(e){ma(e,!0)}var ya={redirected:2,aborted:4,cancelled:8,duplicated:16};function ba(e,n){return _a(e,n,ya.redirected,'Redirected when going from "'+e.fullPath+'" to "'+function(e){if("string"==typeof e)return e;if("path"in e)return e.path;var n={};return wa.forEach((function(t){t in e&&(n[t]=e[t])})),JSON.stringify(n,null,2)}(n)+'" via a navigation guard.')}function xa(e,n){return _a(e,n,ya.cancelled,'Navigation cancelled from "'+e.fullPath+'" to "'+n.fullPath+'" with a new navigation.')}function _a(e,n,t,r){var o=new Error(r);return o._isRouter=!0,o.from=e,o.to=n,o.type=t,o}var wa=["params","query","hash"];function Ea(e){return Object.prototype.toString.call(e).indexOf("Error")>-1}function ka(e,n){return Ea(e)&&e._isRouter&&(null==n||e.type===n)}function Ta(e,n,t){var r=function(o){o>=e.length?t():e[o]?n(e[o],(function(){r(o+1)})):r(o+1)};r(0)}function Ca(e){return function(n,t,r){var o=!1,i=0,a=null;ja(e,(function(e,n,t,s){if("function"==typeof e&&void 0===e.cid){o=!0,i++;var c,l=Oa((function(n){var o;((o=n).__esModule||Aa&&"Module"===o[Symbol.toStringTag])&&(n=n.default),e.resolved="function"==typeof n?n:Hi.extend(n),t.components[s]=n,--i<=0&&r()})),u=Oa((function(e){var n="Failed to resolve async component "+s+": "+e;a||(a=Ea(e)?e:new Error(n),r(a))}));try{c=e(l,u)}catch(e){u(e)}if(c)if("function"==typeof c.then)c.then(l,u);else{var p=c.component;p&&"function"==typeof p.then&&p.then(l,u)}}})),o||r()}}function ja(e,n){return Sa(e.map((function(e){return Object.keys(e.components).map((function(t){return n(e.components[t],e.instances[t],e,t)}))})))}function Sa(e){return Array.prototype.concat.apply([],e)}var Aa="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Oa(e){var n=!1;return function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];if(!n)return n=!0,e.apply(this,t)}}var Pa=function(e,n){this.router=e,this.base=function(e){if(!e)if(Ki){var n=document.querySelector("base");e=(e=n&&n.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else e="/";"/"!==e.charAt(0)&&(e="/"+e);return e.replace(/\/$/,"")}(n),this.current=vi,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function $a(e,n,t,r){var o=ja(e,(function(e,r,o,i){var a=function(e,n){"function"!=typeof e&&(e=Hi.extend(e));return e.options[n]}(e,n);if(a)return Array.isArray(a)?a.map((function(e){return t(e,r,o,i)})):t(a,r,o,i)}));return Sa(r?o.reverse():o)}function Ba(e,n){if(n)return function(){return e.apply(n,arguments)}}Pa.prototype.listen=function(e){this.cb=e},Pa.prototype.onReady=function(e,n){this.ready?e():(this.readyCbs.push(e),n&&this.readyErrorCbs.push(n))},Pa.prototype.onError=function(e){this.errorCbs.push(e)},Pa.prototype.transitionTo=function(e,n,t){var r,o=this;try{r=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach((function(n){n(e)})),e}var i=this.current;this.confirmTransition(r,(function(){o.updateRoute(r),n&&n(r),o.ensureURL(),o.router.afterHooks.forEach((function(e){e&&e(r,i)})),o.ready||(o.ready=!0,o.readyCbs.forEach((function(e){e(r)})))}),(function(e){t&&t(e),e&&!o.ready&&(ka(e,ya.redirected)&&i===vi||(o.ready=!0,o.readyErrorCbs.forEach((function(n){n(e)}))))}))},Pa.prototype.confirmTransition=function(e,n,t){var r=this,o=this.current;this.pending=e;var i,a,s=function(e){!ka(e)&&Ea(e)&&(r.errorCbs.length?r.errorCbs.forEach((function(n){n(e)})):console.error(e)),t&&t(e)},c=e.matched.length-1,l=o.matched.length-1;if(yi(e,o)&&c===l&&e.matched[c]===o.matched[l])return this.ensureURL(),e.hash&&aa(this.router,o,e,!1),s(((a=_a(i=o,e,ya.duplicated,'Avoided redundant navigation to current location: "'+i.fullPath+'".')).name="NavigationDuplicated",a));var u=function(e,n){var t,r=Math.max(e.length,n.length);for(t=0;t<r&&e[t]===n[t];t++);return{updated:n.slice(0,t),activated:n.slice(t),deactivated:e.slice(t)}}(this.current.matched,e.matched),p=u.updated,d=u.deactivated,f=u.activated,h=[].concat(function(e){return $a(e,"beforeRouteLeave",Ba,!0)}(d),this.router.beforeHooks,function(e){return $a(e,"beforeRouteUpdate",Ba)}(p),f.map((function(e){return e.beforeEnter})),Ca(f)),v=function(n,t){if(r.pending!==e)return s(xa(o,e));try{n(e,o,(function(n){!1===n?(r.ensureURL(!0),s(function(e,n){return _a(e,n,ya.aborted,'Navigation aborted from "'+e.fullPath+'" to "'+n.fullPath+'" via a navigation guard.')}(o,e))):Ea(n)?(r.ensureURL(!0),s(n)):"string"==typeof n||"object"==typeof n&&("string"==typeof n.path||"string"==typeof n.name)?(s(ba(o,e)),"object"==typeof n&&n.replace?r.replace(n):r.push(n)):t(n)}))}catch(e){s(e)}};Ta(h,v,(function(){Ta(function(e){return $a(e,"beforeRouteEnter",(function(e,n,t,r){return function(e,n,t){return function(r,o,i){return e(r,o,(function(e){"function"==typeof e&&(n.enteredCbs[t]||(n.enteredCbs[t]=[]),n.enteredCbs[t].push(e)),i(e)}))}}(e,t,r)}))}(f).concat(r.router.resolveHooks),v,(function(){if(r.pending!==e)return s(xa(o,e));r.pending=null,n(e),r.router.app&&r.router.app.$nextTick((function(){xi(e)}))}))}))},Pa.prototype.updateRoute=function(e){this.current=e,this.cb&&this.cb(e)},Pa.prototype.setupListeners=function(){},Pa.prototype.teardown=function(){this.listeners.forEach((function(e){e()})),this.listeners=[],this.current=vi,this.pending=null};var Ia=function(e){function n(n,t){e.call(this,n,t),this._startLocation=La(this.base)}return e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n,n.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var n=this.router,t=n.options.scrollBehavior,r=va&&t;r&&this.listeners.push(ia());var o=function(){var t=e.current,o=La(e.base);e.current===vi&&o===e._startLocation||e.transitionTo(o,(function(e){r&&aa(n,e,t,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},n.prototype.go=function(e){window.history.go(e)},n.prototype.push=function(e,n,t){var r=this,o=this.current;this.transitionTo(e,(function(e){ma(ki(r.base+e.fullPath)),aa(r.router,e,o,!1),n&&n(e)}),t)},n.prototype.replace=function(e,n,t){var r=this,o=this.current;this.transitionTo(e,(function(e){ga(ki(r.base+e.fullPath)),aa(r.router,e,o,!1),n&&n(e)}),t)},n.prototype.ensureURL=function(e){if(La(this.base)!==this.current.fullPath){var n=ki(this.base+this.current.fullPath);e?ma(n):ga(n)}},n.prototype.getCurrentLocation=function(){return La(this.base)},n}(Pa);function La(e){var n=window.location.pathname,t=n.toLowerCase(),r=e.toLowerCase();return!e||t!==r&&0!==t.indexOf(ki(r+"/"))||(n=n.slice(e.length)),(n||"/")+window.location.search+window.location.hash}var za=function(e){function n(n,t,r){e.call(this,n,t),r&&function(e){var n=La(e);if(!/^\/#/.test(n))return window.location.replace(ki(e+"/#"+n)),!0}(this.base)||Da()}return e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n,n.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var n=this.router.options.scrollBehavior,t=va&&n;t&&this.listeners.push(ia());var r=function(){var n=e.current;Da()&&e.transitionTo(Ra(),(function(r){t&&aa(e.router,r,n,!0),va||Fa(r.fullPath)}))},o=va?"popstate":"hashchange";window.addEventListener(o,r),this.listeners.push((function(){window.removeEventListener(o,r)}))}},n.prototype.push=function(e,n,t){var r=this,o=this.current;this.transitionTo(e,(function(e){Ma(e.fullPath),aa(r.router,e,o,!1),n&&n(e)}),t)},n.prototype.replace=function(e,n,t){var r=this,o=this.current;this.transitionTo(e,(function(e){Fa(e.fullPath),aa(r.router,e,o,!1),n&&n(e)}),t)},n.prototype.go=function(e){window.history.go(e)},n.prototype.ensureURL=function(e){var n=this.current.fullPath;Ra()!==n&&(e?Ma(n):Fa(n))},n.prototype.getCurrentLocation=function(){return Ra()},n}(Pa);function Da(){var e=Ra();return"/"===e.charAt(0)||(Fa("/"+e),!1)}function Ra(){var e=window.location.href,n=e.indexOf("#");return n<0?"":e=e.slice(n+1)}function Ua(e){var n=window.location.href,t=n.indexOf("#");return(t>=0?n.slice(0,t):n)+"#"+e}function Ma(e){va?ma(Ua(e)):window.location.hash=e}function Fa(e){va?ga(Ua(e)):window.location.replace(Ua(e))}var Na=function(e){function n(n,t){e.call(this,n,t),this.stack=[],this.index=-1}return e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n,n.prototype.push=function(e,n,t){var r=this;this.transitionTo(e,(function(e){r.stack=r.stack.slice(0,r.index+1).concat(e),r.index++,n&&n(e)}),t)},n.prototype.replace=function(e,n,t){var r=this;this.transitionTo(e,(function(e){r.stack=r.stack.slice(0,r.index).concat(e),n&&n(e)}),t)},n.prototype.go=function(e){var n=this,t=this.index+e;if(!(t<0||t>=this.stack.length)){var r=this.stack[t];this.confirmTransition(r,(function(){var e=n.current;n.index=t,n.updateRoute(r),n.router.afterHooks.forEach((function(n){n&&n(r,e)}))}),(function(e){ka(e,ya.duplicated)&&(n.index=t)}))}},n.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},n.prototype.ensureURL=function(){},n}(Pa),qa=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Xi(e.routes||[],this);var n=e.mode||"hash";switch(this.fallback="history"===n&&!va&&!1!==e.fallback,this.fallback&&(n="hash"),Ki||(n="abstract"),this.mode=n,n){case"history":this.history=new Ia(this,e.base);break;case"hash":this.history=new za(this,e.base,this.fallback);break;case"abstract":this.history=new Na(this,e.base);break;default:0}},Ha={currentRoute:{configurable:!0}};qa.prototype.match=function(e,n,t){return this.matcher.match(e,n,t)},Ha.currentRoute.get=function(){return this.history&&this.history.current},qa.prototype.init=function(e){var n=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var t=n.apps.indexOf(e);t>-1&&n.apps.splice(t,1),n.app===e&&(n.app=n.apps[0]||null),n.app||n.history.teardown()})),!this.app){this.app=e;var t=this.history;if(t instanceof Ia||t instanceof za){var r=function(e){t.setupListeners(),function(e){var r=t.current,o=n.options.scrollBehavior;va&&o&&"fullPath"in e&&aa(n,e,r,!1)}(e)};t.transitionTo(t.getCurrentLocation(),r,r)}t.listen((function(e){n.apps.forEach((function(n){n._route=e}))}))}},qa.prototype.beforeEach=function(e){return Ga(this.beforeHooks,e)},qa.prototype.beforeResolve=function(e){return Ga(this.resolveHooks,e)},qa.prototype.afterEach=function(e){return Ga(this.afterHooks,e)},qa.prototype.onReady=function(e,n){this.history.onReady(e,n)},qa.prototype.onError=function(e){this.history.onError(e)},qa.prototype.push=function(e,n,t){var r=this;if(!n&&!t&&"undefined"!=typeof Promise)return new Promise((function(n,t){r.history.push(e,n,t)}));this.history.push(e,n,t)},qa.prototype.replace=function(e,n,t){var r=this;if(!n&&!t&&"undefined"!=typeof Promise)return new Promise((function(n,t){r.history.replace(e,n,t)}));this.history.replace(e,n,t)},qa.prototype.go=function(e){this.history.go(e)},qa.prototype.back=function(){this.go(-1)},qa.prototype.forward=function(){this.go(1)},qa.prototype.getMatchedComponents=function(e){var n=e?e.matched?e:this.resolve(e).route:this.currentRoute;return n?[].concat.apply([],n.matched.map((function(e){return Object.keys(e.components).map((function(n){return e.components[n]}))}))):[]},qa.prototype.resolve=function(e,n,t){var r=qi(e,n=n||this.history.current,t,this),o=this.match(r,n),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(e,n,t){var r="hash"===t?"#"+n:n;return e?ki(e+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},qa.prototype.getRoutes=function(){return this.matcher.getRoutes()},qa.prototype.addRoute=function(e,n){this.matcher.addRoute(e,n),this.history.current!==vi&&this.history.transitionTo(this.history.getCurrentLocation())},qa.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==vi&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(qa.prototype,Ha);var Va=qa;function Ga(e,n){return e.push(n),function(){var t=e.indexOf(n);t>-1&&e.splice(t,1)}}qa.install=function e(n){if(!e.installed||Hi!==n){e.installed=!0,Hi=n;var t=function(e){return void 0!==e},r=function(e,n){var r=e.$options._parentVnode;t(r)&&t(r=r.data)&&t(r=r.registerRouteInstance)&&r(e,n)};n.mixin({beforeCreate:function(){t(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),n.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(n.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(n.prototype,"$route",{get:function(){return this._routerRoot._route}}),n.component("RouterView",_i),n.component("RouterLink",Gi);var o=n.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},qa.version="3.6.5",qa.isNavigationFailure=ka,qa.NavigationFailureType=ya,qa.START_LOCATION=vi,Ki&&window.Vue&&window.Vue.use(qa);t(153),t(18),t(163);t(165),t(29);var Wa={NotFound:()=>Promise.all([t.e(0),t.e(4)]).then(t.bind(null,371)),Layout:()=>Promise.all([t.e(0),t.e(2)]).then(t.bind(null,370))},Ka={"v-6817da1e":()=>t.e(7).then(t.bind(null,372)),"v-c5ae5baa":()=>t.e(8).then(t.bind(null,373)),"v-56935cd5":()=>t.e(9).then(t.bind(null,374)),"v-1defee03":()=>t.e(10).then(t.bind(null,375)),"v-1c826803":()=>t.e(11).then(t.bind(null,376)),"v-5d224f7b":()=>t.e(12).then(t.bind(null,377)),"v-57a42df1":()=>t.e(13).then(t.bind(null,378)),"v-fb26568e":()=>t.e(14).then(t.bind(null,379)),"v-45c5d1a5":()=>t.e(15).then(t.bind(null,380)),"v-1594f7c7":()=>t.e(16).then(t.bind(null,381)),"v-740254eb":()=>t.e(17).then(t.bind(null,382)),"v-6fc7fd0c":()=>t.e(18).then(t.bind(null,383)),"v-0394e880":()=>t.e(19).then(t.bind(null,384)),"v-013a9917":()=>t.e(20).then(t.bind(null,385)),"v-563388f8":()=>t.e(21).then(t.bind(null,386)),"v-78c455d8":()=>t.e(22).then(t.bind(null,387)),"v-01fd51c3":()=>t.e(23).then(t.bind(null,388)),"v-766eb953":()=>t.e(24).then(t.bind(null,389)),"v-790ba86c":()=>t.e(25).then(t.bind(null,390)),"v-46e46358":()=>t.e(26).then(t.bind(null,391)),"v-f5106e98":()=>t.e(27).then(t.bind(null,392)),"v-f3ace090":()=>t.e(28).then(t.bind(null,393)),"v-34facd3a":()=>t.e(29).then(t.bind(null,394)),"v-dd816e18":()=>t.e(5).then(t.bind(null,395)),"v-f411a3fa":()=>t.e(30).then(t.bind(null,396)),"v-e1195b60":()=>t.e(31).then(t.bind(null,397)),"v-3960e9f4":()=>t.e(32).then(t.bind(null,398)),"v-5a945f7a":()=>t.e(33).then(t.bind(null,399)),"v-8f390972":()=>t.e(34).then(t.bind(null,400)),"v-c54ce8dc":()=>t.e(35).then(t.bind(null,401)),"v-6f41e9e0":()=>t.e(36).then(t.bind(null,402)),"v-4624c390":()=>t.e(37).then(t.bind(null,403)),"v-48315f2d":()=>t.e(38).then(t.bind(null,404)),"v-555f4f17":()=>t.e(39).then(t.bind(null,405)),"v-8fd8c9ac":()=>t.e(40).then(t.bind(null,406)),"v-cd2e75fa":()=>Promise.all([t.e(0),t.e(6)]).then(t.bind(null,407))};function Za(e){const n=Object.create(null);return function(t){return n[t]||(n[t]=e(t))}}const Ya=/-(\w)/g,Xa=Za(e=>e.replace(Ya,(e,n)=>n?n.toUpperCase():"")),Ja=/\B([A-Z])/g,Qa=Za(e=>e.replace(Ja,"-$1").toLowerCase()),es=Za(e=>e.charAt(0).toUpperCase()+e.slice(1));function ns(e,n){if(!n)return;if(e(n))return e(n);return n.includes("-")?e(es(Xa(n))):e(es(n))||e(Qa(n))}const ts=Object.assign({},Wa,Ka),rs=e=>ts[e],os=e=>Ka[e],is=e=>Wa[e],as=e=>Wt.component(e);function ss(e){return ns(os,e)}function cs(e){return ns(is,e)}function ls(e){return ns(rs,e)}function us(e){return ns(as,e)}function ps(...e){return Promise.all(e.filter(e=>e).map(async e=>{if(!us(e)&&ls(e)){const n=await ls(e)();Wt.component(e,n.default)}}))}function ds(e,n){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[e]=n)}var fs=t(118),hs=t.n(fs),vs=t(119),ms=t.n(vs),gs={created(){if(this.siteMeta=this.$site.headTags.filter(([e])=>"meta"===e).map(([e,n])=>n),this.$ssrContext){const n=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(e=n)?e.map(e=>{let n="<meta";return Object.keys(e).forEach(t=>{n+=` ${t}="${ms()(e[t])}"`}),n+">"}).join("\n "):"",this.$ssrContext.canonicalLink=bs(this.$canonicalUrl)}var e},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const e=this.getMergedMetaTags();this.currentMetaTags=xs(e,this.currentMetaTags)},getMergedMetaTags(){const e=this.$page.frontmatter.meta||[];return hs()([{name:"description",content:this.$description}],e,this.siteMeta,_s)},updateCanonicalLink(){ys(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",bs(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){xs(null,this.currentMetaTags),ys()}};function ys(){const e=document.querySelector("link[rel='canonical']");e&&e.remove()}function bs(e=""){return e?`<link href="${e}" rel="canonical" />`:""}function xs(e,n){if(n&&[...n].filter(e=>e.parentNode===document.head).forEach(e=>document.head.removeChild(e)),e)return e.map(e=>{const n=document.createElement("meta");return Object.keys(e).forEach(t=>{n.setAttribute(t,e[t])}),document.head.appendChild(n),n})}function _s(e){for(const n of["name","property","itemprop"])if(e.hasOwnProperty(n))return e[n]+n;return JSON.stringify(e)}t(64);var ws=t(68),Es={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:t.n(ws)()((function(){this.setActiveHash()}),300),setActiveHash(){const e=[].slice.call(document.querySelectorAll(".sidebar-link")),n=[].slice.call(document.querySelectorAll(".header-anchor")).filter(n=>e.some(e=>e.hash===n.hash)),t=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),r=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),o=window.innerHeight+t;for(let e=0;e<n.length;e++){const i=n[e],a=n[e+1],s=0===e&&0===t||t>=i.parentElement.offsetTop+10&&(!a||t<a.parentElement.offsetTop-10),c=decodeURIComponent(this.$route.hash);if(s&&c!==decodeURIComponent(i.hash)){const t=i;if(o===r)for(let t=e+1;t<n.length;t++)if(c===decodeURIComponent(n[t].hash))return;return this.$vuepress.$set("disableScrollBehavior",!0),void this.$router.replace(decodeURIComponent(t.hash),()=>{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},ks=t(43),Ts=t.n(ks),Cs={mounted(){Ts.a.configure({showSpinner:!1}),this.$router.beforeEach((e,n,t)=>{e.path===n.path||Wt.component(e.name)||Ts.a.start(),t()}),this.$router.afterEach(()=>{Ts.a.done(),this.isSidebarOpen=!1})}};t(276),t(277);class js{constructor(){this.containerEl=document.getElementById("message-container"),this.containerEl||(this.containerEl=document.createElement("div"),this.containerEl.id="message-container",document.body.appendChild(this.containerEl))}show({text:e="",duration:n=3e3}){let t=document.createElement("div");t.className="message move-in",t.innerHTML=`\n <i style="fill: #06a35a;font-size: 14px;display:inline-flex;align-items: center;">\n <svg style="fill: #06a35a;font-size: 14px;" t="1572421810237" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2323" width="16" height="16"><path d="M822.811993 824.617989c-83.075838 81.99224-188.546032 124.613757-316.049383 127.86455-122.085362-3.250794-223.943563-45.87231-305.935802-127.86455s-124.613757-184.21164-127.86455-305.935802c3.250794-127.503351 45.87231-232.973545 127.86455-316.049383 81.99224-83.075838 184.21164-126.058554 305.935802-129.309347 127.503351 3.250794 232.973545 46.23351 316.049383 129.309347 83.075838 83.075838 126.058554 188.546032 129.309347 316.049383C949.231746 640.406349 905.887831 742.62575 822.811993 824.617989zM432.716755 684.111464c3.973192 3.973192 8.307584 5.779189 13.364374 6.140388 5.05679 0.361199 9.752381-1.444797 13.364374-5.417989l292.571429-287.514638c3.973192-3.973192 5.779189-8.307584 5.779189-13.364374 0-5.05679-1.805996-9.752381-5.779189-13.364374l1.805996 1.805996c-3.973192-3.973192-8.668783-5.779189-14.086772-6.140388-5.417989-0.361199-10.47478 1.444797-14.809171 5.417989l-264.397884 220.33157c-3.973192 3.250794-8.668783 4.695591-14.447972 4.695591-5.779189 0-10.835979-1.444797-15.53157-3.973192l-94.273016-72.962257c-4.334392-3.250794-9.391182-4.334392-14.447972-3.973192s-9.391182 3.250794-12.641975 7.585185l-2.889594 3.973192c-3.250794 4.334392-4.334392 9.391182-3.973192 14.809171 0.722399 5.417989 2.528395 10.11358 5.779189 14.086772L432.716755 684.111464z" p-id="2324"></path></svg>\n </i>\n <div class="text">${e}</div>\n `,this.containerEl.appendChild(t),n>0&&setTimeout(()=>{this.close(t)},n)}close(e){e.className=e.className.replace("move-in",""),e.className+="move-out",e.addEventListener("animationend",()=>{e.remove()})}}var Ss={mounted(){!!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||this.updateCopy()},updated(){!!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||this.updateCopy()},methods:{updateCopy(){setTimeout(()=>{(['div[class*="language-"] pre','div[class*="aside-code"] aside']instanceof Array||Array.isArray(['div[class*="language-"] pre','div[class*="aside-code"] aside']))&&['div[class*="language-"] pre','div[class*="aside-code"] aside'].forEach(e=>{document.querySelectorAll(e).forEach(this.generateCopyButton)})},1e3)},generateCopyButton(e){if(e.classList.contains("codecopy-enabled"))return;const n=document.createElement("i");n.className="code-copy",n.innerHTML='<svg style="color:#aaa;font-size:14px" t="1572422231464" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3201" width="14" height="14"><path d="M866.461538 39.384615H354.461538c-43.323077 0-78.769231 35.446154-78.76923 78.769231v39.384616h472.615384c43.323077 0 78.769231 35.446154 78.769231 78.76923v551.384616h39.384615c43.323077 0 78.769231-35.446154 78.769231-78.769231V118.153846c0-43.323077-35.446154-78.769231-78.769231-78.769231z m-118.153846 275.692308c0-43.323077-35.446154-78.769231-78.76923-78.769231H157.538462c-43.323077 0-78.769231 35.446154-78.769231 78.769231v590.769231c0 43.323077 35.446154 78.769231 78.769231 78.769231h512c43.323077 0 78.769231-35.446154 78.76923-78.769231V315.076923z m-354.461538 137.846154c0 11.815385-7.876923 19.692308-19.692308 19.692308h-157.538461c-11.815385 0-19.692308-7.876923-19.692308-19.692308v-39.384615c0-11.815385 7.876923-19.692308 19.692308-19.692308h157.538461c11.815385 0 19.692308 7.876923 19.692308 19.692308v39.384615z m157.538461 315.076923c0 11.815385-7.876923 19.692308-19.692307 19.692308H216.615385c-11.815385 0-19.692308-7.876923-19.692308-19.692308v-39.384615c0-11.815385 7.876923-19.692308 19.692308-19.692308h315.076923c11.815385 0 19.692308 7.876923 19.692307 19.692308v39.384615z m78.769231-157.538462c0 11.815385-7.876923 19.692308-19.692308 19.692308H216.615385c-11.815385 0-19.692308-7.876923-19.692308-19.692308v-39.384615c0-11.815385 7.876923-19.692308 19.692308-19.692308h393.846153c11.815385 0 19.692308 7.876923 19.692308 19.692308v39.384615z" p-id="3202"></path></svg>',n.title="Copy to clipboard",n.addEventListener("click",()=>{this.copyToClipboard(e.innerText)}),e.appendChild(n),e.classList.add("codecopy-enabled")},copyToClipboard(e){const n=document.createElement("textarea");n.value=e,n.setAttribute("readonly",""),n.style.position="absolute",n.style.left="-9999px",document.body.appendChild(n);const t=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);n.select(),document.execCommand("copy");(new js).show({text:"复制成功",duration:1e3}),document.body.removeChild(n),t&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(t))}}};!function(e,n){void 0===n&&(n={});var t=n.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===t&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}("@media (max-width: 1000px) {\n .vuepress-plugin-demo-block__h_code {\n display: none;\n }\n .vuepress-plugin-demo-block__app {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n}\n.vuepress-plugin-demo-block__wrapper {\n margin-top: 10px;\n border: 1px solid #ebebeb;\n border-radius: 4px;\n transition: all 0.2s;\n}\n.vuepress-plugin-demo-block__wrapper.vuepress-plugin-demo-block__horizontal .vuepress-plugin-demo-block__display {\n height: 400px;\n display: flex;\n}\n.vuepress-plugin-demo-block__wrapper.vuepress-plugin-demo-block__horizontal .vuepress-plugin-demo-block__display .vuepress-plugin-demo-block__app {\n width: 300px;\n border: 1px solid #ebebeb;\n box-shadow: 1px 1px 3px #ebebeb;\n margin-right: 5px;\n overflow: auto;\n}\n.vuepress-plugin-demo-block__wrapper.vuepress-plugin-demo-block__horizontal .vuepress-plugin-demo-block__display .vuepress-plugin-demo-block__h_code {\n flex: 1;\n overflow: auto;\n height: 100%;\n}\n.vuepress-plugin-demo-block__wrapper.vuepress-plugin-demo-block__horizontal .vuepress-plugin-demo-block__display .vuepress-plugin-demo-block__h_code > pre {\n overflow: visible;\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__display {\n max-height: 400px;\n overflow: auto;\n}\n.vuepress-plugin-demo-block__wrapper div {\n box-sizing: border-box;\n}\n.vuepress-plugin-demo-block__wrapper:hover {\n box-shadow: 0 0 11px rgba(33, 33, 33, 0.2);\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__code {\n overflow: hidden;\n height: 0;\n padding: 0 !important;\n background-color: #282c34;\n border-radius: 0 !important;\n transition: height 0.5s;\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__code pre {\n margin: 0 !important;\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__display {\n padding: 20px;\n border-bottom: 1px solid #ebebeb;\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer {\n position: relative;\n text-align: center;\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer.vuepress-plugin-demo-block__show-link .vuepress-plugin-demo-block__jsfiddle,\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer.vuepress-plugin-demo-block__show-link .vuepress-plugin-demo-block__codepen {\n opacity: 1;\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer.vuepress-plugin-demo-block__show-link .vuepress-plugin-demo-block__expand::before {\n border-top: none;\n border-right: 6px solid transparent;\n border-bottom: 6px solid #ccc;\n border-left: 6px solid transparent;\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer:hover .vuepress-plugin-demo-block__jsfiddle,\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer:hover .vuepress-plugin-demo-block__codepen,\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer:hover .vuepress-plugin-demo-block__expand span,\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer:hover .vuepress-plugin-demo-block__expand {\n opacity: 1;\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer:hover .vuepress-plugin-demo-block__expand::before {\n border-top-color: #3eaf7c !important;\n border-bottom-color: #3eaf7c !important;\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer:hover svg {\n fill: #3eaf7c !important;\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer .vuepress-plugin-demo-block__expand-text {\n transition: all 0.5s;\n opacity: 0;\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer form:nth-last-child(2) {\n right: 50px;\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer form:last-child {\n right: 10px;\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer .vuepress-plugin-demo-block__button {\n border-color: transparent;\n background-color: transparent;\n font-size: 14px;\n color: #3eaf7c;\n cursor: pointer;\n outline: none;\n margin: 0;\n width: 46px;\n position: relative;\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer .vuepress-plugin-demo-block__button:hover::before {\n content: attr(data-tip);\n white-space: nowrap;\n position: absolute;\n top: -30px;\n left: 50%;\n color: #eee;\n line-height: 1;\n z-index: 1000;\n border-radius: 4px;\n padding: 6px;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n background-color: rgba(0, 0, 0, 0.8);\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer .vuepress-plugin-demo-block__button:hover::after {\n content: '' !important;\n display: block;\n position: absolute;\n left: 50%;\n top: -5px;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n border: 5px solid transparent;\n border-top-color: rgba(0, 0, 0, 0.8);\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer .vuepress-plugin-demo-block__button svg {\n width: 34px;\n height: 20px;\n fill: #ccc;\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer .vuepress-plugin-demo-block__jsfiddle,\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer .vuepress-plugin-demo-block__codepen {\n position: absolute;\n top: 10px;\n transition: all 0.5s;\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer .vuepress-plugin-demo-block__expand {\n position: relative;\n width: 100px;\n height: 40px;\n margin: 0;\n color: #3eaf7c;\n font-size: 14px;\n background-color: transparent;\n border-color: transparent;\n outline: none;\n transition: all 0.5s;\n cursor: pointer;\n}\n.vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer .vuepress-plugin-demo-block__expand::before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 0;\n height: 0;\n border-top: 6px solid #ccc;\n border-right: 6px solid transparent;\n border-left: 6px solid transparent;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n}\n");var As={jsLib:[],cssLib:[],jsfiddle:!0,codepen:!0,codepenLayout:"left",codepenJsProcessor:"babel",codepenEditors:"101",horizontal:!1,vue:"https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js",react:"https://cdn.jsdelivr.net/npm/react/umd/react.production.min.js",reactDOM:"https://cdn.jsdelivr.net/npm/react-dom/umd/react-dom.production.min.js"},Os={},Ps=function(e){return'<div id="app">\n'.concat(e,"\n</div>")},$s=function(e){return window.$VUEPRESS_DEMO_BLOCK&&void 0!==window.$VUEPRESS_DEMO_BLOCK[e]?window.$VUEPRESS_DEMO_BLOCK[e]:As[e]},Bs=function e(n,t,r){var o=document.createElement(n);return t&&Object.keys(t).forEach((function(e){if(e.indexOf("data"))o[e]=t[e];else{var n=e.replace("data","");o.dataset[n]=t[e]}})),r&&r.forEach((function(n){var t=n.tag,r=n.attrs,i=n.children;o.appendChild(e(t,r,i))})),o},Is=function(e,n,t){var r,o=(r=e.querySelectorAll(".".concat(n)),Array.prototype.slice.call(r));return 1!==o.length||t?o:o[0]},Ls=function(e,n){var t,r,o=e.match(/<style>([\s\S]+)<\/style>/),i=e.match(/<template>([\s\S]+)<\/template>/),a=e.match(/<script>([\s\S]+)<\/script>/),s={css:o&&o[1].replace(/^\n|\n$/g,""),html:i&&i[1].replace(/^\n|\n$/g,""),js:a&&a[1].replace(/^\n|\n$/g,""),jsLib:n.jsLib||[],cssLib:n.cssLib||[]};s.htmlTpl=Ps(s.html),s.jsTpl=(t=s.js,r=t.replace(/export\s+default\s*?\{\n*/,"").replace(/\n*\}\s*$/,"").trim(),"new Vue({\n el: '#app',\n ".concat(r,"\n})")),s.script=function(e,n){var t=e.split(/export\s+default/),r="(function() {".concat(t[0]," ; return ").concat(t[1],"})()"),o=window.Babel?window.Babel.transform(r,{presets:["es2015"]}).code:r,i=[eval][0](o);return i.template=n,i}(s.js,s.html);var c=$s("vue");return s.jsLib.unshift(c),s},zs=function(e,n){var t,r=e.match(/<style>([\s\S]+)<\/style>/),o=e.match(/<html>([\s\S]+)<\/html>/),i=e.match(/<script>([\s\S]+)<\/script>/),a={css:r&&r[1].replace(/^\n|\n$/g,""),html:o&&o[1].replace(/^\n|\n$/g,""),js:i&&i[1].replace(/^\n|\n$/g,""),jsLib:n.jsLib||[],cssLib:n.cssLib||[]};return a.htmlTpl=a.html,a.jsTpl=a.js,a.script=(t=a.js,window.Babel?window.Babel.transform(t,{presets:["es2015"]}).code:t),a},Ds=function(e){return e=e.replace("export default ","").replace(/App\.__style__(\s*)=(\s*)`([\s\S]*)?`/,""),e+='ReactDOM.render(React.createElement(App), document.getElementById("app"))'};function Rs(){var e=Is(document,"vuepress-plugin-demo-block__wrapper",!0);e.length?e.forEach((function(e){if("true"!==e.dataset.created){e.style.display="block";var n=Is(e,"vuepress-plugin-demo-block__code"),t=Is(e,"vuepress-plugin-demo-block__display"),r=Is(e,"vuepress-plugin-demo-block__footer"),o=Is(t,"vuepress-plugin-demo-block__app"),i=decodeURIComponent(e.dataset.code),a=decodeURIComponent(e.dataset.config),s=decodeURIComponent(e.dataset.type);a=a?JSON.parse(a):{};var c=n.querySelector("div").clientHeight,l="react"===s?function(e,n){var t=(0,window.Babel.transform)(e,{presets:["es2015","react"]}).code,r="(function(exports){var module={};module.exports=exports;".concat(t,";return module.exports.__esModule?module.exports.default:module.exports;})({})"),o=new Function("return ".concat(r))(),i={js:o,css:o.__style__||"",jsLib:n.jsLib||[],cssLib:n.cssLib||[],jsTpl:Ds(e),htmlTpl:Ps("")},a=$s("react"),s=$s("reactDOM");return i.jsLib.unshift(a,s),i}(i,a):"vanilla"===s?zs(i,a):Ls(i,a),u=Bs("button",{className:"".concat("vuepress-plugin-demo-block__expand")});if(r.appendChild(u),u.addEventListener("click",Us.bind(null,u,c,n,r)),$s("jsfiddle")&&r.appendChild(function(e){var n=e.css,t=e.htmlTpl,r=e.jsTpl,o=e.jsLib,i=e.cssLib,a=o.concat(i).concat($s("cssLib")).concat($s("jsLib")).join(",");return Bs("form",{className:"vuepress-plugin-demo-block__jsfiddle",target:"_blank",action:"https://jsfiddle.net/api/post/library/pure/",method:"post"},[{tag:"input",attrs:{type:"hidden",name:"css",value:n}},{tag:"input",attrs:{type:"hidden",name:"html",value:t}},{tag:"input",attrs:{type:"hidden",name:"js",value:r}},{tag:"input",attrs:{type:"hidden",name:"panel_js",value:3}},{tag:"input",attrs:{type:"hidden",name:"wrap",value:1}},{tag:"input",attrs:{type:"hidden",name:"resources",value:a}},{tag:"button",attrs:{type:"submit",className:"vuepress-plugin-demo-block__button",innerHTML:'<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1547088289967" class="icon" style="" viewBox="0 0 1170 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1952" xmlns:xlink="http://www.w3.org/1999/xlink" width="228.515625" height="200"><defs><style type="text/css"></style></defs><path d="M1028.571429 441.142857q63.428571 26.285714 102.571428 83.142857T1170.285714 650.857143q0 93.714286-67.428571 160.285714T940 877.714286q-2.285714 0-6.571429-0.285715t-6-0.285714H232q-97.142857-5.714286-164.571429-71.714286T0 645.142857q0-62.857143 31.428571-116t84-84q-6.857143-22.285714-6.857142-46.857143 0-65.714286 46.857142-112t113.714286-46.285714q54.285714 0 98.285714 33.142857 42.857143-88 127.142858-141.714286t186.571428-53.714285q94.857143 0 174.857143 46T982.571429 248.571429t46.571428 172q0 3.428571-0.285714 10.285714t-0.285714 10.285714zM267.428571 593.142857q0 69.714286 48 110.285714t118.857143 40.571429q78.285714 0 137.142857-56.571429-9.142857-11.428571-27.142857-32.285714T519.428571 626.285714q-38.285714 37.142857-82.285714 37.142857-31.428571 0-53.428571-19.142857T361.714286 594.285714q0-30.285714 22-49.714285t52.285714-19.428572q25.142857 0 48.285714 12t41.714286 31.428572 37.142857 42.857142 39.428572 46.857143 44 42.857143 55.428571 31.428572 69.428571 12q69.142857 0 116.857143-40.857143T936 594.857143q0-69.142857-48-109.714286t-118.285714-40.571428q-81.714286 0-137.714286 55.428571l53.142857 61.714286q37.714286-36.571429 81.142857-36.571429 29.714286 0 52.571429 18.857143t22.857143 48q0 32.571429-21.142857 52.285714t-53.714286 19.714286q-24.571429 0-47.142857-12t-41.142857-31.428571-37.428572-42.857143-39.714286-46.857143-44.285714-42.857143-55.142857-31.428571T434.285714 444.571429q-69.714286 0-118.285714 40.285714T267.428571 593.142857z" p-id="1953"></path></svg>',datatip:"JSFiddle"}}])}(l)),$s("codepen")&&r.appendChild(function(e){var n=e.css,t=e.htmlTpl,r=e.jsTpl,o=e.jsLib,i=e.cssLib,a=JSON.stringify({css:n,html:t,js:r,js_external:o.concat($s("jsLib")).join(";"),css_external:i.concat($s("cssLib")).join(";"),layout:$s("codepenLayout"),js_pre_processor:$s("codepenJsProcessor"),editors:$s("codepenEditors")});return Bs("form",{className:"vuepress-plugin-demo-block__codepen",target:"_blank",action:"https://codepen.io/pen/define",method:"post"},[{tag:"input",attrs:{type:"hidden",name:"data",value:a}},{tag:"button",attrs:{type:"submit",innerHTML:'<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1547088271207" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1737" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M123.428571 668l344.571429 229.714286v-205.142857L277.142857 565.142857z m-35.428571-82.285714l110.285714-73.714286-110.285714-73.714286v147.428572z m468 312l344.571429-229.714286-153.714286-102.857143-190.857143 127.428572v205.142857z m-44-281.714286l155.428571-104-155.428571-104-155.428571 104zM277.142857 458.857143l190.857143-127.428572V126.285714L123.428571 356z m548.571429 53.142857l110.285714 73.714286V438.285714z m-78.857143-53.142857l153.714286-102.857143-344.571429-229.714286v205.142857z m277.142857-102.857143v312q0 23.428571-19.428571 36.571429l-468 312q-12 7.428571-24.571429 7.428571t-24.571429-7.428571L19.428571 704.571429q-19.428571-13.142857-19.428571-36.571429V356q0-23.428571 19.428571-36.571429L487.428571 7.428571q12-7.428571 24.571429-7.428571t24.571429 7.428571l468 312q19.428571 13.142857 19.428571 36.571429z" p-id="1738"></path></svg>',className:"vuepress-plugin-demo-block__button",datatip:"Codepen"}}])}(l)),void 0!==a.horizontal?a.horizontal:$s("horizontal")){e.classList.add("vuepress-plugin-demo-block__horizontal");var p=n.firstChild.cloneNode(!0);p.classList.add("vuepress-plugin-demo-block__h_code"),t.appendChild(p)}if(l.css&&function(e){if(!Os[e]){var n=Bs("style",{innerHTML:e});document.body.appendChild(n),Os[e]=!0}}(l.css),"react"===s)ReactDOM.render(React.createElement(l.js),o);else if("vue"===s){var d=(new(Vue.extend(l.script))).$mount();o.appendChild(d.$el)}else"vanilla"===s&&(o.innerHTML=l.html,new Function("return (function(){".concat(l.script,"})()"))());e.dataset.created="true"}})):setTimeout((function(e){Rs()}),300)}function Us(e,n,t,r){var o="1"!==e.dataset.isExpand;t.style.height=o?"".concat(n,"px"):0,o?r.classList.add("vuepress-plugin-demo-block__show-link"):r.classList.remove("vuepress-plugin-demo-block__show-link"),e.dataset.isExpand=o?"1":"0"}var Ms={mounted:function(){window.$VUEPRESS_DEMO_BLOCK={jsfiddle:!1,codepen:!0,horizontal:!1},Rs()},updated:function(){Rs()}},Fs="auto",Ns="zoom-in",qs="zoom-out",Hs="grab",Vs="move";function Gs(e,n,t){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o={passive:!1};r?e.addEventListener(n,t,o):e.removeEventListener(n,t,o)}function Ws(e,n){if(e){var t=new Image;t.onload=function(){n&&n(t)},t.src=e}}function Ks(e){return e.dataset.original?e.dataset.original:"A"===e.parentNode.tagName?e.parentNode.getAttribute("href"):null}function Zs(e,n,t){!function(e){var n=Ys,t=Xs;if(e.transition){var r=e.transition;delete e.transition,e[n]=r}if(e.transform){var o=e.transform;delete e.transform,e[t]=o}}(n);var r=e.style,o={};for(var i in n)t&&(o[i]=r[i]||""),r[i]=n[i];return o}var Ys="transition",Xs="transform",Js="transform",Qs="transitionend";var ec=function(){},nc={enableGrab:!0,preloadImage:!1,closeOnWindowResize:!0,transitionDuration:.4,transitionTimingFunction:"cubic-bezier(0.4, 0, 0, 1)",bgColor:"rgb(255, 255, 255)",bgOpacity:1,scaleBase:1,scaleExtra:.5,scrollThreshold:40,zIndex:998,customSize:null,onOpen:ec,onClose:ec,onGrab:ec,onMove:ec,onRelease:ec,onBeforeOpen:ec,onBeforeClose:ec,onBeforeGrab:ec,onBeforeRelease:ec,onImageLoading:ec,onImageLoaded:ec},tc={init:function(e){var n,t;n=this,t=e,Object.getOwnPropertyNames(Object.getPrototypeOf(n)).forEach((function(e){n[e]=n[e].bind(t)}))},click:function(e){if(e.preventDefault(),oc(e))return window.open(this.target.srcOriginal||e.currentTarget.src,"_blank");this.shown?this.released?this.close():this.release():this.open(e.currentTarget)},scroll:function(){var e=document.documentElement||document.body.parentNode||document.body,n=window.pageXOffset||e.scrollLeft,t=window.pageYOffset||e.scrollTop;null===this.lastScrollPosition&&(this.lastScrollPosition={x:n,y:t});var r=this.lastScrollPosition.x-n,o=this.lastScrollPosition.y-t,i=this.options.scrollThreshold;(Math.abs(o)>=i||Math.abs(r)>=i)&&(this.lastScrollPosition=null,this.close())},keydown:function(e){(function(e){return"Escape"===(e.key||e.code)||27===e.keyCode})(e)&&(this.released?this.close():this.release(this.close))},mousedown:function(e){if(rc(e)&&!oc(e)){e.preventDefault();var n=e.clientX,t=e.clientY;this.pressTimer=setTimeout(function(){this.grab(n,t)}.bind(this),200)}},mousemove:function(e){this.released||this.move(e.clientX,e.clientY)},mouseup:function(e){rc(e)&&!oc(e)&&(clearTimeout(this.pressTimer),this.released?this.close():this.release())},touchstart:function(e){e.preventDefault();var n=e.touches[0],t=n.clientX,r=n.clientY;this.pressTimer=setTimeout(function(){this.grab(t,r)}.bind(this),200)},touchmove:function(e){if(!this.released){var n=e.touches[0],t=n.clientX,r=n.clientY;this.move(t,r)}},touchend:function(e){(function(e){e.targetTouches.length})(e)||(clearTimeout(this.pressTimer),this.released?this.close():this.release())},clickOverlay:function(){this.close()},resizeWindow:function(){this.close()}};function rc(e){return 0===e.button}function oc(e){return e.metaKey||e.ctrlKey}var ic={init:function(e){this.el=document.createElement("div"),this.instance=e,this.parent=document.body,Zs(this.el,{position:"fixed",top:0,left:0,right:0,bottom:0,opacity:0}),this.updateStyle(e.options),Gs(this.el,"click",e.handler.clickOverlay.bind(e))},updateStyle:function(e){Zs(this.el,{zIndex:e.zIndex,backgroundColor:e.bgColor,transition:"opacity\n "+e.transitionDuration+"s\n "+e.transitionTimingFunction})},insert:function(){this.parent.appendChild(this.el)},remove:function(){this.parent.removeChild(this.el)},fadeIn:function(){this.el.offsetWidth,this.el.style.opacity=this.instance.options.bgOpacity},fadeOut:function(){this.el.style.opacity=0}},ac="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},sc=function(){function e(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(n,t,r){return t&&e(n.prototype,t),r&&e(n,r),n}}(),cc=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},lc={init:function(e,n){this.el=e,this.instance=n,this.srcThumbnail=this.el.getAttribute("src"),this.srcset=this.el.getAttribute("srcset"),this.srcOriginal=Ks(this.el),this.rect=this.el.getBoundingClientRect(),this.translate=null,this.scale=null,this.styleOpen=null,this.styleClose=null},zoomIn:function(){var e=this.instance.options,n=e.zIndex,t=e.enableGrab,r=e.transitionDuration,o=e.transitionTimingFunction;this.translate=this.calculateTranslate(),this.scale=this.calculateScale(),this.styleOpen={position:"relative",zIndex:n+1,cursor:t?Hs:qs,transition:Js+"\n "+r+"s\n "+o,transform:"translate3d("+this.translate.x+"px, "+this.translate.y+"px, 0px)\n scale("+this.scale.x+","+this.scale.y+")",height:this.rect.height+"px",width:this.rect.width+"px"},this.el.offsetWidth,this.styleClose=Zs(this.el,this.styleOpen,!0)},zoomOut:function(){this.el.offsetWidth,Zs(this.el,{transform:"none"})},grab:function(e,n,t){var r=uc(),o=r.x-e,i=r.y-n;Zs(this.el,{cursor:Vs,transform:"translate3d(\n "+(this.translate.x+o)+"px, "+(this.translate.y+i)+"px, 0px)\n scale("+(this.scale.x+t)+","+(this.scale.y+t)+")"})},move:function(e,n,t){var r=uc(),o=r.x-e,i=r.y-n;Zs(this.el,{transition:Js,transform:"translate3d(\n "+(this.translate.x+o)+"px, "+(this.translate.y+i)+"px, 0px)\n scale("+(this.scale.x+t)+","+(this.scale.y+t)+")"})},restoreCloseStyle:function(){Zs(this.el,this.styleClose)},restoreOpenStyle:function(){Zs(this.el,this.styleOpen)},upgradeSource:function(){if(this.srcOriginal){var e=this.el.parentNode;this.srcset&&this.el.removeAttribute("srcset");var n=this.el.cloneNode(!1);n.setAttribute("src",this.srcOriginal),n.style.position="fixed",n.style.visibility="hidden",e.appendChild(n),setTimeout(function(){this.el.setAttribute("src",this.srcOriginal),e.removeChild(n)}.bind(this),50)}},downgradeSource:function(){this.srcOriginal&&(this.srcset&&this.el.setAttribute("srcset",this.srcset),this.el.setAttribute("src",this.srcThumbnail))},calculateTranslate:function(){var e=uc(),n=this.rect.left+this.rect.width/2,t=this.rect.top+this.rect.height/2;return{x:e.x-n,y:e.y-t}},calculateScale:function(){var e=this.el.dataset,n=e.zoomingHeight,t=e.zoomingWidth,r=this.instance.options,o=r.customSize,i=r.scaleBase;if(!o&&n&&t)return{x:t/this.rect.width,y:n/this.rect.height};if(o&&"object"===(void 0===o?"undefined":ac(o)))return{x:o.width/this.rect.width,y:o.height/this.rect.height};var a=this.rect.width/2,s=this.rect.height/2,c=uc(),l={x:c.x-a,y:c.y-s},u=l.x/a,p=l.y/s,d=i+Math.min(u,p);if(o&&"string"==typeof o){var f=t||this.el.naturalWidth,h=n||this.el.naturalHeight,v=parseFloat(o)*f/(100*this.rect.width),m=parseFloat(o)*h/(100*this.rect.height);if(d>v||d>m)return{x:v,y:m}}return{x:d,y:d}}};function uc(){var e=document.documentElement;return{x:Math.min(e.clientWidth,window.innerWidth)/2,y:Math.min(e.clientHeight,window.innerHeight)/2}}function pc(e,n,t){["mousedown","mousemove","mouseup","touchstart","touchmove","touchend"].forEach((function(r){Gs(e,r,n[r],t)}))}var dc=function(){function e(n){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.target=Object.create(lc),this.overlay=Object.create(ic),this.handler=Object.create(tc),this.body=document.body,this.shown=!1,this.lock=!1,this.released=!0,this.lastScrollPosition=null,this.pressTimer=null,this.options=cc({},nc,n),this.overlay.init(this),this.handler.init(this)}return sc(e,[{key:"listen",value:function(e){if("string"==typeof e)for(var n=document.querySelectorAll(e),t=n.length;t--;)this.listen(n[t]);else"IMG"===e.tagName&&(e.style.cursor=Ns,Gs(e,"click",this.handler.click),this.options.preloadImage&&Ws(Ks(e)));return this}},{key:"config",value:function(e){return e?(cc(this.options,e),this.overlay.updateStyle(this.options),this):this.options}},{key:"open",value:function(e){var n=this,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.onOpen;if(!this.shown&&!this.lock){var r="string"==typeof e?document.querySelector(e):e;if("IMG"===r.tagName){if(this.options.onBeforeOpen(r),this.target.init(r,this),!this.options.preloadImage){var o=this.target.srcOriginal;null!=o&&(this.options.onImageLoading(r),Ws(o,this.options.onImageLoaded))}this.shown=!0,this.lock=!0,this.target.zoomIn(),this.overlay.insert(),this.overlay.fadeIn(),Gs(document,"scroll",this.handler.scroll),Gs(document,"keydown",this.handler.keydown),this.options.closeOnWindowResize&&Gs(window,"resize",this.handler.resizeWindow);var i=function e(){Gs(r,Qs,e,!1),n.lock=!1,n.target.upgradeSource(),n.options.enableGrab&&pc(document,n.handler,!0),t(r)};return Gs(r,Qs,i),this}}}},{key:"close",value:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.onClose;if(this.shown&&!this.lock){var t=this.target.el;this.options.onBeforeClose(t),this.lock=!0,this.body.style.cursor=Fs,this.overlay.fadeOut(),this.target.zoomOut(),Gs(document,"scroll",this.handler.scroll,!1),Gs(document,"keydown",this.handler.keydown,!1),this.options.closeOnWindowResize&&Gs(window,"resize",this.handler.resizeWindow,!1);var r=function r(){Gs(t,Qs,r,!1),e.shown=!1,e.lock=!1,e.target.downgradeSource(),e.options.enableGrab&&pc(document,e.handler,!1),e.target.restoreCloseStyle(),e.overlay.remove(),n(t)};return Gs(t,Qs,r),this}}},{key:"grab",value:function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.options.scaleExtra,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.options.onGrab;if(this.shown&&!this.lock){var o=this.target.el;this.options.onBeforeGrab(o),this.released=!1,this.target.grab(e,n,t);var i=function e(){Gs(o,Qs,e,!1),r(o)};return Gs(o,Qs,i),this}}},{key:"move",value:function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.options.scaleExtra,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.options.onMove;if(this.shown&&!this.lock){this.released=!1,this.body.style.cursor=Vs,this.target.move(e,n,t);var o=this.target.el,i=function e(){Gs(o,Qs,e,!1),r(o)};return Gs(o,Qs,i),this}}},{key:"release",value:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.onRelease;if(this.shown&&!this.lock){var t=this.target.el;this.options.onBeforeRelease(t),this.lock=!0,this.body.style.cursor=Fs,this.target.restoreOpenStyle();var r=function r(){Gs(t,Qs,r,!1),e.lock=!1,e.released=!0,n(t)};return Gs(t,Qs,r),this}}}]),e}();const fc=JSON.parse('{"bgColor":"rgba(0,0,0,0.6)"}'),hc=Number("500");class vc{constructor(){this.instance=new dc(fc)}update(e=".theme-vdoing-content img:not(.no-zoom)"){"undefined"!=typeof window&&this.instance.listen(e)}updateDelay(e=".theme-vdoing-content img:not(.no-zoom)",n=hc){setTimeout(()=>this.update(e),n)}}var mc=[gs,Es,Cs,Ss,Ms,{watch:{"$page.path"(){void 0!==this.$vuepress.zooming&&this.$vuepress.zooming.updateDelay()}},mounted(){this.$vuepress.zooming=new vc,this.$vuepress.zooming.updateDelay()}}],gc={name:"GlobalLayout",computed:{layout(){const e=this.getLayout();return ds("layout",e),Wt.component(e)}},methods:{getLayout(){if(this.$page.path){const e=this.$page.frontmatter.layout;return e&&(this.$vuepress.getLayoutAsyncComponent(e)||this.$vuepress.getVueComponent(e))?e:"Layout"}return"NotFound"}}},yc=t(14),bc=Object(yc.a)(gc,(function(){return(0,this._self._c)(this.layout,{tag:"component"})}),[],!1,null,null,null).exports;!function(e,n,t){switch(n){case"components":e[n]||(e[n]={}),Object.assign(e[n],t);break;case"mixins":e[n]||(e[n]=[]),e[n].push(...t);break;default:throw new Error("Unknown option name.")}}(bc,"mixins",mc);const xc=[{name:"v-6817da1e",path:"/pages/793dcb/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-6817da1e").then(t)}},{path:"/pages/793dcb/index.html",redirect:"/pages/793dcb/"},{path:"/01.使用教程/01.安装部署/01.快速上手.html",redirect:"/pages/793dcb/"},{name:"v-c5ae5baa",path:"/pages/eebea1/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-c5ae5baa").then(t)}},{path:"/pages/eebea1/index.html",redirect:"/pages/eebea1/"},{path:"/01.使用教程/01.安装部署/02.使用jar部署.html",redirect:"/pages/eebea1/"},{name:"v-56935cd5",path:"/pages/5b9bef/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-56935cd5").then(t)}},{path:"/pages/5b9bef/index.html",redirect:"/pages/5b9bef/"},{path:"/01.使用教程/01.安装部署/03.使用docker容器化部署.html",redirect:"/pages/5b9bef/"},{name:"v-1defee03",path:"/pages/69699a/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-1defee03").then(t)}},{path:"/pages/69699a/index.html",redirect:"/pages/69699a/"},{path:"/01.使用教程/01.安装部署/04.原生部署.html",redirect:"/pages/69699a/"},{name:"v-1c826803",path:"/pages/2d4123/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-1c826803").then(t)}},{path:"/pages/2d4123/index.html",redirect:"/pages/2d4123/"},{path:"/01.使用教程/01.安装部署/05.使用docker-compose部署.html",redirect:"/pages/2d4123/"},{name:"v-5d224f7b",path:"/pages/793dcc/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-5d224f7b").then(t)}},{path:"/pages/793dcc/index.html",redirect:"/pages/793dcc/"},{path:"/01.使用教程/02.使用须知/01.管理后台.html",redirect:"/pages/793dcc/"},{name:"v-57a42df1",path:"/pages/68badb/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-57a42df1").then(t)}},{path:"/pages/68badb/index.html",redirect:"/pages/68badb/"},{path:"/01.使用教程/02.使用须知/02.关于端口.html",redirect:"/pages/68badb/"},{name:"v-fb26568e",path:"/pages/269a2e/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-fb26568e").then(t)}},{path:"/pages/269a2e/index.html",redirect:"/pages/269a2e/"},{path:"/01.使用教程/02.使用须知/03.域名映射.html",redirect:"/pages/269a2e/"},{name:"v-45c5d1a5",path:"/pages/99a300/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-45c5d1a5").then(t)}},{path:"/pages/99a300/index.html",redirect:"/pages/99a300/"},{path:"/01.使用教程/02.使用须知/04.HTTPS配置.html",redirect:"/pages/99a300/"},{name:"v-1594f7c7",path:"/pages/f2d0f1/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-1594f7c7").then(t)}},{path:"/pages/f2d0f1/index.html",redirect:"/pages/f2d0f1/"},{path:"/01.使用教程/02.使用须知/05.服务端配置.html",redirect:"/pages/f2d0f1/"},{name:"v-740254eb",path:"/pages/50ce10/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-740254eb").then(t)}},{path:"/pages/50ce10/index.html",redirect:"/pages/50ce10/"},{path:"/01.使用教程/02.使用须知/06.客户端配置.html",redirect:"/pages/50ce10/"},{name:"v-6fc7fd0c",path:"/pages/31d253/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-6fc7fd0c").then(t)}},{path:"/pages/31d253/index.html",redirect:"/pages/31d253/"},{path:"/01.使用教程/99.常见问题/01.客户端连接服务端失败.html",redirect:"/pages/31d253/"},{name:"v-0394e880",path:"/pages/e4c3d7/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-0394e880").then(t)}},{path:"/pages/e4c3d7/index.html",redirect:"/pages/e4c3d7/"},{path:"/01.使用教程/99.常见问题/02.易混淆的2类证书.html",redirect:"/pages/e4c3d7/"},{name:"v-013a9917",path:"/pages/7b990f/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-013a9917").then(t)}},{path:"/pages/7b990f/index.html",redirect:"/pages/7b990f/"},{path:"/01.使用教程/99.常见问题/03.udp代理无效.html",redirect:"/pages/7b990f/"},{name:"v-563388f8",path:"/pages/441163/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-563388f8").then(t)}},{path:"/pages/441163/index.html",redirect:"/pages/441163/"},{path:"/01.使用教程/99.常见问题/04.Vue项目出现Invalid Host header 的解决方案.html",redirect:"/pages/441163/"},{name:"v-78c455d8",path:"/pages/7dcba8/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-78c455d8").then(t)}},{path:"/pages/7dcba8/index.html",redirect:"/pages/7dcba8/"},{path:"/01.使用教程/99.常见问题/05.服务端原声包启动,db初始化异常.html",redirect:"/pages/7dcba8/"},{name:"v-01fd51c3",path:"/pages/a20ce8/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-01fd51c3").then(t)}},{path:"/pages/a20ce8/index.html",redirect:"/pages/a20ce8/"},{path:"/02.常见问题/01.配置/01.主题配置.html",redirect:"/pages/a20ce8/"},{name:"v-766eb953",path:"/pages/f14bdb/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-766eb953").then(t)}},{path:"/pages/f14bdb/index.html",redirect:"/pages/f14bdb/"},{path:"/02.常见问题/01.配置/02.首页配置.html",redirect:"/pages/f14bdb/"},{name:"v-790ba86c",path:"/pages/3216b0/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-790ba86c").then(t)}},{path:"/pages/3216b0/index.html",redirect:"/pages/3216b0/"},{path:"/02.常见问题/01.配置/03.front matter配置.html",redirect:"/pages/3216b0/"},{name:"v-46e46358",path:"/pages/54651a/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-46e46358").then(t)}},{path:"/pages/54651a/index.html",redirect:"/pages/54651a/"},{path:"/02.常见问题/01.配置/04.目录页配置.html",redirect:"/pages/54651a/"},{name:"v-f5106e98",path:"/pages/1cc523/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-f5106e98").then(t)}},{path:"/pages/1cc523/index.html",redirect:"/pages/1cc523/"},{path:"/02.常见问题/01.配置/05.添加摘要.html",redirect:"/pages/1cc523/"},{name:"v-f3ace090",path:"/pages/f51918/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-f3ace090").then(t)}},{path:"/pages/f51918/index.html",redirect:"/pages/f51918/"},{path:"/02.常见问题/01.配置/06.修改主题颜色和样式.html",redirect:"/pages/f51918/"},{name:"v-34facd3a",path:"/pages/ce175c/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-34facd3a").then(t)}},{path:"/pages/ce175c/index.html",redirect:"/pages/ce175c/"},{path:"/02.常见问题/01.配置/07.评论栏.html",redirect:"/pages/ce175c/"},{name:"v-dd816e18",path:"/pages/1ab20b/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-dd816e18").then(t)}},{path:"/pages/1ab20b/index.html",redirect:"/pages/1ab20b/"},{path:"/03.支持我们/01.个人赞赏.html",redirect:"/pages/1ab20b/"},{name:"v-f411a3fa",path:"/pages/a3f096/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-f411a3fa").then(t)}},{path:"/pages/a3f096/index.html",redirect:"/pages/a3f096/"},{path:"/03.支持我们/02.贡献指南/01.如何贡献.html",redirect:"/pages/a3f096/"},{name:"v-e1195b60",path:"/pages/2f674a/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-e1195b60").then(t)}},{path:"/pages/2f674a/index.html",redirect:"/pages/2f674a/"},{path:"/03.支持我们/02.贡献指南/02.项目结构.html",redirect:"/pages/2f674a/"},{name:"v-3960e9f4",path:"/pages/dd027d/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-3960e9f4").then(t)}},{path:"/pages/dd027d/index.html",redirect:"/pages/dd027d/"},{path:"/03.支持我们/02.贡献指南/03.实现原理.html",redirect:"/pages/dd027d/"},{name:"v-5a945f7a",path:"/pages/cded59/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-5a945f7a").then(t)}},{path:"/pages/cded59/index.html",redirect:"/pages/cded59/"},{path:"/03.支持我们/99.赞赏公示/100.2023年.html",redirect:"/pages/cded59/"},{name:"v-8f390972",path:"/pages/acdf0a/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-8f390972").then(t)}},{path:"/pages/acdf0a/index.html",redirect:"/pages/acdf0a/"},{path:"/03.支持我们/99.赞赏公示/99.2024年.html",redirect:"/pages/acdf0a/"},{name:"v-c54ce8dc",path:"/pages/5d571c/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-c54ce8dc").then(t)}},{path:"/pages/5d571c/index.html",redirect:"/pages/5d571c/"},{path:"/04.案例/01.用户使用案例/01.企业登记.html",redirect:"/pages/5d571c/"},{name:"v-6f41e9e0",path:"/pages/ff3519/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-6f41e9e0").then(t)}},{path:"/pages/ff3519/index.html",redirect:"/pages/ff3519/"},{path:"/05.更新记录/01.版本记录/98.2.x.html",redirect:"/pages/ff3519/"},{name:"v-4624c390",path:"/pages/dda8e5/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-4624c390").then(t)}},{path:"/pages/dda8e5/index.html",redirect:"/pages/dda8e5/"},{path:"/05.更新记录/01.版本记录/99.1.x.html",redirect:"/pages/dda8e5/"},{name:"v-48315f2d",path:"/pages/e406dd/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-48315f2d").then(t)}},{path:"/pages/e406dd/index.html",redirect:"/pages/e406dd/"},{path:"/05.更新记录/02.里程碑.html",redirect:"/pages/e406dd/"},{name:"v-555f4f17",path:"/pages/1b12ed/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-555f4f17").then(t)}},{path:"/pages/1b12ed/index.html",redirect:"/pages/1b12ed/"},{path:"/06.关于我们/01.赞助.html",redirect:"/pages/1b12ed/"},{name:"v-8fd8c9ac",path:"/blog/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-8fd8c9ac").then(t)}},{path:"/blog/index.html",redirect:"/blog/"},{path:"/@pages/archivesPage.html",redirect:"/blog/"},{name:"v-cd2e75fa",path:"/",component:bc,beforeEnter:(e,n,t)=>{ps("Layout","v-cd2e75fa").then(t)}},{path:"/index.html",redirect:"/"},{path:"*",component:bc}],_c={title:"中微子代理",description:"一个基于Netty的开源内网穿透神器",base:"/neutrino-proxy/",headTags:[["link",{rel:"icon",href:"/neutrino-proxy/img/favicon.ico"}],["meta",{name:"keywords",content:"vuepress,theme,blog,vdoing"}],["meta",{name:"theme-color",content:"#11a8cd"}],["meta",{name:"referrer",content:"no-referrer-when-downgrade"}]],pages:[{title:"快速上手",frontmatter:{title:"快速上手",date:"2023-03-28T20:30:00.000Z",permalink:"/pages/793dcb",article:!1},regularPath:"/01.%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/01.%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2/01.%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B.html",relativePath:"01.使用教程/01.安装部署/01.快速上手.md",key:"v-6817da1e",path:"/pages/793dcb/",headers:[{level:2,title:"1、快速上手须知",slug:"_1、快速上手须知",normalizedTitle:"1、快速上手须知",charIndex:49},{level:2,title:"2、部署服务",slug:"_2、部署服务",normalizedTitle:"2、部署服务",charIndex:236},{level:2,title:"3、代理验证",slug:"_3、代理验证",normalizedTitle:"3、代理验证",charIndex:610}],headersStr:"1、快速上手须知 2、部署服务 3、代理验证",content:"提示\n\n当前最新版本:2.0.2。从之前的版本升级过来,请参照:更新记录 > 版本记录.\n\n\n# 1、快速上手须知\n\n * 所谓快速上手,就是针对从来没用过的新手编写的、快速完成从安装部署到首次使用的最简化流程\n * 该流程中请严格按照说明步骤执行,不要靠猜测自作聪明的修改配置\n * 如果的确需要修改,请先把安装部署、使用须知、常见问题全部仔细读一遍\n * 快速上手中涉及到的配置,仅仅是快速体验所必须的配置,完整的配置请参照使用须知中的服务端配置、客户端配置\n\n\n# 2、部署服务\n\n * 根据需要自行选择jar、docker、原生部署、docker-compose任意一种完成部署,分别参见对应的文档\n * 任何一种部署方式,不要求客户端与服务端一致。如:服务端采用docker部署,客户端可以用docker部署、也可以用jar、原生部署\n * 管理后台说明\n * 服务端部署成功后,访问http://{服务端IP}:8888打开后台管理页面。使用默认的管理员帐号登录:admin/123456\n * 打开代理配置>License管理页面,可以看到系统已经自动为管理员初始化了一条License记录,复制该LicenseKey备用,后续客户端配置需要。\n * 客户端说明\n * 客户端启动后,查看服务端License管理,刷新页面,对应的License在线状态为在线,则表明客户端已正常连接。\n\n\n# 3、代理验证\n\n * 本地启动被代理服务,如:redis、本地web项目、本地mysql等等,假设被代理服务端口为:8080\n * 先确保本地能正常访问被代理服务,如果本地都不能访问,不用想代理更不可能!!!\n * 服务端管理后台端口映射管理,使用默认的licesne创建一条端口映射,如:9101 -> 127.0.0.1:8080\n * 通过服务端IP+9101(上面License配置的端口映射重的服务端端口)访问本地被代理服务\n\n访问成功,至此首次完整的内网穿透体验完成。开源不易,请速至Gitee仓库一键三连🤝",normalizedContent:"提示\n\n当前最新版本:2.0.2。从之前的版本升级过来,请参照:更新记录 > 版本记录.\n\n\n# 1、快速上手须知\n\n * 所谓快速上手,就是针对从来没用过的新手编写的、快速完成从安装部署到首次使用的最简化流程\n * 该流程中请严格按照说明步骤执行,不要靠猜测自作聪明的修改配置\n * 如果的确需要修改,请先把安装部署、使用须知、常见问题全部仔细读一遍\n * 快速上手中涉及到的配置,仅仅是快速体验所必须的配置,完整的配置请参照使用须知中的服务端配置、客户端配置\n\n\n# 2、部署服务\n\n * 根据需要自行选择jar、docker、原生部署、docker-compose任意一种完成部署,分别参见对应的文档\n * 任何一种部署方式,不要求客户端与服务端一致。如:服务端采用docker部署,客户端可以用docker部署、也可以用jar、原生部署\n * 管理后台说明\n * 服务端部署成功后,访问http://{服务端ip}:8888打开后台管理页面。使用默认的管理员帐号登录:admin/123456\n * 打开代理配置>license管理页面,可以看到系统已经自动为管理员初始化了一条license记录,复制该licensekey备用,后续客户端配置需要。\n * 客户端说明\n * 客户端启动后,查看服务端license管理,刷新页面,对应的license在线状态为在线,则表明客户端已正常连接。\n\n\n# 3、代理验证\n\n * 本地启动被代理服务,如:redis、本地web项目、本地mysql等等,假设被代理服务端口为:8080\n * 先确保本地能正常访问被代理服务,如果本地都不能访问,不用想代理更不可能!!!\n * 服务端管理后台端口映射管理,使用默认的licesne创建一条端口映射,如:9101 -> 127.0.0.1:8080\n * 通过服务端ip+9101(上面license配置的端口映射重的服务端端口)访问本地被代理服务\n\n访问成功,至此首次完整的内网穿透体验完成。开源不易,请速至gitee仓库一键三连🤝",charsets:{cjk:!0},lastUpdated:"2024/12/18, 21:14:24",lastUpdatedTimestamp:1734527664e3},{title:"使用jar部署",frontmatter:{title:"使用jar部署",date:"2023-10-26T13:50:45.000Z",permalink:"/pages/eebea1/"},regularPath:"/01.%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/01.%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2/02.%E4%BD%BF%E7%94%A8jar%E9%83%A8%E7%BD%B2.html",relativePath:"01.使用教程/01.安装部署/02.使用jar部署.md",key:"v-c5ae5baa",path:"/pages/eebea1/",headers:[{level:2,title:"1、环境准备",slug:"_1、环境准备",normalizedTitle:"1、环境准备",charIndex:2},{level:2,title:"2、部署服务端",slug:"_2、部署服务端",normalizedTitle:"2、部署服务端",charIndex:144},{level:2,title:"3、部署客户端",slug:"_3、部署客户端",normalizedTitle:"3、部署客户端",charIndex:876}],headersStr:"1、环境准备 2、部署服务端 3、部署客户端",content:"# 1、环境准备\n\n * 首先确保已安装Java21运行环境\n * 打开发行版页面,下载最新的release包:neutrino-proxy-server-jdk21-2.0.2-jar.zip、neutrino-proxy-client-jdk21-2.0.2-jar.zip\n\n\n# 2、部署服务端\n\n * 在服务器上新建部署目录:/work/projects/neutrino-proxy-server\n * 将neutrino-proxy-server-jdk21-2.0.2-jar.zip上传至服务器部署目录,并解压\n * 执行命令java -Dfile.encoding=utf-8 -jar neutrino-proxy-server.jar启动服务端完成部署,默认使用h2数据库。\n * 若需要指定自己的mysql数据库,则需要在当前目录下的app.yml文件中,修改数据库配置如下:\n\nneutrino:\n data:\n db:\n type: mysql\n # 自己的数据库实例,创建一个空的名为'neutrino-proxy'的数据库即可,首次启动服务端会自动初始化\n url: jdbc:mysql://xxxx:3306/neutrino-proxy?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useAffectedRows=true&useSSL=false\n driver-class: com.mysql.jdbc.Driver\n # 数据库帐号\n username: xxx\n # 数据库密码\n password: xxx\n\n\n * 可参照 https://gitee.com/dromara/neutrino-proxy/blob/master/scripts/unix/server_start.sh 使用shell脚本启动服务端。\n\n\n# 3、部署客户端\n\n * 本地解压neutrino-proxy-client-jdk21-2.0.2-jar.zip文件\n * 修改app.yml文件中的server-ip为服务器公网ip,并配置license-key,以下是相关的部分配置:\n\nneutrino:\n proxy:\n tunnel:\n # ssl证书密钥(使用jjar包内自带的证书,则此处无需修改)\n key-store-password: 123456\n # ssl证书管理密钥(使用jjar包内自带的证书,则此处无需修改。自定义证书,则此处配置对应的路径)\n jks-path: classpath:/test.jks\n # 代理服务端IP\n server-ip: xxxx\n # 代理服务端IP, 若是非ssl端口,则ssl-enable需要配置为false\n server-port: 9002\n # 是否启用ssl\n ssl-enable: true\n # licenseKey,客户端凭证。此处需要配置刚刚从管理后台复制的LicenseKey\n license-key: xxxx\n\n\n * 执行命令java -jar neutrino-proxy-client.jar启动客户端",normalizedContent:"# 1、环境准备\n\n * 首先确保已安装java21运行环境\n * 打开发行版页面,下载最新的release包:neutrino-proxy-server-jdk21-2.0.2-jar.zip、neutrino-proxy-client-jdk21-2.0.2-jar.zip\n\n\n# 2、部署服务端\n\n * 在服务器上新建部署目录:/work/projects/neutrino-proxy-server\n * 将neutrino-proxy-server-jdk21-2.0.2-jar.zip上传至服务器部署目录,并解压\n * 执行命令java -dfile.encoding=utf-8 -jar neutrino-proxy-server.jar启动服务端完成部署,默认使用h2数据库。\n * 若需要指定自己的mysql数据库,则需要在当前目录下的app.yml文件中,修改数据库配置如下:\n\nneutrino:\n data:\n db:\n type: mysql\n # 自己的数据库实例,创建一个空的名为'neutrino-proxy'的数据库即可,首次启动服务端会自动初始化\n url: jdbc:mysql://xxxx:3306/neutrino-proxy?useunicode=true&characterencoding=utf-8&allowmultiqueries=true&useaffectedrows=true&usessl=false\n driver-class: com.mysql.jdbc.driver\n # 数据库帐号\n username: xxx\n # 数据库密码\n password: xxx\n\n\n * 可参照 https://gitee.com/dromara/neutrino-proxy/blob/master/scripts/unix/server_start.sh 使用shell脚本启动服务端。\n\n\n# 3、部署客户端\n\n * 本地解压neutrino-proxy-client-jdk21-2.0.2-jar.zip文件\n * 修改app.yml文件中的server-ip为服务器公网ip,并配置license-key,以下是相关的部分配置:\n\nneutrino:\n proxy:\n tunnel:\n # ssl证书密钥(使用jjar包内自带的证书,则此处无需修改)\n key-store-password: 123456\n # ssl证书管理密钥(使用jjar包内自带的证书,则此处无需修改。自定义证书,则此处配置对应的路径)\n jks-path: classpath:/test.jks\n # 代理服务端ip\n server-ip: xxxx\n # 代理服务端ip, 若是非ssl端口,则ssl-enable需要配置为false\n server-port: 9002\n # 是否启用ssl\n ssl-enable: true\n # licensekey,客户端凭证。此处需要配置刚刚从管理后台复制的licensekey\n license-key: xxxx\n\n\n * 执行命令java -jar neutrino-proxy-client.jar启动客户端",charsets:{cjk:!0},lastUpdated:"2024/12/07, 14:58:40",lastUpdatedTimestamp:173355472e4},{title:"使用docker容器化部署",frontmatter:{title:"使用docker容器化部署",date:"2023-10-26T13:51:29.000Z",permalink:"/pages/5b9bef/"},regularPath:"/01.%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/01.%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2/03.%E4%BD%BF%E7%94%A8docker%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2.html",relativePath:"01.使用教程/01.安装部署/03.使用docker容器化部署.md",key:"v-56935cd5",path:"/pages/5b9bef/",headers:[{level:2,title:"1、 部署服务端",slug:"_1、-部署服务端",normalizedTitle:"1、 部署服务端",charIndex:2},{level:3,title:"使用默认h2数据库一键部署",slug:"使用默认h2数据库一键部署",normalizedTitle:"使用默认h2数据库一键部署",charIndex:146},{level:3,title:"指定自己的mysql数据库",slug:"指定自己的mysql数据库",normalizedTitle:"指定自己的mysql数据库",charIndex:504},{level:2,title:"2、部署客户端",slug:"_2、部署客户端",normalizedTitle:"2、部署客户端",charIndex:986}],headersStr:"1、 部署服务端 使用默认h2数据库一键部署 指定自己的mysql数据库 2、部署客户端",content:"# 1、 部署服务端\n\n * dockerHub镜像地址:aoshiguchen/neutrino-proxy-server:latest\n * 阿里云镜像地址:registry.cn-hangzhou.aliyuncs.com/asgc/neutrino-proxy:latest\n\n\n# 使用默认h2数据库一键部署\n\ndocker run -it -p 9000-9200:9000-9200/tcp -p 8888:8888 \\\n-d --restart=always --name neutrino-proxy \\\n-v /root/neutrino-proxy-server/config:/root/neutrino-proxy/config \\\n-v /root/neutrino-proxy-server/data:/root/neutrino-proxy/data \\\n-v /root/neutrino-proxy-server/logs:/root/neutrino-proxy/logs \\\naoshiguchen/neutrino-proxy-server:latest\n\n\n\n# 指定自己的mysql数据库\n\n * 在服务器上创建目录:/root/neutrino-proxy/config\n * 在该目录下创建app.yml文本文件,并配置如下内容:\n\nneutrino:\n data:\n db:\n type: mysql\n # 自己的数据库实例,创建一个空的名为'neutrino-proxy'的数据库即可,首次启动服务端会自动初始化\n url: jdbc:mysql://xxxx:3306/neutrino-proxy?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useAffectedRows=true&useSSL=false\n driver-class: com.mysql.jdbc.Driver\n # 数据库帐号\n username: xxx\n # 数据库密码\n password: xxx\n\n\n * 然后再执行上面的docker一键部署命令即可\n\n\n# 2、部署客户端\n\n * dockerHub镜像地址:aoshiguchen/neutrino-proxy-client:latest\n * 阿里云镜像地址:registry.cn-hangzhou.aliyuncs.com/asgc/neutrino-proxy-client:latest\n * 命令中的服务端ip、license请自行补充\n * 若是首次使用,请仔细阅读快速上手,以确定license从哪里取得\n\ndocker run -it -d --restart=always --name npclient -e SERVER_IP=xxxx -e LICENSE_KEY=xxxx \\\naoshiguchen/neutrino-proxy-client:latest\n",normalizedContent:"# 1、 部署服务端\n\n * dockerhub镜像地址:aoshiguchen/neutrino-proxy-server:latest\n * 阿里云镜像地址:registry.cn-hangzhou.aliyuncs.com/asgc/neutrino-proxy:latest\n\n\n# 使用默认h2数据库一键部署\n\ndocker run -it -p 9000-9200:9000-9200/tcp -p 8888:8888 \\\n-d --restart=always --name neutrino-proxy \\\n-v /root/neutrino-proxy-server/config:/root/neutrino-proxy/config \\\n-v /root/neutrino-proxy-server/data:/root/neutrino-proxy/data \\\n-v /root/neutrino-proxy-server/logs:/root/neutrino-proxy/logs \\\naoshiguchen/neutrino-proxy-server:latest\n\n\n\n# 指定自己的mysql数据库\n\n * 在服务器上创建目录:/root/neutrino-proxy/config\n * 在该目录下创建app.yml文本文件,并配置如下内容:\n\nneutrino:\n data:\n db:\n type: mysql\n # 自己的数据库实例,创建一个空的名为'neutrino-proxy'的数据库即可,首次启动服务端会自动初始化\n url: jdbc:mysql://xxxx:3306/neutrino-proxy?useunicode=true&characterencoding=utf-8&allowmultiqueries=true&useaffectedrows=true&usessl=false\n driver-class: com.mysql.jdbc.driver\n # 数据库帐号\n username: xxx\n # 数据库密码\n password: xxx\n\n\n * 然后再执行上面的docker一键部署命令即可\n\n\n# 2、部署客户端\n\n * dockerhub镜像地址:aoshiguchen/neutrino-proxy-client:latest\n * 阿里云镜像地址:registry.cn-hangzhou.aliyuncs.com/asgc/neutrino-proxy-client:latest\n * 命令中的服务端ip、license请自行补充\n * 若是首次使用,请仔细阅读快速上手,以确定license从哪里取得\n\ndocker run -it -d --restart=always --name npclient -e server_ip=xxxx -e license_key=xxxx \\\naoshiguchen/neutrino-proxy-client:latest\n",charsets:{cjk:!0},lastUpdated:"2024/12/07, 14:58:40",lastUpdatedTimestamp:173355472e4},{title:"原生部署",frontmatter:{title:"原生部署",date:"2023-10-26T13:51:44.000Z",permalink:"/pages/69699a/"},regularPath:"/01.%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/01.%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2/04.%E5%8E%9F%E7%94%9F%E9%83%A8%E7%BD%B2.html",relativePath:"01.使用教程/01.安装部署/04.原生部署.md",key:"v-1defee03",path:"/pages/69699a/",headers:[{level:2,title:"1、安装包下载",slug:"_1、安装包下载",normalizedTitle:"1、安装包下载",charIndex:234},{level:2,title:"2、部署服务端",slug:"_2、部署服务端",normalizedTitle:"2、部署服务端",charIndex:403},{level:2,title:"3、部署客户端",slug:"_3、部署客户端",normalizedTitle:"3、部署客户端",charIndex:851}],headersStr:"1、安装包下载 2、部署服务端 3、部署客户端",content:"提示\n\n1、目前的原生部署包支持mac、linux、windows三个平台\n\n2、这三个平台的部署包均由作者分别测试通过\n\n3、尽管如此,仍然可能存在有的机器不支持的情况,可自行拉取仓库源码编译出目标平台可执行文件、或换成其它部署方式\n\n4、若linux/mac下提示文件没有执行权限,可执行chmod +x {文件路径}解决\n\n5、若mac下运行提示移到废纸篓,可执行sudo xattr -rd com.apple.quarantine {文件路径}解决\n\n\n# 1、安装包下载\n\n * 打开发行版页面,下载所需的最新的release包:\n * 比如服务器为linux则可下载neutrino-proxy-server-linux-2.0.2-native.zip文件,客户端为windows则可下载neutrino-proxy-client-windows-2.0.2-native.zip\n\n\n# 2、部署服务端\n\n * 将服务端安装包上传至服务器,并解压\n * 服务端默认使用h2数据库,若需要改为mysql,则可修改安装包app.yml内的数据库配置,如下:\n\nneutrino:\n data:\n db:\n type: mysql\n # 自己的数据库实例,创建一个空的名为'neutrino-proxy'的数据库即可,首次启动服务端会自动初始化\n url: jdbc:mysql://xxxx:3306/neutrino-proxy?useUnicode=true&allowMultiQueries=true&useAffectedRows=true&useSSL=false\n driver-class: com.mysql.jdbc.Driver\n # 数据库帐号\n username: xxx\n # 数据库密码\n password: xxx\n\n\n * 然后直接启动服务端可执行程序即可\n\n\n# 3、部署客户端\n\n * 本地解压客户端安装包\n * 修改app.yml文件中的server-ip为服务器公网ip,并配置license-key,以下是相关的部分配置:\n\nneutrino:\n proxy:\n tunnel:\n # ssl证书密钥(使用jjar包内自带的证书,则此处无需修改)\n key-store-password: 123456\n # ssl证书管理密钥(使用jjar包内自带的证书,则此处无需修改。自定义证书,则此处配置对应的路径)\n jks-path: classpath:/test.jks\n # 代理服务端IP\n server-ip: xxxx\n # 代理服务端IP, 若是非ssl端口,则ssl-enable需要配置为false\n server-port: 9002\n # 是否启用ssl\n ssl-enable: true\n # licenseKey,客户端凭证。此处需要配置刚刚从管理后台复制的LicenseKey\n license-key: xxxx\n\n\n * 然后直接启动客户端可执行程序即可",normalizedContent:"提示\n\n1、目前的原生部署包支持mac、linux、windows三个平台\n\n2、这三个平台的部署包均由作者分别测试通过\n\n3、尽管如此,仍然可能存在有的机器不支持的情况,可自行拉取仓库源码编译出目标平台可执行文件、或换成其它部署方式\n\n4、若linux/mac下提示文件没有执行权限,可执行chmod +x {文件路径}解决\n\n5、若mac下运行提示移到废纸篓,可执行sudo xattr -rd com.apple.quarantine {文件路径}解决\n\n\n# 1、安装包下载\n\n * 打开发行版页面,下载所需的最新的release包:\n * 比如服务器为linux则可下载neutrino-proxy-server-linux-2.0.2-native.zip文件,客户端为windows则可下载neutrino-proxy-client-windows-2.0.2-native.zip\n\n\n# 2、部署服务端\n\n * 将服务端安装包上传至服务器,并解压\n * 服务端默认使用h2数据库,若需要改为mysql,则可修改安装包app.yml内的数据库配置,如下:\n\nneutrino:\n data:\n db:\n type: mysql\n # 自己的数据库实例,创建一个空的名为'neutrino-proxy'的数据库即可,首次启动服务端会自动初始化\n url: jdbc:mysql://xxxx:3306/neutrino-proxy?useunicode=true&allowmultiqueries=true&useaffectedrows=true&usessl=false\n driver-class: com.mysql.jdbc.driver\n # 数据库帐号\n username: xxx\n # 数据库密码\n password: xxx\n\n\n * 然后直接启动服务端可执行程序即可\n\n\n# 3、部署客户端\n\n * 本地解压客户端安装包\n * 修改app.yml文件中的server-ip为服务器公网ip,并配置license-key,以下是相关的部分配置:\n\nneutrino:\n proxy:\n tunnel:\n # ssl证书密钥(使用jjar包内自带的证书,则此处无需修改)\n key-store-password: 123456\n # ssl证书管理密钥(使用jjar包内自带的证书,则此处无需修改。自定义证书,则此处配置对应的路径)\n jks-path: classpath:/test.jks\n # 代理服务端ip\n server-ip: xxxx\n # 代理服务端ip, 若是非ssl端口,则ssl-enable需要配置为false\n server-port: 9002\n # 是否启用ssl\n ssl-enable: true\n # licensekey,客户端凭证。此处需要配置刚刚从管理后台复制的licensekey\n license-key: xxxx\n\n\n * 然后直接启动客户端可执行程序即可",charsets:{cjk:!0},lastUpdated:"2024/12/07, 14:58:40",lastUpdatedTimestamp:173355472e4},{title:"使用docker-compose部署",frontmatter:{title:"使用docker-compose部署",date:"2024-12-07T14:40:50.000Z",permalink:"/pages/2d4123/"},regularPath:"/01.%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/01.%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2/05.%E4%BD%BF%E7%94%A8docker-compose%E9%83%A8%E7%BD%B2.html",relativePath:"01.使用教程/01.安装部署/05.使用docker-compose部署.md",key:"v-1c826803",path:"/pages/2d4123/",headers:[{level:2,title:"1、 部署服务端",slug:"_1、-部署服务端",normalizedTitle:"1、 部署服务端",charIndex:2},{level:3,title:"使用默认h2数据库一键部署",slug:"使用默认h2数据库一键部署",normalizedTitle:"使用默认h2数据库一键部署",charIndex:15},{level:3,title:"使用默认mysql数据库一键部署",slug:"使用默认mysql数据库一键部署",normalizedTitle:"使用默认mysql数据库一键部署",charIndex:207},{level:2,title:"2、部署客户端",slug:"_2、部署客户端",normalizedTitle:"2、部署客户端",charIndex:405}],headersStr:"1、 部署服务端 使用默认h2数据库一键部署 使用默认mysql数据库一键部署 2、部署客户端",content:"# 1、 部署服务端\n\n\n# 使用默认h2数据库一键部署\n\n * 注意自行修改配置文件:config/app.yml\n\ngit clone https://gitee.com/dromara/neutrino-proxy.git\ncd neutrino-proxy/scripts/docker-compose/neutrino-proxy-server-h2\ndocker-compose up -d\n\n\n\n# 使用默认mysql数据库一键部署\n\n * 注意自行修改配置文件:config/app.yml\n\ngit clone https://gitee.com/dromara/neutrino-proxy.git\ncd neutrino-proxy/scripts/docker-compose/neutrino-proxy-server-mysql\ndocker-compose up -d\n\n\n\n# 2、部署客户端\n\n * 注意自行修改配置文件:config/app.yml\n\ngit clone https://gitee.com/dromara/neutrino-proxy.git\ncd neutrino-proxy/scripts/docker-compose/neutrino-proxy-client\ndocker-compose up -d\n",normalizedContent:"# 1、 部署服务端\n\n\n# 使用默认h2数据库一键部署\n\n * 注意自行修改配置文件:config/app.yml\n\ngit clone https://gitee.com/dromara/neutrino-proxy.git\ncd neutrino-proxy/scripts/docker-compose/neutrino-proxy-server-h2\ndocker-compose up -d\n\n\n\n# 使用默认mysql数据库一键部署\n\n * 注意自行修改配置文件:config/app.yml\n\ngit clone https://gitee.com/dromara/neutrino-proxy.git\ncd neutrino-proxy/scripts/docker-compose/neutrino-proxy-server-mysql\ndocker-compose up -d\n\n\n\n# 2、部署客户端\n\n * 注意自行修改配置文件:config/app.yml\n\ngit clone https://gitee.com/dromara/neutrino-proxy.git\ncd neutrino-proxy/scripts/docker-compose/neutrino-proxy-client\ndocker-compose up -d\n",charsets:{cjk:!0},lastUpdated:"2024/12/07, 14:58:40",lastUpdatedTimestamp:173355472e4},{title:"后台操作指南",frontmatter:{title:"后台操作指南",date:"2023-03-28T20:30:00.000Z",permalink:"/pages/793dcc",article:!1},regularPath:"/01.%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/02.%E4%BD%BF%E7%94%A8%E9%A1%BB%E7%9F%A5/01.%E7%AE%A1%E7%90%86%E5%90%8E%E5%8F%B0.html",relativePath:"01.使用教程/02.使用须知/01.管理后台.md",key:"v-5d224f7b",path:"/pages/793dcc/",headersStr:null,content:"# 首页\n\n * License统计:统计License相关数量指标\n * 端口映射统计:统计端口映射相关数量指标\n * 今日流量:统计当天的服务端上行/下行流量数据\n * 流量汇总:统计所有(包含当天)的服务端上行/下行流量数据\n * 流量监控:按天统计最近15天(可能会动态调整)每天的上行流量、下行流量、汇总流量\n\n\n\n\n# 代理配置\n\n * License管理:License是客户端连接服务端的唯一合法凭证。一个License同时只能被一个客户端使用,一个License可以维护多条端口映射\n * 端口映射:服务端IP+端口 -> 客户端IP+端口的四元组映射(因目前服务端单节点只有一个公网IP,所以不体现出来),是内网穿透的基本单元。\n * 限速:\n * 默认所有代理没有限速\n * 对License限速,将使得License下的所有端口映射都被限速\n * 若License设置了限速,License下的某条映射也设置了限速,则对于该映射优先采用端口映射上的限速规则\n * 域名管理:用于管理服务器主域名和证书,用于支持域名映射。一个主域名域名可以创建多个域名映射(配置不同的子域名)。\n\n\n\n\n# 安全组\n\n一个端口映射可绑定一个安全组,通过安全组的默认放行类型 + 安全组下的安全规则 控制该端口映射的安全访问规则。\n\n * 场景1: 内部服务,穿透出来自己使用,不希望被其他人访问。端口映射可关联一个默认放行类型为“拒绝”的安全组,安全组下新增安全规则,将本地的出口ip添加到允许放行规则中。\n * 场景2:公网服务,穿透出来开放给大家使用,但是希望拒绝某些IP访问。端口映射可关联一个默认放行类型为“允许”的安全组,安全组下新增安全规则,将黑名单ip添加到拒绝放行规则中。\n\n\n\n\n# 系统管理\n\n * 用户管理:支持多用户,一个用户可持有多个License。由于项目目前主推个人版,所以暂是没有权限这一套,管理员之外的所有用户都属于游客。对于绝大多数操作,游客仅有只读权限。\n * 端口池管理:用于统一管理服务器内网穿透端口,方便统一设置安全组。\n * 端口池分组:对端口池的一个分组。\n * 全局分组:该分组下的端口全局通用。\n * 用户分组:该分组下的端口由分组绑定的用户独占。\n * License分组:该分组下的端口由分组绑定的License独占。\n * 调度管理:维护服务端定时任务。方便开发、调试。正常使用时无需关心。\n\n\n\n\n# 报表管理\n\n * 用户流量报表:基于用户维度的流量统计\n * License流量报表:基于License的流量统计\n * 用户流量月度明细:基于用户的流量月度统计\n * License流量月度明细:基于License的流量月度统计\n\n\n\n\n# 日志管理\n\n * 调度日志:服务端定时任务执行日志\n * 登录日志:管理后端登录、退出登录的日志\n * 客户端连接日志:客户端连接、断开的日志\n\n",normalizedContent:"# 首页\n\n * license统计:统计license相关数量指标\n * 端口映射统计:统计端口映射相关数量指标\n * 今日流量:统计当天的服务端上行/下行流量数据\n * 流量汇总:统计所有(包含当天)的服务端上行/下行流量数据\n * 流量监控:按天统计最近15天(可能会动态调整)每天的上行流量、下行流量、汇总流量\n\n\n\n\n# 代理配置\n\n * license管理:license是客户端连接服务端的唯一合法凭证。一个license同时只能被一个客户端使用,一个license可以维护多条端口映射\n * 端口映射:服务端ip+端口 -> 客户端ip+端口的四元组映射(因目前服务端单节点只有一个公网ip,所以不体现出来),是内网穿透的基本单元。\n * 限速:\n * 默认所有代理没有限速\n * 对license限速,将使得license下的所有端口映射都被限速\n * 若license设置了限速,license下的某条映射也设置了限速,则对于该映射优先采用端口映射上的限速规则\n * 域名管理:用于管理服务器主域名和证书,用于支持域名映射。一个主域名域名可以创建多个域名映射(配置不同的子域名)。\n\n\n\n\n# 安全组\n\n一个端口映射可绑定一个安全组,通过安全组的默认放行类型 + 安全组下的安全规则 控制该端口映射的安全访问规则。\n\n * 场景1: 内部服务,穿透出来自己使用,不希望被其他人访问。端口映射可关联一个默认放行类型为“拒绝”的安全组,安全组下新增安全规则,将本地的出口ip添加到允许放行规则中。\n * 场景2:公网服务,穿透出来开放给大家使用,但是希望拒绝某些ip访问。端口映射可关联一个默认放行类型为“允许”的安全组,安全组下新增安全规则,将黑名单ip添加到拒绝放行规则中。\n\n\n\n\n# 系统管理\n\n * 用户管理:支持多用户,一个用户可持有多个license。由于项目目前主推个人版,所以暂是没有权限这一套,管理员之外的所有用户都属于游客。对于绝大多数操作,游客仅有只读权限。\n * 端口池管理:用于统一管理服务器内网穿透端口,方便统一设置安全组。\n * 端口池分组:对端口池的一个分组。\n * 全局分组:该分组下的端口全局通用。\n * 用户分组:该分组下的端口由分组绑定的用户独占。\n * license分组:该分组下的端口由分组绑定的license独占。\n * 调度管理:维护服务端定时任务。方便开发、调试。正常使用时无需关心。\n\n\n\n\n# 报表管理\n\n * 用户流量报表:基于用户维度的流量统计\n * license流量报表:基于license的流量统计\n * 用户流量月度明细:基于用户的流量月度统计\n * license流量月度明细:基于license的流量月度统计\n\n\n\n\n# 日志管理\n\n * 调度日志:服务端定时任务执行日志\n * 登录日志:管理后端登录、退出登录的日志\n * 客户端连接日志:客户端连接、断开的日志\n\n",charsets:{cjk:!0},lastUpdated:"2024/09/19, 18:53:18",lastUpdatedTimestamp:1726743198e3},{title:"关于端口",frontmatter:{title:"关于端口",date:"2023-04-05T18:20:18.000Z",permalink:"/pages/68badb/"},regularPath:"/01.%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/02.%E4%BD%BF%E7%94%A8%E9%A1%BB%E7%9F%A5/02.%E5%85%B3%E4%BA%8E%E7%AB%AF%E5%8F%A3.html",relativePath:"01.使用教程/02.使用须知/02.关于端口.md",key:"v-57a42df1",path:"/pages/68badb/",headersStr:null,content:"# 端口池\n\n> 端口池用于统一、集中管理服务端代理对外开放的代理端口。\n\n * 1、这里不包含服务端启动本身所需要的一些特殊端口,如:WEB端口、对客户端开放的端口(9000、9002)、HTTP代理端口。\n * 2、端口映射里所有的服务端端口,都包含在端口池内。方便了统一管理、安全组/防火墙设置。\n\n\n# 端口池分组\n\n> 顾名思义,它是对端口池下的端口做了一个划分。\n\n * 1、允许同一个分组内的端口拥有特定的归属。比如:全局分组下的端口,进行代理时所有用户共享,这里极端情况下涉及到端口抢占问题。而用户分组下的端口,归属于某一个特定的用户。 License分组下的端口,归属于某一个特定的License。\n * 2、该划分,使得特定的用户、License能够独占一部分端口。为后续更多场景下代理,避免端口被占用提供了支持。\n\n\n# 端口映射\n\n> 当前版本代理功能的基本单元。\n\n * 1、该映射由一个四元组唯一标识(代理服务端IP、代理服务端端口、被代理服务局域网IP、被代理服务端口)。\n * 2、由于本项目为个人版,代理服务端仅支持一个节点,所以四元组中的服务端IP可以省略,不在端口映射管理中体现。\n * 3、代理成功的情况下,通过访问代理服务端IP+端口,可以达到访问内网被代理服务IP+端口的同等效果\n * 4、例如:本地启动一个socket服务,需要和异地的同事联调。可以通过中微子代理jetbrains客户端插件(后续会推出)将本地socket端口代理至公网。同事通过访问代理服务端公网IP+端口进行调试。\n\n\n# 基础端口说明\n\n * WEB端口:服务端API、后台管理访问端口,默认为:8888\n * 服务端等待客户端连接的端口,非SSL:默认9000,SSL端口:默认9002(若不需要SSL支持,可不配置SSL端口)\n * HTTP代理端口:默认80,用于域名映射,若无需域名映射,可以忽略。",normalizedContent:"# 端口池\n\n> 端口池用于统一、集中管理服务端代理对外开放的代理端口。\n\n * 1、这里不包含服务端启动本身所需要的一些特殊端口,如:web端口、对客户端开放的端口(9000、9002)、http代理端口。\n * 2、端口映射里所有的服务端端口,都包含在端口池内。方便了统一管理、安全组/防火墙设置。\n\n\n# 端口池分组\n\n> 顾名思义,它是对端口池下的端口做了一个划分。\n\n * 1、允许同一个分组内的端口拥有特定的归属。比如:全局分组下的端口,进行代理时所有用户共享,这里极端情况下涉及到端口抢占问题。而用户分组下的端口,归属于某一个特定的用户。 license分组下的端口,归属于某一个特定的license。\n * 2、该划分,使得特定的用户、license能够独占一部分端口。为后续更多场景下代理,避免端口被占用提供了支持。\n\n\n# 端口映射\n\n> 当前版本代理功能的基本单元。\n\n * 1、该映射由一个四元组唯一标识(代理服务端ip、代理服务端端口、被代理服务局域网ip、被代理服务端口)。\n * 2、由于本项目为个人版,代理服务端仅支持一个节点,所以四元组中的服务端ip可以省略,不在端口映射管理中体现。\n * 3、代理成功的情况下,通过访问代理服务端ip+端口,可以达到访问内网被代理服务ip+端口的同等效果\n * 4、例如:本地启动一个socket服务,需要和异地的同事联调。可以通过中微子代理jetbrains客户端插件(后续会推出)将本地socket端口代理至公网。同事通过访问代理服务端公网ip+端口进行调试。\n\n\n# 基础端口说明\n\n * web端口:服务端api、后台管理访问端口,默认为:8888\n * 服务端等待客户端连接的端口,非ssl:默认9000,ssl端口:默认9002(若不需要ssl支持,可不配置ssl端口)\n * http代理端口:默认80,用于域名映射,若无需域名映射,可以忽略。",charsets:{cjk:!0},lastUpdated:"2023/10/25, 18:20:43",lastUpdatedTimestamp:1698229243e3},{title:"域名映射",frontmatter:{title:"域名映射",date:"2023-04-05T18:46:12.000Z",permalink:"/pages/269a2e/"},regularPath:"/01.%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/02.%E4%BD%BF%E7%94%A8%E9%A1%BB%E7%9F%A5/03.%E5%9F%9F%E5%90%8D%E6%98%A0%E5%B0%84.html",relativePath:"01.使用教程/02.使用须知/03.域名映射.md",key:"v-fb26568e",path:"/pages/269a2e/",headers:[{level:2,title:"情况1:代理服务端使用80端口",slug:"情况1-代理服务端使用80端口",normalizedTitle:"情况1:代理服务端使用80端口",charIndex:298},{level:2,title:"情况2:代理服务端不使用80端口,80端口被nginx占用",slug:"情况2-代理服务端不使用80端口-80端口被nginx占用",normalizedTitle:"情况2:代理服务端不使用80端口,80端口被nginx占用",charIndex:524}],headersStr:"情况1:代理服务端使用80端口 情况2:代理服务端不使用80端口,80端口被nginx占用",content:'# 什么是域名映射?\n\n域名映射是将指定端口映射绑定到某一个子域名上,通过直接访问域名的方式,达到访问被代理服务的目的。 支持维护多个主域名并为多个主域名配置不同的子域名实现域名映射。\n\n\n# 域名映射能解决什么问题?\n\n * 1、当服务端端口需要经常变动的时候,可以通过固定域名的方式,使得开发调试能够长期稳定的进行,不用每次更改访问地址。\n * 2、使用域名可以使用有意义的名称方便记忆\n * 3、调试某些第三方回调时,回调地址不能填写IP+端口的形式,此时需要域名来完成\n\n\n# 域名映射的大致流程?\n\n> 例如你有一个已备案的域名:asgc.fun,以下是使用域名映射的大致流程\n\n\n# 情况1:代理服务端使用80端口\n\n * 1、DNS解析配置泛域名解析 proxy.asgc.fun 指向代理服务端IP\n * 2、服务端管理后台域名管理新建域名,如:asgc.fun\n * 3、服务端管理后台新建端口映射,协议选择:HTTP(S),选择主域名并设置好子域名,如:test1.proxy\n * 4、配置好客户端并启动,代理映射完成\n * 5、通过访问: http://test1.proxy.asgc.fun 实现访问被代理服务\n\n\n# 情况2:代理服务端不使用80端口,80端口被nginx占用\n\n> 假设代理服务端使用82作为HTTP代理端口\n\n * 1、DNS解析配置泛域名解析 proxy.asgc.fun 指向代理服务端IP\n * 2、nginx 80端口下将 *.proxy.asgc.fun 请求转到82端口,并附带原有请求头(特别是Host)\n * 3、服务端管理后台域名管理新建域名,如:asgc.fun\n * 4、服务端管理后台新建端口映射,协议选择:HTTP(S),设置好子域名,如:test1.proxy\n * 5、配置好客户端并启动,代理映射完成\n * 6、通过访问: http://test1.proxy.asgc.fun 实现访问被代理服务\n\n\n# 所有的代理映射都能绑定域名吗?\n\n不行的。之所以能实现域名绑定,原因是HTTP请求附带了Host请求头,包含了请求的域名信息,代理服务端能根据请求的域名做分发。而TCP协议本身并不包含域名,因此无法实现。 所以,目前只有HTTP(涵盖HTTPS)协议能支持。\n\n\n# 域名映射支持HTTPS吗?\n\n支持的。在服务端管理后台-域名管理中新建域名并上传域名对应的服务器证书,可以选择强制HTTPS,这样会拦截所有HTTP请求,只支持通过HTTPS访问。 如果上传后的证书仍不支持HTTPS访问,请确保上传证书有效并且和配置的主域名或完整域名映射匹配。\n\n\n# 上传服务器证书的文件有要求吗?\n\n有的。目前只支持通过jks文件上传服务器证书,jks文件中只包含服务器证书(如:.cer文件),并设置密码。\n\n\n# 代理服务端使用非80端口时,nginx配置示例\n\nserver {\n listen 80;\n # 此处配不配貌似不影响\n server_name localhost *.neutrino-proxy.asgc.fun;\n\n location / {\n if ($http_host ~* "(.*?).neutrino-proxy.asgc.fun") {\n # 转发到代理服务端HTTP代理端口\n proxy_pass http://localhost:8899; \n }\n\n tcp_nodelay on;\n proxy_set_header Host $host;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n #以上三行,目的是将代理服务器收到的用户的信息传到真实服务器上\n\n root html;\n index index.html index.htm;\n }\n}\n',normalizedContent:'# 什么是域名映射?\n\n域名映射是将指定端口映射绑定到某一个子域名上,通过直接访问域名的方式,达到访问被代理服务的目的。 支持维护多个主域名并为多个主域名配置不同的子域名实现域名映射。\n\n\n# 域名映射能解决什么问题?\n\n * 1、当服务端端口需要经常变动的时候,可以通过固定域名的方式,使得开发调试能够长期稳定的进行,不用每次更改访问地址。\n * 2、使用域名可以使用有意义的名称方便记忆\n * 3、调试某些第三方回调时,回调地址不能填写ip+端口的形式,此时需要域名来完成\n\n\n# 域名映射的大致流程?\n\n> 例如你有一个已备案的域名:asgc.fun,以下是使用域名映射的大致流程\n\n\n# 情况1:代理服务端使用80端口\n\n * 1、dns解析配置泛域名解析 proxy.asgc.fun 指向代理服务端ip\n * 2、服务端管理后台域名管理新建域名,如:asgc.fun\n * 3、服务端管理后台新建端口映射,协议选择:http(s),选择主域名并设置好子域名,如:test1.proxy\n * 4、配置好客户端并启动,代理映射完成\n * 5、通过访问: http://test1.proxy.asgc.fun 实现访问被代理服务\n\n\n# 情况2:代理服务端不使用80端口,80端口被nginx占用\n\n> 假设代理服务端使用82作为http代理端口\n\n * 1、dns解析配置泛域名解析 proxy.asgc.fun 指向代理服务端ip\n * 2、nginx 80端口下将 *.proxy.asgc.fun 请求转到82端口,并附带原有请求头(特别是host)\n * 3、服务端管理后台域名管理新建域名,如:asgc.fun\n * 4、服务端管理后台新建端口映射,协议选择:http(s),设置好子域名,如:test1.proxy\n * 5、配置好客户端并启动,代理映射完成\n * 6、通过访问: http://test1.proxy.asgc.fun 实现访问被代理服务\n\n\n# 所有的代理映射都能绑定域名吗?\n\n不行的。之所以能实现域名绑定,原因是http请求附带了host请求头,包含了请求的域名信息,代理服务端能根据请求的域名做分发。而tcp协议本身并不包含域名,因此无法实现。 所以,目前只有http(涵盖https)协议能支持。\n\n\n# 域名映射支持https吗?\n\n支持的。在服务端管理后台-域名管理中新建域名并上传域名对应的服务器证书,可以选择强制https,这样会拦截所有http请求,只支持通过https访问。 如果上传后的证书仍不支持https访问,请确保上传证书有效并且和配置的主域名或完整域名映射匹配。\n\n\n# 上传服务器证书的文件有要求吗?\n\n有的。目前只支持通过jks文件上传服务器证书,jks文件中只包含服务器证书(如:.cer文件),并设置密码。\n\n\n# 代理服务端使用非80端口时,nginx配置示例\n\nserver {\n listen 80;\n # 此处配不配貌似不影响\n server_name localhost *.neutrino-proxy.asgc.fun;\n\n location / {\n if ($http_host ~* "(.*?).neutrino-proxy.asgc.fun") {\n # 转发到代理服务端http代理端口\n proxy_pass http://localhost:8899; \n }\n\n tcp_nodelay on;\n proxy_set_header host $host;\n proxy_set_header x-real-ip $remote_addr;\n proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;\n #以上三行,目的是将代理服务器收到的用户的信息传到真实服务器上\n\n root html;\n index index.html index.htm;\n }\n}\n',charsets:{cjk:!0},lastUpdated:"2024/09/19, 18:53:18",lastUpdatedTimestamp:1726743198e3},{title:"HTTPS配置",frontmatter:{title:"HTTPS配置",date:"2023-05-27T11:40:12.000Z",permalink:"/pages/99a300/"},regularPath:"/01.%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/02.%E4%BD%BF%E7%94%A8%E9%A1%BB%E7%9F%A5/04.HTTPS%E9%85%8D%E7%BD%AE.html",relativePath:"01.使用教程/02.使用须知/04.HTTPS配置.md",key:"v-45c5d1a5",path:"/pages/99a300/",headers:[{level:2,title:"基础说明",slug:"基础说明",normalizedTitle:"基础说明",charIndex:2},{level:2,title:"HTTPS配置流程",slug:"https配置流程",normalizedTitle:"https配置流程",charIndex:387},{level:2,title:"HTTPS端口问题",slug:"https端口问题",normalizedTitle:"https端口问题",charIndex:462}],headersStr:"基础说明 HTTPS配置流程 HTTPS端口问题",content:"# 基础说明\n\n * 在中微子代理中,HTTP的定位是:为ip+端口的访问形式增加域名访问的支持。因此:\n \n * 如果端口映射正确配置了域名,那么该映射同时支持IP+端口、域名2种访问形式。\n * 如果端口映射未配置域名,那么只能以ip+端口的形式访问,此时等价于选择TCP协议。\n\n * 在中微子代理中,HTTPS作为HTTP的一种增强行为,不作为一个单独的协议。因此:\n \n * 在端口映射中只需要选择HTTP即可\n * 若端口映射未正确配置域名,那么同理,此时等价于选择TCP协议。\n * 若端口映射配置了域名,但是未正确配置HTTPS端口、证书,那么此时可以通过域名访问,但不支持HTTPS\n * 若端口映射配置了域名,且正确配置了HTTPS端口、证书,那么此时可以通过IP+端口、http域名、https域名3种形式访问\n\n\n# HTTPS配置流程\n\n * 按照域名映射流程,完成域名的配置\n * 在服务端管理后台上传对应域名的HTTPS证书信息(此处应该是通配符证书)\n\n\n# HTTPS端口问题\n\n * 与HTTP类似,HTTPS也有一个默认端口:443,默认情况下需要占用服务端443端口\n * 如果代理服务端不能独占443端口,此处可以指定任意端口,但需要在nginx中配置443端口的转发规则。此处与域名映射中代理服务端不使用80端口的情况类似",normalizedContent:"# 基础说明\n\n * 在中微子代理中,http的定位是:为ip+端口的访问形式增加域名访问的支持。因此:\n \n * 如果端口映射正确配置了域名,那么该映射同时支持ip+端口、域名2种访问形式。\n * 如果端口映射未配置域名,那么只能以ip+端口的形式访问,此时等价于选择tcp协议。\n\n * 在中微子代理中,https作为http的一种增强行为,不作为一个单独的协议。因此:\n \n * 在端口映射中只需要选择http即可\n * 若端口映射未正确配置域名,那么同理,此时等价于选择tcp协议。\n * 若端口映射配置了域名,但是未正确配置https端口、证书,那么此时可以通过域名访问,但不支持https\n * 若端口映射配置了域名,且正确配置了https端口、证书,那么此时可以通过ip+端口、http域名、https域名3种形式访问\n\n\n# https配置流程\n\n * 按照域名映射流程,完成域名的配置\n * 在服务端管理后台上传对应域名的https证书信息(此处应该是通配符证书)\n\n\n# https端口问题\n\n * 与http类似,https也有一个默认端口:443,默认情况下需要占用服务端443端口\n * 如果代理服务端不能独占443端口,此处可以指定任意端口,但需要在nginx中配置443端口的转发规则。此处与域名映射中代理服务端不使用80端口的情况类似",charsets:{cjk:!0},lastUpdated:"2024/09/19, 18:53:18",lastUpdatedTimestamp:1726743198e3},{title:"服务端配置",frontmatter:{title:"服务端配置",date:"2024-09-22T11:41:44.000Z",permalink:"/pages/f2d0f1/"},regularPath:"/01.%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/02.%E4%BD%BF%E7%94%A8%E9%A1%BB%E7%9F%A5/05.%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%85%8D%E7%BD%AE.html",relativePath:"01.使用教程/02.使用须知/05.服务端配置.md",key:"v-1594f7c7",path:"/pages/f2d0f1/",headersStr:null,content:"提示\n\n2.0.2版本,服务端配置格式有所调整。从之前的版本升级的,需要注意\n\n\n# 以下是最新的服务端配置格式(app.yml)\n\nserver:\n # 服务端web端口,用于支持HTTP接口,管理后台页面访问\n port: ${WEB_PORT:8888}\n\nneutrino:\n proxy:\n logger:\n # 日志级别\n level: ${LOG_LEVEL:info}\n # 隧道相关配置-用于维持服务端与客户端的通信\n tunnel:\n # 线程池相关配置,用于技术调优,可忽略\n boss-thread-count: 2\n work-thread-count: 10\n # 隧道非SSL端口\n port: ${OPEN_PORT:9000}\n # 隧道SSL端口\n ssl-port: ${SSL_PORT:9002}\n # 隧道SSL证书配置\n key-store-password: ${STORE_PASS:123456}\n key-manager-password: ${MGR_PASS:123456}\n jks-path: ${JKS_PATH:classpath:/test.jks}\n # 是否开启隧道传输报文日志(日志级别为debug时开启才有效)\n transfer-log-enable: ${TUNNEL_LOG:false}\n server:\n tcp:\n # 线程池相关配置,用于技术调优,可忽略\n boss-thread-count: 5\n work-thread-count: 20\n # http代理端口,默认80\n http-proxy-port: ${HTTP_PROXY_PORT:80}\n # https代理端口,默认443 (需要配置域名、证书)\n https-proxy-port: ${HTTPS_PROXY_PORT:443}\n # 是否开启代理服务报文日志(日志级别为debug时开启才有效)\n transfer-log-enable: ${SERVER_LOG:false}\n udp:\n # 线程池相关配置,用于技术调优,可忽略\n boss-thread-count: 5\n work-thread-count: 20\n # 是否开启代理服务报文日志(日志级别为debug时开启才有效)\n transfer-log-enable: ${SERVER_LOG:false}\n data:\n db:\n # 数据库类型,目前支持sqlite、mysql、mariadb\n type: ${DB_TYPE:h2}\n # 数据库连接URL\n url: ${DB_URL:jdbc:h2:file:./data/db;MODE=MySQL;AUTO_SERVER=TRUE}\n # 数据库用户名\n username: ${DB_USER:}\n # 数据库密码\n password: ${DB_PASSWORD:}\n",normalizedContent:"提示\n\n2.0.2版本,服务端配置格式有所调整。从之前的版本升级的,需要注意\n\n\n# 以下是最新的服务端配置格式(app.yml)\n\nserver:\n # 服务端web端口,用于支持http接口,管理后台页面访问\n port: ${web_port:8888}\n\nneutrino:\n proxy:\n logger:\n # 日志级别\n level: ${log_level:info}\n # 隧道相关配置-用于维持服务端与客户端的通信\n tunnel:\n # 线程池相关配置,用于技术调优,可忽略\n boss-thread-count: 2\n work-thread-count: 10\n # 隧道非ssl端口\n port: ${open_port:9000}\n # 隧道ssl端口\n ssl-port: ${ssl_port:9002}\n # 隧道ssl证书配置\n key-store-password: ${store_pass:123456}\n key-manager-password: ${mgr_pass:123456}\n jks-path: ${jks_path:classpath:/test.jks}\n # 是否开启隧道传输报文日志(日志级别为debug时开启才有效)\n transfer-log-enable: ${tunnel_log:false}\n server:\n tcp:\n # 线程池相关配置,用于技术调优,可忽略\n boss-thread-count: 5\n work-thread-count: 20\n # http代理端口,默认80\n http-proxy-port: ${http_proxy_port:80}\n # https代理端口,默认443 (需要配置域名、证书)\n https-proxy-port: ${https_proxy_port:443}\n # 是否开启代理服务报文日志(日志级别为debug时开启才有效)\n transfer-log-enable: ${server_log:false}\n udp:\n # 线程池相关配置,用于技术调优,可忽略\n boss-thread-count: 5\n work-thread-count: 20\n # 是否开启代理服务报文日志(日志级别为debug时开启才有效)\n transfer-log-enable: ${server_log:false}\n data:\n db:\n # 数据库类型,目前支持sqlite、mysql、mariadb\n type: ${db_type:h2}\n # 数据库连接url\n url: ${db_url:jdbc:h2:file:./data/db;mode=mysql;auto_server=true}\n # 数据库用户名\n username: ${db_user:}\n # 数据库密码\n password: ${db_password:}\n",charsets:{cjk:!0},lastUpdated:"2024/09/22, 14:02:43",lastUpdatedTimestamp:1726984963e3},{title:"客户端配置",frontmatter:{title:"客户端配置",date:"2023-06-09T21:15:35.000Z",permalink:"/pages/50ce10/"},regularPath:"/01.%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/02.%E4%BD%BF%E7%94%A8%E9%A1%BB%E7%9F%A5/06.%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%85%8D%E7%BD%AE.html",relativePath:"01.使用教程/02.使用须知/06.客户端配置.md",key:"v-740254eb",path:"/pages/50ce10/",headersStr:null,content:'提示\n\n1.9.0版本,客户端配置格式有所调整。从之前的版本升级的,需要注意\n\n\n# 以下是最新的客户端配置格式(app.yml)\n\n# 日志级别\nsolon.logging.logger:\n "root":\n level: info\n \nneutrino:\n proxy:\n tunnel:\n # 线程池相关配置,用于技术调优,可忽略\n thread-count: 50\n # 隧道SSL证书配置\n key-store-password: ${STORE_PASS:123456}\n jks-path: ${JKS_PATH:classpath:/test.jks}\n # 服务端IP\n server-ip: ${SERVER_IP:localhost}\n # 服务端端口(对应服务端app.yml中的tunnel.port、tunnel.ssl-port)\n server-port: ${SERVER_PORT:9002}\n # 是否启用SSL(注意:该配置必须和server-port对应上)\n ssl-enable: ${SSL_ENABLE:true}\n # 客户端连接唯一凭证\n license-key: ${LICENSE_KEY:}\n # 客户端唯一身份标识(可忽略,若不设置首次启动会自动生成)\n client-id: ${CLIENT_ID:}\n # 是否开启隧道传输报文日志(日志级别为debug时开启才有效)\n transfer-log-enable: ${CLIENT_LOG:false}\n # 是否开启心跳日志\n heartbeat-log-enable: ${HEARTBEAT_LOG:false}\n # 重连设置\n reconnection:\n # 重连间隔(秒)\n interval-seconds: 10\n # 是否开启无限重连(未开启时,客户端license不合法会自动停止应用,开启了则不会,请谨慎开启)\n unlimited: false\n client:\n udp:\n # 线程池相关配置,用于技术调优,可忽略\n boss-thread-count: 5\n work-thread-count: 20\n # udp傀儡端口范围\n puppet-port-range: 10000-10500\n # 是否开启隧道传输报文日志(日志级别为debug时开启才有效)\n transfer-log-enable: ${CLIENT_LOG:false}\n',normalizedContent:'提示\n\n1.9.0版本,客户端配置格式有所调整。从之前的版本升级的,需要注意\n\n\n# 以下是最新的客户端配置格式(app.yml)\n\n# 日志级别\nsolon.logging.logger:\n "root":\n level: info\n \nneutrino:\n proxy:\n tunnel:\n # 线程池相关配置,用于技术调优,可忽略\n thread-count: 50\n # 隧道ssl证书配置\n key-store-password: ${store_pass:123456}\n jks-path: ${jks_path:classpath:/test.jks}\n # 服务端ip\n server-ip: ${server_ip:localhost}\n # 服务端端口(对应服务端app.yml中的tunnel.port、tunnel.ssl-port)\n server-port: ${server_port:9002}\n # 是否启用ssl(注意:该配置必须和server-port对应上)\n ssl-enable: ${ssl_enable:true}\n # 客户端连接唯一凭证\n license-key: ${license_key:}\n # 客户端唯一身份标识(可忽略,若不设置首次启动会自动生成)\n client-id: ${client_id:}\n # 是否开启隧道传输报文日志(日志级别为debug时开启才有效)\n transfer-log-enable: ${client_log:false}\n # 是否开启心跳日志\n heartbeat-log-enable: ${heartbeat_log:false}\n # 重连设置\n reconnection:\n # 重连间隔(秒)\n interval-seconds: 10\n # 是否开启无限重连(未开启时,客户端license不合法会自动停止应用,开启了则不会,请谨慎开启)\n unlimited: false\n client:\n udp:\n # 线程池相关配置,用于技术调优,可忽略\n boss-thread-count: 5\n work-thread-count: 20\n # udp傀儡端口范围\n puppet-port-range: 10000-10500\n # 是否开启隧道传输报文日志(日志级别为debug时开启才有效)\n transfer-log-enable: ${client_log:false}\n',charsets:{cjk:!0},lastUpdated:"2023/11/02, 16:18:52",lastUpdatedTimestamp:1698913132e3},{title:"客户端连接服务端失败",frontmatter:{title:"客户端连接服务端失败",date:"2023-10-25T17:55:20.000Z",permalink:"/pages/31d253/"},regularPath:"/01.%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/99.%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/01.%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%BF%9E%E6%8E%A5%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%A4%B1%E8%B4%A5.html",relativePath:"01.使用教程/99.常见问题/01.客户端连接服务端失败.md",key:"v-6fc7fd0c",path:"/pages/31d253/",headers:[{level:2,title:"1.1. 启动日志包含not found license-key config相关字样",slug:"_1-1-启动日志包含not-found-license-key-config相关字样",normalizedTitle:"1.1. 启动日志包含not found license-key config相关字样",charIndex:2},{level:2,title:"1.2. 配置文件确定都已经配置,且启动参数正确指定了,但是没有出现认证成功日志",slug:"_1-2-配置文件确定都已经配置-且启动参数正确指定了-但是没有出现认证成功日志",normalizedTitle:"1.2. 配置文件确定都已经配置,且启动参数正确指定了,但是没有出现认证成功日志",charIndex:560}],headersStr:"1.1. 启动日志包含not found license-key config相关字样 1.2. 配置文件确定都已经配置,且启动参数正确指定了,但是没有出现认证成功日志",content:"# 1.1. 启动日志包含not found license-key config相关字样\n\n出现这种情况,说明客户端没获取到配置的license,可按如下检查:\n\n * 客户端是否有配置app.yml,app.yml中是否有配置license-key\n * 客户端启动参数是否指定app.yml配置,若未指定客户端不会加载任何jar外部的配置文件\n * 客户端启动参数指定的配置文件路径是否正确?如:java -jar neutrino-proxy-client.jar config=app.yml,代表app.yml文件与jar在同级别目录下,如果不在同级别目录,请使用绝对/相对路径指定\n * 除此之外license还可以用以下方法直接在启动参数中指定:\n * java -jar -DLICENSE_KEY=xxxx -DSERVER_IP=x.x.x.x -DSERVER_PORT=9000 -DSSL_ENABLE=false neutrino-proxy-client.jar\n * java -jar neutrino-proxy-client.jar serverIp=x.x.x.x serverPort=9000 sslEnable=false licenseKey=xxxx\n\n\n# 1.2. 配置文件确定都已经配置,且启动参数正确指定了,但是没有出现认证成功日志\n\n * 确认客户端配置的server-ip,必须是服务端所在机器的ip,且保证客户端所在机器能正常ping通\n * 确认客户端配置的server-port与ssl-enable,默认情况应配置为9000、false或9002、true,除非服务端app.yml有改动隧道对外端口\n * 确认服务端对外的9000、9002端口是否已经放开\n * 服务端如果采用docker部署,需要确保容器的9000、9002端口映射到宿主机",normalizedContent:"# 1.1. 启动日志包含not found license-key config相关字样\n\n出现这种情况,说明客户端没获取到配置的license,可按如下检查:\n\n * 客户端是否有配置app.yml,app.yml中是否有配置license-key\n * 客户端启动参数是否指定app.yml配置,若未指定客户端不会加载任何jar外部的配置文件\n * 客户端启动参数指定的配置文件路径是否正确?如:java -jar neutrino-proxy-client.jar config=app.yml,代表app.yml文件与jar在同级别目录下,如果不在同级别目录,请使用绝对/相对路径指定\n * 除此之外license还可以用以下方法直接在启动参数中指定:\n * java -jar -dlicense_key=xxxx -dserver_ip=x.x.x.x -dserver_port=9000 -dssl_enable=false neutrino-proxy-client.jar\n * java -jar neutrino-proxy-client.jar serverip=x.x.x.x serverport=9000 sslenable=false licensekey=xxxx\n\n\n# 1.2. 配置文件确定都已经配置,且启动参数正确指定了,但是没有出现认证成功日志\n\n * 确认客户端配置的server-ip,必须是服务端所在机器的ip,且保证客户端所在机器能正常ping通\n * 确认客户端配置的server-port与ssl-enable,默认情况应配置为9000、false或9002、true,除非服务端app.yml有改动隧道对外端口\n * 确认服务端对外的9000、9002端口是否已经放开\n * 服务端如果采用docker部署,需要确保容器的9000、9002端口映射到宿主机",charsets:{cjk:!0},lastUpdated:"2023/10/25, 18:20:43",lastUpdatedTimestamp:1698229243e3},{title:"易混淆的2类证书",frontmatter:{title:"易混淆的2类证书",date:"2023-10-25T17:56:59.000Z",permalink:"/pages/e4c3d7/"},regularPath:"/01.%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/99.%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/02.%E6%98%93%E6%B7%B7%E6%B7%86%E7%9A%842%E7%B1%BB%E8%AF%81%E4%B9%A6.html",relativePath:"01.使用教程/99.常见问题/02.易混淆的2类证书.md",key:"v-0394e880",path:"/pages/e4c3d7/",headers:[{level:2,title:"2.1. HTTPS证书",slug:"_2-1-https证书",normalizedTitle:"2.1. https证书",charIndex:2},{level:2,title:"2.2. 隧道SSL证书",slug:"_2-2-隧道ssl证书",normalizedTitle:"2.2. 隧道ssl证书",charIndex:56}],headersStr:"2.1. HTTPS证书 2.2. 隧道SSL证书",content:'# 2.1. HTTPS证书\n\n该证书用于服务端支持HTTPS,若需要在服务端app.yml中配置即可\n\n\n# 2.2. 隧道SSL证书\n\n该证书用于对客户端-服务端之间的数据通信进行加密,因此客户端/服务端均需要配置该证书。可参考如下命令生成:\n\nkeytool -genkey -alias test1 -keyalg RSA -keysize 1024 -validity 3650 -keypass 123456 -storepass 123456 -keystore "./test.jks"\n',normalizedContent:'# 2.1. https证书\n\n该证书用于服务端支持https,若需要在服务端app.yml中配置即可\n\n\n# 2.2. 隧道ssl证书\n\n该证书用于对客户端-服务端之间的数据通信进行加密,因此客户端/服务端均需要配置该证书。可参考如下命令生成:\n\nkeytool -genkey -alias test1 -keyalg rsa -keysize 1024 -validity 3650 -keypass 123456 -storepass 123456 -keystore "./test.jks"\n',charsets:{cjk:!0},lastUpdated:"2023/10/25, 18:20:43",lastUpdatedTimestamp:1698229243e3},{title:"udp代理无效",frontmatter:{title:"udp代理无效",date:"2023-10-25T17:58:35.000Z",permalink:"/pages/7b990f/"},regularPath:"/01.%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/99.%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/03.udp%E4%BB%A3%E7%90%86%E6%97%A0%E6%95%88.html",relativePath:"01.使用教程/99.常见问题/03.udp代理无效.md",key:"v-013a9917",path:"/pages/7b990f/",headers:[{level:2,title:"问题描述",slug:"问题描述",normalizedTitle:"问题描述",charIndex:2},{level:2,title:"解决方案",slug:"解决方案",normalizedTitle:"解决方案",charIndex:80}],headersStr:"问题描述 解决方案",content:"# 问题描述\n\n代理本地udp端口9231,公网访问代理端口无效,代理端口测试发送成功,但是本地服务没有收到,使用路由器的ddns功能也可以成功代理。\n\n\n# 解决方案\n\n * 防火墙开放端口的时候一定要指定udp协议\n * 还有如果想收到回复需要配置两个响应参数\n * 响应数量根据实际响应数量配置,可以配置的大一些,但是不能比实际小\n * 超时时间根据实际响应时间配置,比如正常响应时间是10s,这里就可以配置15000毫秒等\n * 相关链接:1.9.0版本udp代理无效 · Issue #I83XOI · dromara/neutrino-proxy - Gitee.com\n * 贡献者:gitee:眉黛如画",normalizedContent:"# 问题描述\n\n代理本地udp端口9231,公网访问代理端口无效,代理端口测试发送成功,但是本地服务没有收到,使用路由器的ddns功能也可以成功代理。\n\n\n# 解决方案\n\n * 防火墙开放端口的时候一定要指定udp协议\n * 还有如果想收到回复需要配置两个响应参数\n * 响应数量根据实际响应数量配置,可以配置的大一些,但是不能比实际小\n * 超时时间根据实际响应时间配置,比如正常响应时间是10s,这里就可以配置15000毫秒等\n * 相关链接:1.9.0版本udp代理无效 · issue #i83xoi · dromara/neutrino-proxy - gitee.com\n * 贡献者:gitee:眉黛如画",charsets:{cjk:!0},lastUpdated:"2023/10/25, 18:20:43",lastUpdatedTimestamp:1698229243e3},{title:"Vue项目出现Invalid Host header 的解决方案",frontmatter:{title:"Vue项目出现Invalid Host header 的解决方案",date:"2023-10-25T17:59:29.000Z",permalink:"/pages/441163/"},regularPath:"/01.%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/99.%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/04.Vue%E9%A1%B9%E7%9B%AE%E5%87%BA%E7%8E%B0Invalid%20Host%20header%20%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88.html",relativePath:"01.使用教程/99.常见问题/04.Vue项目出现Invalid Host header 的解决方案.md",key:"v-563388f8",path:"/pages/441163/",headers:[{level:2,title:"问题描述",slug:"问题描述",normalizedTitle:"问题描述",charIndex:2},{level:2,title:"解决方案",slug:"解决方案",normalizedTitle:"解决方案",charIndex:41}],headersStr:"问题描述 解决方案",content:'# 问题描述\n\n内网穿透 Vue项目出现Invalid Host header 的解决方案\n\n\n# 解决方案\n\nmanifest.json中配置\n\n"h5":{\n\t\t"devServer":{\n\t\t\t"disableHostCheck":true\n\t\t}\n},\n\n\n * 相关链接:内网穿透 Vue项目出现Invalid Host header 的解决方案\n * 贡献者:wx:明天会更好',normalizedContent:'# 问题描述\n\n内网穿透 vue项目出现invalid host header 的解决方案\n\n\n# 解决方案\n\nmanifest.json中配置\n\n"h5":{\n\t\t"devserver":{\n\t\t\t"disablehostcheck":true\n\t\t}\n},\n\n\n * 相关链接:内网穿透 vue项目出现invalid host header 的解决方案\n * 贡献者:wx:明天会更好',charsets:{cjk:!0},lastUpdated:"2023/10/25, 18:20:43",lastUpdatedTimestamp:1698229243e3},{title:"服务端原声包启动,db初始化异常",frontmatter:{title:"服务端原声包启动,db初始化异常",date:"2024-11-09T15:28:37.000Z",permalink:"/pages/7dcba8/"},regularPath:"/01.%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/99.%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/05.%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%8E%9F%E5%A3%B0%E5%8C%85%E5%90%AF%E5%8A%A8%EF%BC%8Cdb%E5%88%9D%E5%A7%8B%E5%8C%96%E5%BC%82%E5%B8%B8.html",relativePath:"01.使用教程/99.常见问题/05.服务端原声包启动,db初始化异常.md",key:"v-78c455d8",path:"/pages/7dcba8/",headers:[{level:2,title:"1.1、报错“Data truncation: Data too long for column 'name' at row 1”",slug:"_1-1、报错-data-truncation-data-too-long-for-column-name-at-row-1",normalizedTitle:"1.1、报错“data truncation: data too long for column 'name' at row 1”",charIndex:2}],headersStr:"1.1、报错“Data truncation: Data too long for column 'name' at row 1”",content:"# 1.1、报错“Data truncation: Data too long for column 'name' at row 1”\n\n配置文件中配置的mysql连接地址,去掉“characterEncoding=UTF-8”参数",normalizedContent:"# 1.1、报错“data truncation: data too long for column 'name' at row 1”\n\n配置文件中配置的mysql连接地址,去掉“characterencoding=utf-8”参数",charsets:{cjk:!0},lastUpdated:"2024/11/09, 15:33:29",lastUpdatedTimestamp:1731137609e3},{title:"主题配置",frontmatter:{title:"主题配置",date:"2020-05-12T14:57:21.000Z",permalink:"/pages/a20ce8",article:!1},regularPath:"/02.%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/01.%E9%85%8D%E7%BD%AE/01.%E4%B8%BB%E9%A2%98%E9%85%8D%E7%BD%AE.html",relativePath:"02.常见问题/01.配置/01.主题配置.md",key:"v-01fd51c3",path:"/pages/a20ce8/",headers:[{level:2,title:"是否打开分类、标签、归档",slug:"是否打开分类、标签、归档",normalizedTitle:"是否打开分类、标签、归档",charIndex:107},{level:3,title:"category",slug:"category",normalizedTitle:"category",charIndex:124},{level:3,title:"tag",slug:"tag",normalizedTitle:"tag",charIndex:271},{level:3,title:"archive",slug:"archive",normalizedTitle:"archive",charIndex:413},{level:3,title:"使用分类页、标签页、归档页链接",slug:"使用分类页、标签页、归档页链接",normalizedTitle:"使用分类页、标签页、归档页链接",charIndex:560},{level:2,title:"碎片化文章默认分类值",slug:"碎片化文章默认分类值",normalizedTitle:"碎片化文章默认分类值",charIndex:682},{level:3,title:"categoryText",slug:"categorytext",normalizedTitle:"categorytext",charIndex:697},{level:2,title:"页面风格",slug:"页面风格",normalizedTitle:"页面风格",charIndex:768},{level:3,title:"pageStyle",slug:"pagestyle",normalizedTitle:"pagestyle",charIndex:777},{level:3,title:"defaultMode",slug:"defaultmode",normalizedTitle:"defaultmode",charIndex:932},{level:2,title:"body背景大图",slug:"body背景大图",normalizedTitle:"body背景大图",charIndex:1056},{level:3,title:"bodyBgImg",slug:"bodybgimg",normalizedTitle:"bodybgimg",charIndex:833},{level:3,title:"bodyBgImgOpacity",slug:"bodybgimgopacity",normalizedTitle:"bodybgimgopacity",charIndex:1190},{level:3,title:"bodyBgImgInterval",slug:"bodybgimginterval",normalizedTitle:"bodybgimginterval",charIndex:1162},{level:2,title:"文章标题前的图标",slug:"文章标题前的图标",normalizedTitle:"文章标题前的图标",charIndex:1335},{level:3,title:"titleBadge",slug:"titlebadge",normalizedTitle:"titlebadge",charIndex:1348},{level:3,title:"titleBadgeIcons",slug:"titlebadgeicons",normalizedTitle:"titlebadgeicons",charIndex:1401},{level:2,title:"文章内容块的背景底纹",slug:"文章内容块的背景底纹",normalizedTitle:"文章内容块的背景底纹",charIndex:1456},{level:3,title:"contentBgStyle",slug:"contentbgstyle",normalizedTitle:"contentbgstyle",charIndex:1471},{level:2,title:"侧边栏",slug:"侧边栏",normalizedTitle:"侧边栏",charIndex:1598},{level:3,title:"sidebar",slug:"sidebar",normalizedTitle:"sidebar",charIndex:1606},{level:3,title:"sidebarOpen",slug:"sidebaropen",normalizedTitle:"sidebaropen",charIndex:1860},{level:3,title:"对指定页面禁用侧边栏",slug:"对指定页面禁用侧边栏",normalizedTitle:"对指定页面禁用侧边栏",charIndex:1958},{level:3,title:"碎片化文章的侧边栏",slug:"碎片化文章的侧边栏",normalizedTitle:"碎片化文章的侧边栏",charIndex:2031},{level:2,title:"最近更新栏",slug:"最近更新栏",normalizedTitle:"最近更新栏",charIndex:2118},{level:3,title:"updateBar",slug:"updatebar",normalizedTitle:"updatebar",charIndex:2128},{level:3,title:"非文章页的设置",slug:"非文章页的设置",normalizedTitle:"非文章页的设置",charIndex:2316},{level:2,title:"右侧文章大纲栏",slug:"右侧文章大纲栏",normalizedTitle:"右侧文章大纲栏",charIndex:2471},{level:3,title:"rightMenuBar",slug:"rightmenubar",normalizedTitle:"rightmenubar",charIndex:2483},{level:2,title:"快捷翻页按钮",slug:"快捷翻页按钮",normalizedTitle:"快捷翻页按钮",charIndex:2611},{level:3,title:"pageButton",slug:"pagebutton",normalizedTitle:"pagebutton",charIndex:2622},{level:2,title:"文章作者信息",slug:"文章作者信息",normalizedTitle:"文章作者信息",charIndex:2703},{level:3,title:"author",slug:"author",normalizedTitle:"author",charIndex:2714},{level:3,title:"指定的文章作者信息",slug:"指定的文章作者信息",normalizedTitle:"指定的文章作者信息",charIndex:2834},{level:2,title:"博主信息",slug:"博主信息",normalizedTitle:"博主信息",charIndex:2971},{level:3,title:"blogger",slug:"blogger",normalizedTitle:"blogger",charIndex:2980},{level:2,title:"社交图标",slug:"社交图标",normalizedTitle:"社交图标",charIndex:3135},{level:3,title:"social",slug:"social",normalizedTitle:"social",charIndex:3144},{level:3,title:"主题内置的社交图标",slug:"主题内置的社交图标",normalizedTitle:"主题内置的社交图标",charIndex:3439},{level:2,title:"扩展自动生成front matter",slug:"扩展自动生成front-matter",normalizedTitle:"扩展自动生成front matter",charIndex:3700},{level:3,title:"extendFrontmatter",slug:"extendfrontmatter",normalizedTitle:"extendfrontmatter",charIndex:3723},{level:2,title:"页脚版权栏",slug:"页脚版权栏",normalizedTitle:"页脚版权栏",charIndex:4080},{level:3,title:"footer",slug:"footer",normalizedTitle:"footer",charIndex:4090},{level:2,title:"自定义html模块",slug:"自定义html模块",normalizedTitle:"自定义html模块",charIndex:4298},{level:3,title:"htmlModules",slug:"htmlmodules",normalizedTitle:"htmlmodules",charIndex:4325}],headersStr:"是否打开分类、标签、归档 category tag archive 使用分类页、标签页、归档页链接 碎片化文章默认分类值 categoryText 页面风格 pageStyle defaultMode body背景大图 bodyBgImg bodyBgImgOpacity bodyBgImgInterval 文章标题前的图标 titleBadge titleBadgeIcons 文章内容块的背景底纹 contentBgStyle 侧边栏 sidebar sidebarOpen 对指定页面禁用侧边栏 碎片化文章的侧边栏 最近更新栏 updateBar 非文章页的设置 右侧文章大纲栏 rightMenuBar 快捷翻页按钮 pageButton 文章作者信息 author 指定的文章作者信息 博主信息 blogger 社交图标 social 主题内置的社交图标 扩展自动生成front matter extendFrontmatter 页脚版权栏 footer 自定义html模块 htmlModules",content:"主题的配置在.vuepress/config.ts文件的themeConfig字段中,是在原有配置的基础上做的新增和修改,配置示例请查看:config.ts。\n\n更多官方配置,请查看vuepress文档。\n\n\n# 是否打开分类、标签、归档\n\n\n# category\n\n * 类型:boolean\n * 默认:true\n\n是否打开分类功能。 如打开,会做的事情有:\n\n 1. 自动生成的front matter包含分类字段\n 2. 页面中显示与分类相关的信息和模块\n 3. 自动生成分类页面(在@pages文件夹)\n\n如关闭,则反之。\n\n\n# tag\n\n * 类型:boolean\n * 默认:true\n\n是否打开标签功能。 如打开,会做的事情有:\n\n 1. 自动生成的front matter包含标签字段\n 2. 页面中显示与标签相关的信息和模块\n 3. 自动生成标签页面(在@pages文件夹)\n\n如关闭,则反之。\n\n\n# archive\n\n * 类型:boolean\n * 默认:true\n\n是否打开归档功能。 如打开,会做的事情有:\n\n 1. 自动生成归档页面(在@pages文件夹)\n\n如关闭,则反之。\n\n提示\n\n如果你仅仅是想使用这个主题来搭建知识库,并不想使用分类、标签、归档功能,就可以关闭它们。\n\n\n# 使用分类页、标签页、归档页链接\n\n当你打开了分类、标签、归档功能,就可以在导航或其他地方添加分类页、标签页、归档页的链接:\n\n * 分类页: /categories/\n * 标签页: /tags/\n * 归档页: /archives/\n\n\n# 碎片化文章默认分类值\n\n\n# categoryText\n\n * 类型:string\n * 默认:'随笔'\n\n碎片化文章(_posts文件夹的文章)默认生成的分类值\n\n\n# 页面风格\n\n\n# pageStyle\n\n * 类型:string\n * 可选值:'card' | 'line' (line在未设置bodyBgImg时才生效)\n * 默认:'card'\n\n页面风格,card时背景显示灰色衬托出卡片样式,line时背景显示纯色,并且部分模块带线条边框(未设置bodyBgImg时才生效)\n\n\n# defaultMode\n\n * 类型:string\n * 可选值:'auto' | 'light' | 'dark' | 'read'\n * 默认:'auto'\n\n默认外观模式,用户未在页面手动修改过模式时才生效,否则以用户设置的模式为准\n\n\n# body背景大图\n\n\n# bodyBgImg\n\n * 类型:string | array\n * 默认:undefined\n\nbody背景大图,单张图片使用String,多张图片使用Array, 多张图片时每隔 <bodyBgImgInterval> 秒换一张\n\n\n# bodyBgImgOpacity\n\n * 类型:number\n * 默认:0.5\n * 选值范围:0 ~ 1.0\n\nbody背景图透明度\n\n\n# bodyBgImgInterval\n\n * 类型:number\n * 默认:15\n * 单位:s\n\nbody有多张背景大图时的切换间隔\n\n\n# 文章标题前的图标\n\n\n# titleBadge\n\n * 类型:boolean\n * 默认:true\n\n是否打开文章标题图标\n\n\n# titleBadgeIcons\n\n * 类型:array\n * 默认:内置图标\n\n文章标题图标的地址\n\n\n# 文章内容块的背景底纹\n\n\n# contentBgStyle\n\n * 类型:number\n * 默认:undefined\n * 选值:1 => 方格 | 2 => 横线 | 3 => 竖线 | 4 => 左斜线 | 5 => 右斜线 | 6 => 点状\n\n文章内容块的背景底纹\n\n\n# 侧边栏\n\n\n# sidebar\n\n * 类型:srting | object | array\n * 在默认主题原有的配置上新增两项参数:\n * 'structuring' 自动生成结构化侧边栏\n * { mode: 'structuring', collapsable: Boolean} 自动生成结构化侧边栏,并设置侧边栏是否可折叠,默认true\n\n提示\n\n如需构建结构化站点请把此配置设置为structuring 或 { mode: 'structuring', collapsable: false}\n\n\n# sidebarOpen\n\n * 类型:boolean\n * 默认:true\n\n初始状态下是否打开侧边栏\n\n提示\n\n在侧边栏关闭状态下,页面向下滚动时会隐藏顶部导航栏,让用户更专注于阅读。\n\n\n# 对指定页面禁用侧边栏\n\n你可以通过 front matter 来禁用指定页面的侧边栏:\n\n---\nsidebar: false\n---\n\n\n\n# 碎片化文章的侧边栏\n\n在_posts文件夹的文章会自动在 front matter 添加 sidebar: auto\n\n---\nsidebar: auto\n---\n\n\n\n# 最近更新栏\n\n\n# updateBar\n\n * 类型:object\n * 默认:{showToArticle: true, moreArticle: '/archives/'}\n * showToArticle 显示到文章页底部,默认true\n * moreArticle “更多文章”跳转的页面,默认'/archives/'\n\n最近更新栏,显示于文章页底部和简约版首页文章列表\n\n\n# 非文章页的设置\n\n对于非文章页,如目录页、关于、友情链接等自定义页面,最好在front matter设置article: false,设置之后这个页面将被认定为非文章页,不显示面包屑和作者、时间,不显示最近更新栏,不会参与到最近更新文章的数据计算中。\n\n---\narticle: false\n---\n\n\n\n# 右侧文章大纲栏\n\n\n# rightMenuBar\n\n * 类型:boolean\n * 默认:true\n\n是否显示右侧文章大纲栏。设置为false或屏宽小于1300px时,文章大纲将与左侧侧边栏混合在一起。 (注:在屏宽小于1300px下无论如何都不显示右侧文章大纲栏。)\n\n\n# 快捷翻页按钮\n\n\n# pageButton\n\n * 类型:boolean\n * 默认:true\n\n是否显示快捷翻页按钮 (此按钮是文章页左右两边的箭头按钮,小屏中不会显示。)\n\n\n# 文章作者信息\n\n\n# author\n\n * 类型:string | {name: String, link: String}\n * 默认:undefined\n * 属性:\n * name 作者名称\n * link 作者链接\n\n文章默认的作者信息\n\n\n# 指定的文章作者信息\n\n你也可以在指定的文章front matter设置作者信息,优先级比默认作者信息高,示例:\n\n---\nauthor:\n name: 作者名\n link: https://xxx.com\n---\n 或\n---\nauthor: 作者名\n---\n\n\n\n# 博主信息\n\n\n# blogger\n\n * 参数和类型:{avatar: String, name: String, slogan: String}\n * 默认:undefined\n * avatar 头像,必需\n * name 博主名称,必需\n * slogan 标语,可选\n\n博主信息显示于首页博主信息栏\n\n\n# 社交图标\n\n\n# social\n\n * 参数和类型:{iconfontCssFile: String, icons: [{iconClass: String, title: String, link: String}]}\n * 默认:undefined\n * iconfontCssFile 可选,阿里图标库(或其他)的在线css字体图标文件地址,对于主题没有的图标可自由添加\n * icons 图标列表,数量自由\n * iconClass 图标的Class名称\n * title 图标的title\n * link 图标的跳转链接\n\n社交图标显示于博主信息栏和页脚栏\n\n\n# 主题内置的社交图标\n\n微信 QQ 邮件 npm github gitee 微博\n \nicon-weixin icon-QQ icon-youjian icon-npm icon-github icon-gitee icon-weibo\n\n\n# 扩展自动生成front matter\n\n\n# extendFrontmatter\n\n * 类型:Object\n * 默认:undefined\n\n当.md文件的front matter不存在extendFrontmatter内相应的字段时,将在运行开发服务dev或打包build时自动添加,但不会覆盖已有的数据。\n\n例子:\n\nextendFrontmatter: {\n author: {\n name: 'xugaoyi',\n link: 'https://github.com/xugaoyi'\n },\n titleTag: '',\n}\n\n\n生成到front matter:\n\n---\nauthor:\n name: xugaoyi\n link: https://github.com/xugaoyi\ntitleTag:\n---\n\n\n\n# 页脚版权栏\n\n\n# footer\n\n * 参数和类型:{createYear: Number | String, copyrightInfo: String}\n * 默认:undefined\n * createYear 博客创建的年份\n * copyrightInfo 可以配置包括版权信息、备案信息在内的所有信息,支持a标签\n\n页脚版权栏信息,原默认主题在首页的front matter中的footer配置项已弃用。\n\n\n# 自定义html模块\n\n> 可用于插入广告模块\n\n\n# htmlModules\n\n * 类型:object\n\n * 默认:undefined\n\n * 属性:\n \n * homeSidebarB 首页侧边栏底部\n * sidebarT 所有左侧边栏顶部\n * sidebarB 所有左侧边栏底部\n * pageT 页面顶部\n * pageB 页面底部\n * pageTshowMode 页面顶部的显示方式\n * 未配置 默认所有页面显示\n * 'article' 仅文章页①显示\n * 'custom' 仅自定义页①显示\n * pageBshowMode 页面底部的显示方式\n * 未配置 默认全局显示\n * 'article' 仅文章页①显示\n * 'custom' 仅自定义页①显示\n * windowLB 全局窗口左下角②\n * windowRB 全局窗口右下角②\n \n \n > ①注:在.md文件front matter配置article: false的页面是自定义页,未配置的默认是文章页(首页除外)。\n > \n > ②注:windowLB 和 windowRB:1.展示区块最大宽高200px*400px。2.请给自定义元素定一个不超过200px*400px的宽高。3.在屏幕宽度小于960px时无论如何都不会显示。\n\n * 格式:\n\nhtmlModules: {\n homeSidebarB: htmlString,\n sidebarT: htmlString,\n sidebarB: htmlString,\n pageT: htmlString,\n pageB: htmlString,\n pageTshowMode: 'article' | 'custom',\n pageBshowMode: 'article' | 'custom',\n windowLB: htmlString,\n windowRB: htmlString,\n }\n",normalizedContent:"主题的配置在.vuepress/config.ts文件的themeconfig字段中,是在原有配置的基础上做的新增和修改,配置示例请查看:config.ts。\n\n更多官方配置,请查看vuepress文档。\n\n\n# 是否打开分类、标签、归档\n\n\n# category\n\n * 类型:boolean\n * 默认:true\n\n是否打开分类功能。 如打开,会做的事情有:\n\n 1. 自动生成的front matter包含分类字段\n 2. 页面中显示与分类相关的信息和模块\n 3. 自动生成分类页面(在@pages文件夹)\n\n如关闭,则反之。\n\n\n# tag\n\n * 类型:boolean\n * 默认:true\n\n是否打开标签功能。 如打开,会做的事情有:\n\n 1. 自动生成的front matter包含标签字段\n 2. 页面中显示与标签相关的信息和模块\n 3. 自动生成标签页面(在@pages文件夹)\n\n如关闭,则反之。\n\n\n# archive\n\n * 类型:boolean\n * 默认:true\n\n是否打开归档功能。 如打开,会做的事情有:\n\n 1. 自动生成归档页面(在@pages文件夹)\n\n如关闭,则反之。\n\n提示\n\n如果你仅仅是想使用这个主题来搭建知识库,并不想使用分类、标签、归档功能,就可以关闭它们。\n\n\n# 使用分类页、标签页、归档页链接\n\n当你打开了分类、标签、归档功能,就可以在导航或其他地方添加分类页、标签页、归档页的链接:\n\n * 分类页: /categories/\n * 标签页: /tags/\n * 归档页: /archives/\n\n\n# 碎片化文章默认分类值\n\n\n# categorytext\n\n * 类型:string\n * 默认:'随笔'\n\n碎片化文章(_posts文件夹的文章)默认生成的分类值\n\n\n# 页面风格\n\n\n# pagestyle\n\n * 类型:string\n * 可选值:'card' | 'line' (line在未设置bodybgimg时才生效)\n * 默认:'card'\n\n页面风格,card时背景显示灰色衬托出卡片样式,line时背景显示纯色,并且部分模块带线条边框(未设置bodybgimg时才生效)\n\n\n# defaultmode\n\n * 类型:string\n * 可选值:'auto' | 'light' | 'dark' | 'read'\n * 默认:'auto'\n\n默认外观模式,用户未在页面手动修改过模式时才生效,否则以用户设置的模式为准\n\n\n# body背景大图\n\n\n# bodybgimg\n\n * 类型:string | array\n * 默认:undefined\n\nbody背景大图,单张图片使用string,多张图片使用array, 多张图片时每隔 <bodybgimginterval> 秒换一张\n\n\n# bodybgimgopacity\n\n * 类型:number\n * 默认:0.5\n * 选值范围:0 ~ 1.0\n\nbody背景图透明度\n\n\n# bodybgimginterval\n\n * 类型:number\n * 默认:15\n * 单位:s\n\nbody有多张背景大图时的切换间隔\n\n\n# 文章标题前的图标\n\n\n# titlebadge\n\n * 类型:boolean\n * 默认:true\n\n是否打开文章标题图标\n\n\n# titlebadgeicons\n\n * 类型:array\n * 默认:内置图标\n\n文章标题图标的地址\n\n\n# 文章内容块的背景底纹\n\n\n# contentbgstyle\n\n * 类型:number\n * 默认:undefined\n * 选值:1 => 方格 | 2 => 横线 | 3 => 竖线 | 4 => 左斜线 | 5 => 右斜线 | 6 => 点状\n\n文章内容块的背景底纹\n\n\n# 侧边栏\n\n\n# sidebar\n\n * 类型:srting | object | array\n * 在默认主题原有的配置上新增两项参数:\n * 'structuring' 自动生成结构化侧边栏\n * { mode: 'structuring', collapsable: boolean} 自动生成结构化侧边栏,并设置侧边栏是否可折叠,默认true\n\n提示\n\n如需构建结构化站点请把此配置设置为structuring 或 { mode: 'structuring', collapsable: false}\n\n\n# sidebaropen\n\n * 类型:boolean\n * 默认:true\n\n初始状态下是否打开侧边栏\n\n提示\n\n在侧边栏关闭状态下,页面向下滚动时会隐藏顶部导航栏,让用户更专注于阅读。\n\n\n# 对指定页面禁用侧边栏\n\n你可以通过 front matter 来禁用指定页面的侧边栏:\n\n---\nsidebar: false\n---\n\n\n\n# 碎片化文章的侧边栏\n\n在_posts文件夹的文章会自动在 front matter 添加 sidebar: auto\n\n---\nsidebar: auto\n---\n\n\n\n# 最近更新栏\n\n\n# updatebar\n\n * 类型:object\n * 默认:{showtoarticle: true, morearticle: '/archives/'}\n * showtoarticle 显示到文章页底部,默认true\n * morearticle “更多文章”跳转的页面,默认'/archives/'\n\n最近更新栏,显示于文章页底部和简约版首页文章列表\n\n\n# 非文章页的设置\n\n对于非文章页,如目录页、关于、友情链接等自定义页面,最好在front matter设置article: false,设置之后这个页面将被认定为非文章页,不显示面包屑和作者、时间,不显示最近更新栏,不会参与到最近更新文章的数据计算中。\n\n---\narticle: false\n---\n\n\n\n# 右侧文章大纲栏\n\n\n# rightmenubar\n\n * 类型:boolean\n * 默认:true\n\n是否显示右侧文章大纲栏。设置为false或屏宽小于1300px时,文章大纲将与左侧侧边栏混合在一起。 (注:在屏宽小于1300px下无论如何都不显示右侧文章大纲栏。)\n\n\n# 快捷翻页按钮\n\n\n# pagebutton\n\n * 类型:boolean\n * 默认:true\n\n是否显示快捷翻页按钮 (此按钮是文章页左右两边的箭头按钮,小屏中不会显示。)\n\n\n# 文章作者信息\n\n\n# author\n\n * 类型:string | {name: string, link: string}\n * 默认:undefined\n * 属性:\n * name 作者名称\n * link 作者链接\n\n文章默认的作者信息\n\n\n# 指定的文章作者信息\n\n你也可以在指定的文章front matter设置作者信息,优先级比默认作者信息高,示例:\n\n---\nauthor:\n name: 作者名\n link: https://xxx.com\n---\n 或\n---\nauthor: 作者名\n---\n\n\n\n# 博主信息\n\n\n# blogger\n\n * 参数和类型:{avatar: string, name: string, slogan: string}\n * 默认:undefined\n * avatar 头像,必需\n * name 博主名称,必需\n * slogan 标语,可选\n\n博主信息显示于首页博主信息栏\n\n\n# 社交图标\n\n\n# social\n\n * 参数和类型:{iconfontcssfile: string, icons: [{iconclass: string, title: string, link: string}]}\n * 默认:undefined\n * iconfontcssfile 可选,阿里图标库(或其他)的在线css字体图标文件地址,对于主题没有的图标可自由添加\n * icons 图标列表,数量自由\n * iconclass 图标的class名称\n * title 图标的title\n * link 图标的跳转链接\n\n社交图标显示于博主信息栏和页脚栏\n\n\n# 主题内置的社交图标\n\n微信 qq 邮件 npm github gitee 微博\n \nicon-weixin icon-qq icon-youjian icon-npm icon-github icon-gitee icon-weibo\n\n\n# 扩展自动生成front matter\n\n\n# extendfrontmatter\n\n * 类型:object\n * 默认:undefined\n\n当.md文件的front matter不存在extendfrontmatter内相应的字段时,将在运行开发服务dev或打包build时自动添加,但不会覆盖已有的数据。\n\n例子:\n\nextendfrontmatter: {\n author: {\n name: 'xugaoyi',\n link: 'https://github.com/xugaoyi'\n },\n titletag: '',\n}\n\n\n生成到front matter:\n\n---\nauthor:\n name: xugaoyi\n link: https://github.com/xugaoyi\ntitletag:\n---\n\n\n\n# 页脚版权栏\n\n\n# footer\n\n * 参数和类型:{createyear: number | string, copyrightinfo: string}\n * 默认:undefined\n * createyear 博客创建的年份\n * copyrightinfo 可以配置包括版权信息、备案信息在内的所有信息,支持a标签\n\n页脚版权栏信息,原默认主题在首页的front matter中的footer配置项已弃用。\n\n\n# 自定义html模块\n\n> 可用于插入广告模块\n\n\n# htmlmodules\n\n * 类型:object\n\n * 默认:undefined\n\n * 属性:\n \n * homesidebarb 首页侧边栏底部\n * sidebart 所有左侧边栏顶部\n * sidebarb 所有左侧边栏底部\n * paget 页面顶部\n * pageb 页面底部\n * pagetshowmode 页面顶部的显示方式\n * 未配置 默认所有页面显示\n * 'article' 仅文章页①显示\n * 'custom' 仅自定义页①显示\n * pagebshowmode 页面底部的显示方式\n * 未配置 默认全局显示\n * 'article' 仅文章页①显示\n * 'custom' 仅自定义页①显示\n * windowlb 全局窗口左下角②\n * windowrb 全局窗口右下角②\n \n \n > ①注:在.md文件front matter配置article: false的页面是自定义页,未配置的默认是文章页(首页除外)。\n > \n > ②注:windowlb 和 windowrb:1.展示区块最大宽高200px*400px。2.请给自定义元素定一个不超过200px*400px的宽高。3.在屏幕宽度小于960px时无论如何都不会显示。\n\n * 格式:\n\nhtmlmodules: {\n homesidebarb: htmlstring,\n sidebart: htmlstring,\n sidebarb: htmlstring,\n paget: htmlstring,\n pageb: htmlstring,\n pagetshowmode: 'article' | 'custom',\n pagebshowmode: 'article' | 'custom',\n windowlb: htmlstring,\n windowrb: htmlstring,\n }\n",charsets:{cjk:!0},lastUpdated:"2023/03/15, 13:11:57",lastUpdatedTimestamp:1678857117e3},{title:"首页配置",frontmatter:{title:"首页配置",date:"2020-05-12T15:36:50.000Z",permalink:"/pages/f14bdb",article:!1},regularPath:"/02.%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/01.%E9%85%8D%E7%BD%AE/02.%E9%A6%96%E9%A1%B5%E9%85%8D%E7%BD%AE.html",relativePath:"02.常见问题/01.配置/02.首页配置.md",key:"v-766eb953",path:"/pages/f14bdb/",headers:[{level:3,title:"bannerBg",slug:"bannerbg",normalizedTitle:"bannerbg",charIndex:219},{level:3,title:"features",slug:"features",normalizedTitle:"features",charIndex:373},{level:3,title:"postList",slug:"postlist",normalizedTitle:"postlist",charIndex:776},{level:3,title:"simplePostListLength",slug:"simplepostlistlength",normalizedTitle:"simplepostlistlength",charIndex:797},{level:3,title:"hideRightBar",slug:"hiderightbar",normalizedTitle:"hiderightbar",charIndex:871}],headersStr:"bannerBg features postList simplePostListLength hideRightBar",content:"在docs目录下的index.md或README.md的 front matter 指定 home: true,就会为你的站点生成一个首页,示例:\n\n---\nhome: true\n# heroImage: /img/web.png\nheroText: Evan's blog\ntagline: Web前端技术博客,积跬步以至千里,致敬每个爱学习的你。\n# actionText: 立刻进入 →\n# actionLink: /web/\n# bannerBg: auto # auto => 网格纹背景(有bodyBgImg时无背景),默认 | none => 无 | '大图地址' | background: 自定义背景样式 提示:如发现文本颜色不适应你的背景时可以到palette.styl修改$bannerTextColor变量\n\nfeatures: # 可选的\n - title: 前端\n details: JavaScript、ES6、Vue框架等前端技术\n link: /web/ # 可选\n imgUrl: /img/web.png # 可选\n - title: 页面\n details: html(5)/css(3),前端页面相关技术\n link: /ui/\n imgUrl: /img/ui.png\n - title: 技术\n details: 技术文档、教程、技巧、总结等文章\n link: /technology/\n imgUrl: /img/other.png\n\n# 文章列表显示方式: detailed 默认,显示详细版文章列表(包括作者、分类、标签、摘要、分页等)| simple => 显示简约版文章列表(仅标题和日期)| none 不显示文章列表\n# postList: detailed\n# simplePostListLength: 10 # 简约版文章列表显示的文章数量,默认10。(仅在postList设置为simple时生效)\n# hideRightBar: true # 是否隐藏右侧边栏 (v1.11.2+)\n---\n\n\n一些字段还是沿用默认主题的,这里只对修改的地方做一个补充。\n\n\n# bannerBg\n\n * 类型:string\n * 可选参数:\n * auto 自动背景,一般会显示网格纹背景,如果在config.js设置了bodyBgImg时则无背景\n * none 无背景\n * <大图地址>,如/img/bg.jpeg\n * background: <自定义背景样式>,如background: blue\n * 默认: auto\n\n\n# features\n\n * 类型:{title: string, details: string, link?: string, imgUrl?: string}[]\n\nfeatures是在banner栏显示的特性描述,主题添加了图片的展示和点击跳转的链接\n\n * features[index].link 当前feature跳转的链接,可选\n * features[index].imgUrl 当前feature的图片地址,可选\n\n\n# postList\n\n * 类型:'detailed' | 'simple' | 'none'\n * 可选参数:\n * detailed 显示详细版文章列表(包括标题、日期、作者、分类、标签、摘要、分页等)\n * simple 显示简约版文章列表(仅标题和日期)\n * none 不显示文章列表\n * 默认: detailed\n\n首页内容中的文章列表显示方式\n\n\n# simplePostListLength\n\n * 类型:number\n * 默认: 10\n\n简约版文章列表显示的文章数量,默认10。(仅在postList设置为simple时生效)\n\n\n# hideRightBar\n\n * 类型:boolean\n * 默认: false\n\n是否隐藏右侧边栏\n\n注意\n\n原默认主题首页的footer字段已改到config.js文件里设置",normalizedContent:"在docs目录下的index.md或readme.md的 front matter 指定 home: true,就会为你的站点生成一个首页,示例:\n\n---\nhome: true\n# heroimage: /img/web.png\nherotext: evan's blog\ntagline: web前端技术博客,积跬步以至千里,致敬每个爱学习的你。\n# actiontext: 立刻进入 →\n# actionlink: /web/\n# bannerbg: auto # auto => 网格纹背景(有bodybgimg时无背景),默认 | none => 无 | '大图地址' | background: 自定义背景样式 提示:如发现文本颜色不适应你的背景时可以到palette.styl修改$bannertextcolor变量\n\nfeatures: # 可选的\n - title: 前端\n details: javascript、es6、vue框架等前端技术\n link: /web/ # 可选\n imgurl: /img/web.png # 可选\n - title: 页面\n details: html(5)/css(3),前端页面相关技术\n link: /ui/\n imgurl: /img/ui.png\n - title: 技术\n details: 技术文档、教程、技巧、总结等文章\n link: /technology/\n imgurl: /img/other.png\n\n# 文章列表显示方式: detailed 默认,显示详细版文章列表(包括作者、分类、标签、摘要、分页等)| simple => 显示简约版文章列表(仅标题和日期)| none 不显示文章列表\n# postlist: detailed\n# simplepostlistlength: 10 # 简约版文章列表显示的文章数量,默认10。(仅在postlist设置为simple时生效)\n# hiderightbar: true # 是否隐藏右侧边栏 (v1.11.2+)\n---\n\n\n一些字段还是沿用默认主题的,这里只对修改的地方做一个补充。\n\n\n# bannerbg\n\n * 类型:string\n * 可选参数:\n * auto 自动背景,一般会显示网格纹背景,如果在config.js设置了bodybgimg时则无背景\n * none 无背景\n * <大图地址>,如/img/bg.jpeg\n * background: <自定义背景样式>,如background: blue\n * 默认: auto\n\n\n# features\n\n * 类型:{title: string, details: string, link?: string, imgurl?: string}[]\n\nfeatures是在banner栏显示的特性描述,主题添加了图片的展示和点击跳转的链接\n\n * features[index].link 当前feature跳转的链接,可选\n * features[index].imgurl 当前feature的图片地址,可选\n\n\n# postlist\n\n * 类型:'detailed' | 'simple' | 'none'\n * 可选参数:\n * detailed 显示详细版文章列表(包括标题、日期、作者、分类、标签、摘要、分页等)\n * simple 显示简约版文章列表(仅标题和日期)\n * none 不显示文章列表\n * 默认: detailed\n\n首页内容中的文章列表显示方式\n\n\n# simplepostlistlength\n\n * 类型:number\n * 默认: 10\n\n简约版文章列表显示的文章数量,默认10。(仅在postlist设置为simple时生效)\n\n\n# hiderightbar\n\n * 类型:boolean\n * 默认: false\n\n是否隐藏右侧边栏\n\n注意\n\n原默认主题首页的footer字段已改到config.js文件里设置",charsets:{cjk:!0},lastUpdated:"2023/03/15, 13:11:57",lastUpdatedTimestamp:1678857117e3},{title:"front matter配置",frontmatter:{title:"front matter配置",date:"2020-05-12T15:37:00.000Z",permalink:"/pages/3216b0",article:!1},regularPath:"/02.%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/01.%E9%85%8D%E7%BD%AE/03.front%20matter%E9%85%8D%E7%BD%AE.html",relativePath:"02.常见问题/01.配置/03.front matter配置.md",key:"v-790ba86c",path:"/pages/3216b0/",headers:[{level:2,title:"配置项",slug:"配置项",normalizedTitle:"配置项",charIndex:275},{level:3,title:"titleTag",slug:"titletag",normalizedTitle:"titletag",charIndex:131},{level:3,title:"sidebar",slug:"sidebar",normalizedTitle:"sidebar",charIndex:154},{level:3,title:"article",slug:"article",normalizedTitle:"article",charIndex:169},{level:3,title:"comment",slug:"comment",normalizedTitle:"comment",charIndex:184},{level:3,title:"editLink",slug:"editlink",normalizedTitle:"editlink",charIndex:199},{level:3,title:"author",slug:"author",normalizedTitle:"author",charIndex:215},{level:3,title:"sticky (置顶)",slug:"sticky-置顶",normalizedTitle:"sticky (置顶)",charIndex:811}],headersStr:"配置项 titleTag sidebar article comment editLink author sticky (置顶)",content:"一个比较完整的front matter示例:\n\n---\ntitle: 标题\ndate: 2020-02-21 14:40:19\npermalink: /pages/a1bc87\ncategories:\n - 分类1\n - 分类2\ntags:\n - 标签1\ntitleTag: 原创 # v1.9.0+\nsidebar: false\narticle: false\ncomment: false\neditLink: false\nauthor:\n name: 作者\n link: https://xxx.com\nsticky: 1\n---\n\n\n\n# 配置项\n\n自动生成的front matter字段包括title、date、permalink、categories、tags,这里就不再重复赘述,参考:自动生成front matter\n\n\n# titleTag\n\n * 用于给标题添加 原创、转载 、优质、推荐 等自定义标记。\n\n添加了标题标记的文章,在文章页和文章列表、最近更新栏、归档页的文章标题都会显示此标记。\n\n\n# sidebar\n\n * false 不显示侧边栏\n * auto 显示自动侧边栏(只包含本文标题和子标题)\n\n\n# article\n\n * false 判定当前页面为非文章页\n\n对于非文章页,如目录页、关于、友情链接等自定义页面,需要设置此项。设置之后这个页面将被认定为非文章页,不显示面包屑和作者、时间,不显示最近更新栏,不会参与到最近更新文章的数据计算中。\n\n\n# comment\n\n * false 不显示评论区,这是评论插件的一个配置\n\n\n# editLink\n\n * false 不显示编辑链接\n\n\n# author\n\n * author.name 作者名称\n * author.link 作者链接\n\n指定当前页面的作者信息,如没有作者链接时可以这样:author: 作者名称\n\n\n# sticky (置顶)\n\n * 类型: number\n * 排序:允许有多个置顶文章,按照 1, 2, 3, ... 来降低置顶文章的排列优先级\n\n文章置顶,设置了此项将在首页详细版文章列表中处于置顶位置。",normalizedContent:"一个比较完整的front matter示例:\n\n---\ntitle: 标题\ndate: 2020-02-21 14:40:19\npermalink: /pages/a1bc87\ncategories:\n - 分类1\n - 分类2\ntags:\n - 标签1\ntitletag: 原创 # v1.9.0+\nsidebar: false\narticle: false\ncomment: false\neditlink: false\nauthor:\n name: 作者\n link: https://xxx.com\nsticky: 1\n---\n\n\n\n# 配置项\n\n自动生成的front matter字段包括title、date、permalink、categories、tags,这里就不再重复赘述,参考:自动生成front matter\n\n\n# titletag\n\n * 用于给标题添加 原创、转载 、优质、推荐 等自定义标记。\n\n添加了标题标记的文章,在文章页和文章列表、最近更新栏、归档页的文章标题都会显示此标记。\n\n\n# sidebar\n\n * false 不显示侧边栏\n * auto 显示自动侧边栏(只包含本文标题和子标题)\n\n\n# article\n\n * false 判定当前页面为非文章页\n\n对于非文章页,如目录页、关于、友情链接等自定义页面,需要设置此项。设置之后这个页面将被认定为非文章页,不显示面包屑和作者、时间,不显示最近更新栏,不会参与到最近更新文章的数据计算中。\n\n\n# comment\n\n * false 不显示评论区,这是评论插件的一个配置\n\n\n# editlink\n\n * false 不显示编辑链接\n\n\n# author\n\n * author.name 作者名称\n * author.link 作者链接\n\n指定当前页面的作者信息,如没有作者链接时可以这样:author: 作者名称\n\n\n# sticky (置顶)\n\n * 类型: number\n * 排序:允许有多个置顶文章,按照 1, 2, 3, ... 来降低置顶文章的排列优先级\n\n文章置顶,设置了此项将在首页详细版文章列表中处于置顶位置。",charsets:{cjk:!0},lastUpdated:"2023/03/15, 13:11:57",lastUpdatedTimestamp:1678857117e3},{title:"目录页配置",frontmatter:{title:"目录页配置",date:"2020-05-13T10:58:07.000Z",permalink:"/pages/54651a",article:!1},regularPath:"/02.%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/01.%E9%85%8D%E7%BD%AE/04.%E7%9B%AE%E5%BD%95%E9%A1%B5%E9%85%8D%E7%BD%AE.html",relativePath:"02.常见问题/01.配置/04.目录页配置.md",key:"v-46e46358",path:"/pages/54651a/",headers:[{level:2,title:"目录页说明",slug:"目录页说明",normalizedTitle:"目录页说明",charIndex:2},{level:2,title:"配置项",slug:"配置项",normalizedTitle:"配置项",charIndex:911},{level:3,title:"pageComponent.name",slug:"pagecomponent-name",normalizedTitle:"pagecomponent.name",charIndex:919},{level:3,title:"pageComponent.data",slug:"pagecomponent-data",normalizedTitle:"pagecomponent.data",charIndex:979},{level:3,title:"pageComponent.data.path",slug:"pagecomponent-data-path",normalizedTitle:"pagecomponent.data.path",charIndex:1016},{level:3,title:"pageComponent.data.imgUrl",slug:"pagecomponent-data-imgurl",normalizedTitle:"pagecomponent.data.imgurl",charIndex:1186},{level:3,title:"pageComponent.data.description",slug:"pagecomponent-data-description",normalizedTitle:"pagecomponent.data.description",charIndex:1268},{level:2,title:"如何在导航栏中添加目录页链接",slug:"如何在导航栏中添加目录页链接",normalizedTitle:"如何在导航栏中添加目录页链接",charIndex:1348}],headersStr:"目录页说明 配置项 pageComponent.name pageComponent.data pageComponent.data.path pageComponent.data.imgUrl pageComponent.data.description 如何在导航栏中添加目录页链接",content:"# 目录页说明\n\n注意\n\n目录页数据需要依赖于结构化的侧边栏数据,就是说你需要在config.js配置 sidebar: 'structuring' 或 sidebar: { mode: 'structuring', collapsable: false} 才能实现目录页数据的获取。\n\n> * 目录页文件(.md文件)可以放置在二级目录、三级目录和四级目录。(级别说明)\n> * 如果你不想在侧边栏显示目录页,你可以在一级目录中单独创建一个文件夹放置你的目录页(.md文件),并在front matter中设置sidebar: false。\n> * 如果你想让目录页和其他页面一起出现在侧边栏,你可以和其他页面共同放置在相应的文件夹。(不要设置sidebar: false)\n> * 参照下面的示例配置好front matter,然后就可以在导航栏或首页添加目录页链接了。\n\n示例:\n\n---\npageComponent: # 使用页面组件\n name: Catalogue # 组件名:Catalogue => 目录页组件\n data: # 组件所需数据\n path: 01.学习笔记/01.前端 # 设置为`docs/`下面的某个文件夹相对路径,如‘01.学习笔记/01.前端’ 或 ’01.学习笔记‘ (有序号的要带序号)\n imgUrl: /img/web.png # 目录页内的图片\n description: JavaScript、ES6、Vue框架等前端技术 # 目录描述(可加入a标签)\n\ntitle: 前端 # 页面标题\ndate: 2020-01-12 11:51:53 # 创建日期\npermalink: /note/javascript # 永久链接\nsidebar: false # 不显示侧边栏\narticle: false # 不是文章页 (不显示面包屑栏、最近更新栏等)\ncomment: false # 不显示评论栏\neditLink: false # 不显示编辑按钮\n---\n\n\n提示\n\n配置好目录页之后,点击文章页的面包屑将会跳转到目录页。\n\n\n# 配置项\n\n\n# pageComponent.name\n\n * 组件名,必需\n * 使用目录页时 必须 设置为Catalogue\n\n\n# pageComponent.data\n\n * 组件所需数据,必需\n\n\n# pageComponent.data.path\n\n * 要为其生成目录页的文件夹的相对路径,必需\n * 必须是在docs目录底下的文件夹相对路径\n * 示例:01.学习笔记或01.学习笔记/01.前端(有序号的要带序号)\n\n注意\n\n在v1.8.2版本之前,没有path属性,使用key代替。但key只支持指定一级目录的文件夹名称。\n\n\n# pageComponent.data.imgUrl\n\n * 目录页内的图片,可选。(v1.9.4之前必填)\n * 图片尺寸在页面中显示为80px*80px\n\n\n# pageComponent.data.description\n\n * 目录描述,必需\n * 可加a标签(如需加入a标签时,标签内部的引号请使用单引号)\n\n\n# 如何在导航栏中添加目录页链接\n\n // config.js\nmodule.exports = {\n themeConfig: {\n nav: [\n // 没有二级导航时可以直接添加\n {text: '目录页', link: '/web/'},\n\n // 有二级导航时\n {text: '页面',\n link: '/ui/', //目录页, vdoing主题新增的配置项,有二级导航时,可以点击一级导航跳到目录页\n items: [\n {text: 'HTML', link: '/pages/11/'},\n {text: 'CSS', link: '/pages/22/'},\n ]\n },\n ]\n }\n}\n\n\n参考:.vuepress/config/nav.js",normalizedContent:"# 目录页说明\n\n注意\n\n目录页数据需要依赖于结构化的侧边栏数据,就是说你需要在config.js配置 sidebar: 'structuring' 或 sidebar: { mode: 'structuring', collapsable: false} 才能实现目录页数据的获取。\n\n> * 目录页文件(.md文件)可以放置在二级目录、三级目录和四级目录。(级别说明)\n> * 如果你不想在侧边栏显示目录页,你可以在一级目录中单独创建一个文件夹放置你的目录页(.md文件),并在front matter中设置sidebar: false。\n> * 如果你想让目录页和其他页面一起出现在侧边栏,你可以和其他页面共同放置在相应的文件夹。(不要设置sidebar: false)\n> * 参照下面的示例配置好front matter,然后就可以在导航栏或首页添加目录页链接了。\n\n示例:\n\n---\npagecomponent: # 使用页面组件\n name: catalogue # 组件名:catalogue => 目录页组件\n data: # 组件所需数据\n path: 01.学习笔记/01.前端 # 设置为`docs/`下面的某个文件夹相对路径,如‘01.学习笔记/01.前端’ 或 ’01.学习笔记‘ (有序号的要带序号)\n imgurl: /img/web.png # 目录页内的图片\n description: javascript、es6、vue框架等前端技术 # 目录描述(可加入a标签)\n\ntitle: 前端 # 页面标题\ndate: 2020-01-12 11:51:53 # 创建日期\npermalink: /note/javascript # 永久链接\nsidebar: false # 不显示侧边栏\narticle: false # 不是文章页 (不显示面包屑栏、最近更新栏等)\ncomment: false # 不显示评论栏\neditlink: false # 不显示编辑按钮\n---\n\n\n提示\n\n配置好目录页之后,点击文章页的面包屑将会跳转到目录页。\n\n\n# 配置项\n\n\n# pagecomponent.name\n\n * 组件名,必需\n * 使用目录页时 必须 设置为catalogue\n\n\n# pagecomponent.data\n\n * 组件所需数据,必需\n\n\n# pagecomponent.data.path\n\n * 要为其生成目录页的文件夹的相对路径,必需\n * 必须是在docs目录底下的文件夹相对路径\n * 示例:01.学习笔记或01.学习笔记/01.前端(有序号的要带序号)\n\n注意\n\n在v1.8.2版本之前,没有path属性,使用key代替。但key只支持指定一级目录的文件夹名称。\n\n\n# pagecomponent.data.imgurl\n\n * 目录页内的图片,可选。(v1.9.4之前必填)\n * 图片尺寸在页面中显示为80px*80px\n\n\n# pagecomponent.data.description\n\n * 目录描述,必需\n * 可加a标签(如需加入a标签时,标签内部的引号请使用单引号)\n\n\n# 如何在导航栏中添加目录页链接\n\n // config.js\nmodule.exports = {\n themeconfig: {\n nav: [\n // 没有二级导航时可以直接添加\n {text: '目录页', link: '/web/'},\n\n // 有二级导航时\n {text: '页面',\n link: '/ui/', //目录页, vdoing主题新增的配置项,有二级导航时,可以点击一级导航跳到目录页\n items: [\n {text: 'html', link: '/pages/11/'},\n {text: 'css', link: '/pages/22/'},\n ]\n },\n ]\n }\n}\n\n\n参考:.vuepress/config/nav.js",charsets:{cjk:!0},lastUpdated:"2023/03/15, 13:11:57",lastUpdatedTimestamp:1678857117e3},{title:"添加摘要",frontmatter:{title:"添加摘要",date:"2020-05-13T11:47:49.000Z",permalink:"/pages/1cc523",article:!1},regularPath:"/02.%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/01.%E9%85%8D%E7%BD%AE/05.%E6%B7%BB%E5%8A%A0%E6%91%98%E8%A6%81.html",relativePath:"02.常见问题/01.配置/05.添加摘要.md",key:"v-f5106e98",path:"/pages/1cc523/",excerpt:"<p>文章摘要会显示于首页的详细版文章列表中,在编写文章时(<code>.md</code>文件中)在合适的位置添加一个`</p>\n",headersStr:null,content:"文章摘要会显示于首页的详细版文章列表中,在编写文章时(.md文件中)在合适的位置添加一个\x3c!-- more --\x3e注释。注释前面的内容将会暴露在摘要中。\n\n示例:\n\n# 如何根据系统主题自动响应CSS深色模式\n\n\n\n很多人喜欢选择APP或网站中的深色模式,也许他们更喜欢这样的外观,或者他们想让自己的眼睛免受疲劳。这篇文章将告诉你如何在网站中实现一个自动的CSS深色模式,根据访客的系统主题来自动响应。\n\n\x3c!-- more --\x3e\n\n## CSS 深色模式 (Dark Mode)\n\n...\n\n\n\n如示例的内容,在\x3c!-- more --\x3e注释前面的除了标题之外所有内容将显示到摘要中。摘要在文章列表的显示效果如下:\n\n\n\n\n\n值得注意的是摘要的内容也是文章内容的一部分,会显示在文章详情页中。",normalizedContent:"文章摘要会显示于首页的详细版文章列表中,在编写文章时(.md文件中)在合适的位置添加一个\x3c!-- more --\x3e注释。注释前面的内容将会暴露在摘要中。\n\n示例:\n\n# 如何根据系统主题自动响应css深色模式\n\n\n\n很多人喜欢选择app或网站中的深色模式,也许他们更喜欢这样的外观,或者他们想让自己的眼睛免受疲劳。这篇文章将告诉你如何在网站中实现一个自动的css深色模式,根据访客的系统主题来自动响应。\n\n\x3c!-- more --\x3e\n\n## css 深色模式 (dark mode)\n\n...\n\n\n\n如示例的内容,在\x3c!-- more --\x3e注释前面的除了标题之外所有内容将显示到摘要中。摘要在文章列表的显示效果如下:\n\n\n\n\n\n值得注意的是摘要的内容也是文章内容的一部分,会显示在文章详情页中。",charsets:{cjk:!0},lastUpdated:"2023/03/15, 13:11:57",lastUpdatedTimestamp:1678857117e3},{title:"修改主题颜色和样式",frontmatter:{title:"修改主题颜色和样式",date:"2020-05-13T11:48:50.000Z",permalink:"/pages/f51918",article:!1},regularPath:"/02.%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/01.%E9%85%8D%E7%BD%AE/06.%E4%BF%AE%E6%94%B9%E4%B8%BB%E9%A2%98%E9%A2%9C%E8%89%B2%E5%92%8C%E6%A0%B7%E5%BC%8F.html",relativePath:"02.常见问题/01.配置/06.修改主题颜色和样式.md",key:"v-f3ace090",path:"/pages/f51918/",headers:[{level:2,title:"主题样式变量",slug:"主题样式变量",normalizedTitle:"主题样式变量",charIndex:2},{level:2,title:"样式修改与适配",slug:"样式修改与适配",normalizedTitle:"样式修改与适配",charIndex:1417}],headersStr:"主题样式变量 样式修改与适配",content:"# 主题样式变量\n\n下面是vdoing主题使用的css变量,你可以在.vuepress/styles/palette.styl修改这些变量覆盖它们:\n\n//***vdoing主题-CSS变量***//\n\n// 颜色\n$bannerTextColor = #fff // 首页banner区(博客标题区)的文本颜色\n$accentColor = #11A8CD\n$activeColor = #ff5722\n$arrowBgColor = #ccc\n\n// 布局\n$navbarHeight = 3.6rem\n$sidebarWidth = 18rem\n$contentWidth = 860px\n$homePageWidth = 1100px\n$rightMenuWidth = 230px // 右侧菜单\n\n// 代码块\n$lineNumbersWrapperWidth = 2.5rem\n\n// 浅色模式\n.theme-mode-light\n --bodyBg: #f4f4f4\n --mainBg: rgba(255,255,255,1)\n --sidebarBg: rgba(255,255,255,.8)\n --blurBg: rgba(255,255,255,.9)\n --textColor: #004050\n --textLightenColor: #0085AD\n --borderColor: rgba(0,0,0,.15)\n // 代码块浅色主题\n --codeBg: #f6f6f6\n --codeColor: #525252\n codeThemeLight()\n // 代码块深色主题\n // --codeBg: #252526\n // --codeColor: #fff\n // codeThemeDark()\n\n// 深色模式\n.theme-mode-dark\n --bodyBg: rgb(39,39,43)\n --mainBg: rgba(30,30,34,1)\n --sidebarBg: rgba(30,30,34,.8)\n --blurBg: rgba(30,30,34,.8)\n --textColor: rgb(140,140,150)\n --textLightenColor: #0085AD\n --borderColor: #2C2C3A\n --codeBg: #252526\n --codeColor: #fff\n codeThemeDark()\n\n// 阅读模式\n.theme-mode-read\n --bodyBg: rgb(240,240,208)\n --mainBg: rgba(245,245,213,1)\n --sidebarBg: rgba(245,245,213,.8)\n --blurBg: rgba(245,245,213,.9)\n --textColor: #004050\n --textLightenColor: #0085AD\n --borderColor: rgba(0,0,0,.15)\n --codeBg: #282c34\n --codeColor: #fff\n codeThemeDark()\n\n\n上面的变量值可能不是最新的,最新的变量值可查看:palette.styl\n\n\n# 样式修改与适配\n\n当你想修改主题某个地方的样式时,或者你在给博客添加了一些新的模块或插件,发现样式和主题的样式不协调时,都可以在.vuepress/styles/index.styl 添加css样式来做修改。 需要注意的是,你在自己写的css样式中,请尽量使用主题提供的变量来进行适配。\n\n> 小技巧:当你发现自己写的css样式优先级没有原来的样式高时,可以在样式后面添加!improtant后缀,使你的样式优先级是最高的。",normalizedContent:"# 主题样式变量\n\n下面是vdoing主题使用的css变量,你可以在.vuepress/styles/palette.styl修改这些变量覆盖它们:\n\n//***vdoing主题-css变量***//\n\n// 颜色\n$bannertextcolor = #fff // 首页banner区(博客标题区)的文本颜色\n$accentcolor = #11a8cd\n$activecolor = #ff5722\n$arrowbgcolor = #ccc\n\n// 布局\n$navbarheight = 3.6rem\n$sidebarwidth = 18rem\n$contentwidth = 860px\n$homepagewidth = 1100px\n$rightmenuwidth = 230px // 右侧菜单\n\n// 代码块\n$linenumberswrapperwidth = 2.5rem\n\n// 浅色模式\n.theme-mode-light\n --bodybg: #f4f4f4\n --mainbg: rgba(255,255,255,1)\n --sidebarbg: rgba(255,255,255,.8)\n --blurbg: rgba(255,255,255,.9)\n --textcolor: #004050\n --textlightencolor: #0085ad\n --bordercolor: rgba(0,0,0,.15)\n // 代码块浅色主题\n --codebg: #f6f6f6\n --codecolor: #525252\n codethemelight()\n // 代码块深色主题\n // --codebg: #252526\n // --codecolor: #fff\n // codethemedark()\n\n// 深色模式\n.theme-mode-dark\n --bodybg: rgb(39,39,43)\n --mainbg: rgba(30,30,34,1)\n --sidebarbg: rgba(30,30,34,.8)\n --blurbg: rgba(30,30,34,.8)\n --textcolor: rgb(140,140,150)\n --textlightencolor: #0085ad\n --bordercolor: #2c2c3a\n --codebg: #252526\n --codecolor: #fff\n codethemedark()\n\n// 阅读模式\n.theme-mode-read\n --bodybg: rgb(240,240,208)\n --mainbg: rgba(245,245,213,1)\n --sidebarbg: rgba(245,245,213,.8)\n --blurbg: rgba(245,245,213,.9)\n --textcolor: #004050\n --textlightencolor: #0085ad\n --bordercolor: rgba(0,0,0,.15)\n --codebg: #282c34\n --codecolor: #fff\n codethemedark()\n\n\n上面的变量值可能不是最新的,最新的变量值可查看:palette.styl\n\n\n# 样式修改与适配\n\n当你想修改主题某个地方的样式时,或者你在给博客添加了一些新的模块或插件,发现样式和主题的样式不协调时,都可以在.vuepress/styles/index.styl 添加css样式来做修改。 需要注意的是,你在自己写的css样式中,请尽量使用主题提供的变量来进行适配。\n\n> 小技巧:当你发现自己写的css样式优先级没有原来的样式高时,可以在样式后面添加!improtant后缀,使你的样式优先级是最高的。",charsets:{cjk:!0},lastUpdated:"2023/03/15, 13:11:57",lastUpdatedTimestamp:1678857117e3},{title:"评论栏",frontmatter:{title:"评论栏",date:"2020-05-13T12:00:39.000Z",permalink:"/pages/ce175c",article:!1},regularPath:"/02.%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/01.%E9%85%8D%E7%BD%AE/07.%E8%AF%84%E8%AE%BA%E6%A0%8F.html",relativePath:"02.常见问题/01.配置/07.评论栏.md",key:"v-34facd3a",path:"/pages/ce175c/",headers:[{level:3,title:"vuepress-plugin-comment",slug:"vuepress-plugin-comment",normalizedTitle:"vuepress-plugin-comment",charIndex:61},{level:3,title:"vuepress-plugin-vssue",slug:"vuepress-plugin-vssue",normalizedTitle:"vuepress-plugin-vssue",charIndex:117},{level:3,title:"vuepress-plugin-vssue-global",slug:"vuepress-plugin-vssue-global",normalizedTitle:"vuepress-plugin-vssue-global",charIndex:169},{level:3,title:"Twikoo",slug:"twikoo",normalizedTitle:"twikoo",charIndex:235}],headersStr:"vuepress-plugin-comment vuepress-plugin-vssue vuepress-plugin-vssue-global Twikoo",content:"评论栏推荐使用vuepress插件的方式来导入,这里推荐一些vuepress的评论插件,使用方法查阅相应的文档。\n\n\n# vuepress-plugin-comment\n\n * vuepress-plugin-comment\n\n\n# vuepress-plugin-vssue\n\n * vuepress-plugin-vssue\n\n\n# vuepress-plugin-vssue-global\n\n * vuepress-plugin-vssue-global\n\n\n# Twikoo\n\n * Twikoo",normalizedContent:"评论栏推荐使用vuepress插件的方式来导入,这里推荐一些vuepress的评论插件,使用方法查阅相应的文档。\n\n\n# vuepress-plugin-comment\n\n * vuepress-plugin-comment\n\n\n# vuepress-plugin-vssue\n\n * vuepress-plugin-vssue\n\n\n# vuepress-plugin-vssue-global\n\n * vuepress-plugin-vssue-global\n\n\n# twikoo\n\n * twikoo",charsets:{cjk:!0},lastUpdated:"2023/03/15, 13:11:57",lastUpdatedTimestamp:1678857117e3},{title:"个人赞赏",frontmatter:{title:"个人赞赏",date:"2023-10-26T13:08:02.000Z",permalink:"/pages/1ab20b/"},regularPath:"/03.%E6%94%AF%E6%8C%81%E6%88%91%E4%BB%AC/01.%E4%B8%AA%E4%BA%BA%E8%B5%9E%E8%B5%8F.html",relativePath:"03.支持我们/01.个人赞赏.md",key:"v-dd816e18",path:"/pages/1ab20b/",headers:[{level:2,title:"个人赞赏说明",slug:"个人赞赏说明",normalizedTitle:"个人赞赏说明",charIndex:2},{level:2,title:"赞赏途径",slug:"赞赏途径",normalizedTitle:"赞赏途径",charIndex:346}],headersStr:"个人赞赏说明 赞赏途径",content:"# 个人赞赏说明\n\n随着用户增加,需要协助解决的问题也多种多样,为了能给用户提供 更优质、更准确 的 疑难问题 解答我们推出赞赏咨询服务\n\n赞赏金额 服务时长 服务说明\n任意金额 - 您将获得赞助者列表的永久留名。\n30 一个月 您在群内反馈的问题将优先得到作者响应\n120 三个月 获得微信一对一的咨询服务\n399 六个月 获得官网首页特别赞助席位一个,一次远程协助\n更多金额 - 您将获得私人定制服务\n\n> 注意1:服务项目是逐级叠加:如,您赞赏的金额是 80 员那么您将享受:任意金额、一个月、三个月的服务内容\n\n> 注意2:二开问题不在个人赞赏支持服务范畴内,如需咨询二开问题或者二开方案请找作者协商\n\n\n# 赞赏途径\n\n> 除4以外,赞赏后请及时通过官网首页微信二维码与作者取得联系\n\n * 1、微信赞赏\n * 2、支付宝转账\n * 3、Gitee项目捐赠:点击这里打开后拉到最底部点击捐赠\n * 4、微信好友转账\n\n微信赞赏 支付宝转账\n ",normalizedContent:"# 个人赞赏说明\n\n随着用户增加,需要协助解决的问题也多种多样,为了能给用户提供 更优质、更准确 的 疑难问题 解答我们推出赞赏咨询服务\n\n赞赏金额 服务时长 服务说明\n任意金额 - 您将获得赞助者列表的永久留名。\n30 一个月 您在群内反馈的问题将优先得到作者响应\n120 三个月 获得微信一对一的咨询服务\n399 六个月 获得官网首页特别赞助席位一个,一次远程协助\n更多金额 - 您将获得私人定制服务\n\n> 注意1:服务项目是逐级叠加:如,您赞赏的金额是 80 员那么您将享受:任意金额、一个月、三个月的服务内容\n\n> 注意2:二开问题不在个人赞赏支持服务范畴内,如需咨询二开问题或者二开方案请找作者协商\n\n\n# 赞赏途径\n\n> 除4以外,赞赏后请及时通过官网首页微信二维码与作者取得联系\n\n * 1、微信赞赏\n * 2、支付宝转账\n * 3、gitee项目捐赠:点击这里打开后拉到最底部点击捐赠\n * 4、微信好友转账\n\n微信赞赏 支付宝转账\n ",charsets:{cjk:!0},lastUpdated:"2023/12/19, 14:56:12",lastUpdatedTimestamp:1702968972e3},{title:"如何贡献",frontmatter:{title:"如何贡献",date:"2023-03-29T23:34:07.000Z",permalink:"/pages/a3f096/"},regularPath:"/03.%E6%94%AF%E6%8C%81%E6%88%91%E4%BB%AC/02.%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%8D%97/01.%E5%A6%82%E4%BD%95%E8%B4%A1%E7%8C%AE.html",relativePath:"03.支持我们/02.贡献指南/01.如何贡献.md",key:"v-f411a3fa",path:"/pages/a3f096/",headersStr:null,content:"# 🎋代码分支说明\n\n * dev:常规开发分支,日常的开发、Bug修复、提交PR都在此分支\n * feature/xxx:特征分支,一些试验性开发、提交PR都在此分支,xxx可自行取一个有意义的名称\n * release/xxx:发行版分支,作为阶段性成果、重大更新的版本固化分支。受保护,不允许任何提交。\n * master:主分支,定期同步最新代码,目前仅支持本人(傲世孤尘/雨韵诗泽)提交。\n\n\n# ✊贡献的方式\n\n包括,但不限于以下形式:\n\n * 提交issues\n * 参与issues解决的必要性、解决方案的讨论、给出建设性的意见\n * 领取issues 并完成开发、提交PR\n * 为本项目完善代码注释\n * 为本项目增加测试代码\n * 为本项目优化现有代码\n * 为本项目优化操作体验\n * 通过公众号、博客、贴吧、论坛等形式分享/宣传中微子代理\n * 丰富项目文档,包括使用过程中踩过的坑、需要优化的点、具体问题的解决方法等\n\n\n# 🧬贡献代码的步骤\n\n * 在Gitee上fork项目到自己的仓库\n * 将fork后的自己仓库的项目clone到本地\n * 拉取dev分支最新代码,并修改\n * commit并push到自己的仓库\n * 登录Gitee在的仓库上可以看到一个 pull request 按钮,点击它,填写一些说明信息,然后提交即可。\n * 等待合并\n\n\n# 📐PR的规范\n\n> 你可能发现有的代码并不符合这个规范,但我们后续都会朝着这个方向迈进。后续我们会逐步全面规范化,请先保证新提交的代码满足以下要求:\n\n * 注释完备,尤其每个新增的方法应按照Java文档规范标明方法说明、参数说明、返回值说明等信息,必要时请添加单元测试,如果愿意,也可以加上你的大名。\n * 原则上,不允许自行添加第三方依赖库。若确有必要,请先和项目负责人沟通达成一致。\n * 对现有代码的优化,请在注释中说明原因。\n * 如果涉及到数据库的变更,则至少需要做到以下几点:\n * h2、mysql下均测试通过\n * 在./neutrino-proxy-server/src/main/resource/sql下维护更新对应的表结构sql文件\n * 对于新增的表,维护必要的初始化数据\n * 在对应的mysql、h2的update目录下,维护SQL变更记录,确保SQL执行测试通过",normalizedContent:"# 🎋代码分支说明\n\n * dev:常规开发分支,日常的开发、bug修复、提交pr都在此分支\n * feature/xxx:特征分支,一些试验性开发、提交pr都在此分支,xxx可自行取一个有意义的名称\n * release/xxx:发行版分支,作为阶段性成果、重大更新的版本固化分支。受保护,不允许任何提交。\n * master:主分支,定期同步最新代码,目前仅支持本人(傲世孤尘/雨韵诗泽)提交。\n\n\n# ✊贡献的方式\n\n包括,但不限于以下形式:\n\n * 提交issues\n * 参与issues解决的必要性、解决方案的讨论、给出建设性的意见\n * 领取issues 并完成开发、提交pr\n * 为本项目完善代码注释\n * 为本项目增加测试代码\n * 为本项目优化现有代码\n * 为本项目优化操作体验\n * 通过公众号、博客、贴吧、论坛等形式分享/宣传中微子代理\n * 丰富项目文档,包括使用过程中踩过的坑、需要优化的点、具体问题的解决方法等\n\n\n# 🧬贡献代码的步骤\n\n * 在gitee上fork项目到自己的仓库\n * 将fork后的自己仓库的项目clone到本地\n * 拉取dev分支最新代码,并修改\n * commit并push到自己的仓库\n * 登录gitee在的仓库上可以看到一个 pull request 按钮,点击它,填写一些说明信息,然后提交即可。\n * 等待合并\n\n\n# 📐pr的规范\n\n> 你可能发现有的代码并不符合这个规范,但我们后续都会朝着这个方向迈进。后续我们会逐步全面规范化,请先保证新提交的代码满足以下要求:\n\n * 注释完备,尤其每个新增的方法应按照java文档规范标明方法说明、参数说明、返回值说明等信息,必要时请添加单元测试,如果愿意,也可以加上你的大名。\n * 原则上,不允许自行添加第三方依赖库。若确有必要,请先和项目负责人沟通达成一致。\n * 对现有代码的优化,请在注释中说明原因。\n * 如果涉及到数据库的变更,则至少需要做到以下几点:\n * h2、mysql下均测试通过\n * 在./neutrino-proxy-server/src/main/resource/sql下维护更新对应的表结构sql文件\n * 对于新增的表,维护必要的初始化数据\n * 在对应的mysql、h2的update目录下,维护sql变更记录,确保sql执行测试通过",charsets:{cjk:!0},lastUpdated:"2023/10/26, 20:32:40",lastUpdatedTimestamp:169832356e4},{title:"项目结构",frontmatter:{title:"项目结构",date:"2020-05-11T13:54:56.000Z",permalink:"/pages/2f674a",article:!1},regularPath:"/03.%E6%94%AF%E6%8C%81%E6%88%91%E4%BB%AC/02.%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%8D%97/02.%E9%A1%B9%E7%9B%AE%E7%BB%93%E6%9E%84.html",relativePath:"03.支持我们/02.贡献指南/02.项目结构.md",key:"v-e1195b60",path:"/pages/2f674a/",headersStr:null,content:"# 主要目录、文件\n\n├── assets (资源文件)\n├── docs (项目相关的一些文档)\n├── neutrino-proxy-admin (管理后台前端项目,基于vue-element-admin)\n├── neutrino-proxy-client (基于netty的代理客户端,用于和服务端交互、转发内网数据)\n├── neutrino-proxy-core (代理相关的公共代码(协议、常量))\n├── neutrino-proxy-server (基于netty的代理服务端,用于和客户段交互,将客户端转发的内网数据转发至外网端口)\n├── neutrino-proxy-vuepress (中微子代理官网文档)\n├── scripts (常用的编译、打包脚本)\n├── Milestone.md (里程碑事件节点)\n├── VLog.md (版本变更记录)\n└── todolist.MD (近期的开发计划)\n\n\n\n# 代码分支说明\n\n * dev:常规开发分支,日常的开发、Bug修复、提交PR都在此分支\n * feature/xxx:特征分支,一些试验性开发、提交PR都在此分支,xxx可自行取一个有意义的名称\n * release/xxx:发行版分支,作为阶段性成果、重大更新的版本固化分支。受保护,不允许任何提交。\n * master:主分支,定期同步最新代码,目前仅支持本人(傲世孤尘/雨韵诗泽)提交。",normalizedContent:"# 主要目录、文件\n\n├── assets (资源文件)\n├── docs (项目相关的一些文档)\n├── neutrino-proxy-admin (管理后台前端项目,基于vue-element-admin)\n├── neutrino-proxy-client (基于netty的代理客户端,用于和服务端交互、转发内网数据)\n├── neutrino-proxy-core (代理相关的公共代码(协议、常量))\n├── neutrino-proxy-server (基于netty的代理服务端,用于和客户段交互,将客户端转发的内网数据转发至外网端口)\n├── neutrino-proxy-vuepress (中微子代理官网文档)\n├── scripts (常用的编译、打包脚本)\n├── milestone.md (里程碑事件节点)\n├── vlog.md (版本变更记录)\n└── todolist.md (近期的开发计划)\n\n\n\n# 代码分支说明\n\n * dev:常规开发分支,日常的开发、bug修复、提交pr都在此分支\n * feature/xxx:特征分支,一些试验性开发、提交pr都在此分支,xxx可自行取一个有意义的名称\n * release/xxx:发行版分支,作为阶段性成果、重大更新的版本固化分支。受保护,不允许任何提交。\n * master:主分支,定期同步最新代码,目前仅支持本人(傲世孤尘/雨韵诗泽)提交。",charsets:{cjk:!0},lastUpdated:"2023/10/26, 13:41:02",lastUpdatedTimestamp:1698298862e3},{title:"实现原理",frontmatter:{title:"实现原理",date:"2020-09-26T21:13:59.000Z",permalink:"/pages/dd027d/",article:!1},regularPath:"/03.%E6%94%AF%E6%8C%81%E6%88%91%E4%BB%AC/02.%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%8D%97/03.%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86.html",relativePath:"03.支持我们/02.贡献指南/03.实现原理.md",key:"v-3960e9f4",path:"/pages/dd027d/",headers:[{level:2,title:"指令通道(CmdChannel)",slug:"指令通道-cmdchannel",normalizedTitle:"指令通道(cmdchannel)",charIndex:24},{level:2,title:"用户访问通道(VisitorChannel)",slug:"用户访问通道-visitorchannel",normalizedTitle:"用户访问通道(visitorchannel)",charIndex:329},{level:2,title:"被代理服务的实际通道(RealServerChannel)",slug:"被代理服务的实际通道-realserverchannel",normalizedTitle:"被代理服务的实际通道(realserverchannel)",charIndex:565},{level:2,title:"代理数据传输的通道(ProxyChannel)",slug:"代理数据传输的通道-proxychannel",normalizedTitle:"代理数据传输的通道(proxychannel)",charIndex:666},{level:2,title:"1、服务连接阶段",slug:"_1、服务连接阶段",normalizedTitle:"1、服务连接阶段",charIndex:988},{level:2,title:"2、用户连接阶段",slug:"_2、用户连接阶段",normalizedTitle:"2、用户连接阶段",charIndex:1241},{level:2,title:"3、实际被代理服务连接阶段",slug:"_3、实际被代理服务连接阶段",normalizedTitle:"3、实际被代理服务连接阶段",charIndex:1445},{level:2,title:"4、代理通道连接阶段",slug:"_4、代理通道连接阶段",normalizedTitle:"4、代理通道连接阶段",charIndex:1631},{level:2,title:"5、数据传输阶段",slug:"_5、数据传输阶段",normalizedTitle:"5、数据传输阶段",charIndex:1881}],headersStr:"指令通道(CmdChannel) 用户访问通道(VisitorChannel) 被代理服务的实际通道(RealServerChannel) 代理数据传输的通道(ProxyChannel) 1、服务连接阶段 2、用户连接阶段 3、实际被代理服务连接阶段 4、代理通道连接阶段 5、数据传输阶段",content:"# 代理实现中涉及的几类Channel\n\n\n# 指令通道(CmdChannel)\n\n * 该channel负责维护客户端与服务端之间的指令通讯,由客户端启动后向服务端发起连接请求,服务端验证license成功后连接建立。\n * 服务端维护第一个CmdChannel的映射表,key为licenseId。服务端可以根据licenseId,向指定的客户端指令通道发布指令。\n * 该通道建立完成后,服务端会将该license授权的外网映射端口打开,等待用户访问。正常情况下,只要客户端不下线,该通道一直可用。\n * 然后服务端维护第二个CmdChannel的映射表,key为服务端外网端口。服务端可以根据指定的外网端口,向指定的客户端指令通道发布指令。\n\n\n# 用户访问通道(VisitorChannel)\n\n * 该channel负责维护访问者与服务端端口之间的通讯,由访问者向服务端映射的外网端口发起请求开始建立,具体断开时机由实际的被代理的 协议决定。\n * 如HTTP/1.0下,用户向该端口发起请求,响应结束后,该通道随之关闭,下一次发起请求后,重新建立新的连接。\n * 该连接建立后,服务端会向该外网端口映射的指令通道发送Connect指令,传输该外网端口需要代理的内网信息, 如:127.0.0.1:3306。\n\n\n# 被代理服务的实际通道(RealServerChannel)\n\n * 该channel负责维护客户端与实际被代理服务之间的通讯,当客户端接收到服务端的Connect指令后,客户端便会建立该通道。\n\n\n# 代理数据传输的通道(ProxyChannel)\n\n * 该channel负责完成内网被代理服务与代理服务端之间的数据转发任务。\n * 每个客户端维护一个ProxyChannel的缓存队列,需要时从该队列中取,当取不到时,直接新建一个ProxyChannel返回。 当一个ProxyChannel实例用完后,需要归还到缓存队列中(ProxyChannel收到DisConnect指令时)。\n * 当RealServerChannel建立完成后,就会获取相关联的ProxyChannel,并与其绑定。设置RealServerChannel为 可读状态。然后通过ProxyChannel向服务端发送Connect指令。\n\n\n# 代理实现流程\n\n\n# 1、服务连接阶段\n\n * 1.1、客户端根据是否需要使用SSL,选择对应的服务端端口发起连接,建立CmdChannel。\n * 1.2、客户端根据用户输入或配置文件获取license,并携带license通过CmdChannel向服务端发送Auth指令。\n * 1.3、服务端通过CmdChannel接收到来自客户端的Auth指令。若验证license有效,则建立licenseId与CmdChannel的映射缓存、 外网端口与CmdChannel的映射缓存。并启动服务端代理端口,等待用户连接。\n\n\n# 2、用户连接阶段\n\n * 2.1、用户向服务端代理的外网端口发起请求,服务端建立VisitorChannel。\n * 2.2、根据外网端口查找CmdChannel,若不存在有效的CmdChannel,则关闭该VisitorChannel。否则, 设置VisitorChannel为不可读,并携带内网映射信息(如:127.0.0.1:3306)通过CmdChannel向客户端发送Connect指令。\n\n\n# 3、实际被代理服务连接阶段\n\n * 3.1、客户端通过CmdChannel接收到服务端的Connect指令。拿到需要代理的内网IP、端口号,向实际被 代理服务发起连接请求,若连接失败,则通过CmdChannel向服务端发送DisConnect指令。建立RealServerChannel成功,设置RealServerChannel为不可读 状态,并进入4.1阶段\n\n\n# 4、代理通道连接阶段\n\n * 4.1、客户端通过ProxyChannelQueue获取或新建一个ProxyChannel,并将RealServerChannel与ProxyChannel进行绑定。\n * 4.2、客户端通过ProxyChannel向服务端发送Connect指令。\n * 4.3、服务端通过ProxyChannel通道收到来自客户端的Connect指令后,将ProxyChannel与对应的VisitorChannel进行绑定,并 设置VisitorChannel为可读状态。\n\n\n# 5、数据传输阶段\n\n * 5.1、服务端通过VisitorChannel收到来自用户的请求数据,然后找到VisitorChannel绑定的ProxyChannel, 通过ProxyChannel发送Transfer指令,并携带用户请求数据。\n * 5.2、客户端通过ProxyChannel收到来自服务端的Transfer指令,取出用户请求数据。找到ProxyChannel绑定的RealServerChannel, 通过RealServerChannel向被代理服务写入用户请求数据。\n * 5.3、客户端通过RealServerChannel收到被代理服务响应的数据,找到RealServerChannel绑定的ProxyChannel, 通过ProxyChannel向服务端发送Transfer指令,并携带响应数据。\n * 5.4、服务端通过ProxyChannel收到来自客户端的Transfer指令,找到ProxyChannel绑定的VisitorChannel, 通过VisitorChannel向用户端写入响应数据。",normalizedContent:"# 代理实现中涉及的几类channel\n\n\n# 指令通道(cmdchannel)\n\n * 该channel负责维护客户端与服务端之间的指令通讯,由客户端启动后向服务端发起连接请求,服务端验证license成功后连接建立。\n * 服务端维护第一个cmdchannel的映射表,key为licenseid。服务端可以根据licenseid,向指定的客户端指令通道发布指令。\n * 该通道建立完成后,服务端会将该license授权的外网映射端口打开,等待用户访问。正常情况下,只要客户端不下线,该通道一直可用。\n * 然后服务端维护第二个cmdchannel的映射表,key为服务端外网端口。服务端可以根据指定的外网端口,向指定的客户端指令通道发布指令。\n\n\n# 用户访问通道(visitorchannel)\n\n * 该channel负责维护访问者与服务端端口之间的通讯,由访问者向服务端映射的外网端口发起请求开始建立,具体断开时机由实际的被代理的 协议决定。\n * 如http/1.0下,用户向该端口发起请求,响应结束后,该通道随之关闭,下一次发起请求后,重新建立新的连接。\n * 该连接建立后,服务端会向该外网端口映射的指令通道发送connect指令,传输该外网端口需要代理的内网信息, 如:127.0.0.1:3306。\n\n\n# 被代理服务的实际通道(realserverchannel)\n\n * 该channel负责维护客户端与实际被代理服务之间的通讯,当客户端接收到服务端的connect指令后,客户端便会建立该通道。\n\n\n# 代理数据传输的通道(proxychannel)\n\n * 该channel负责完成内网被代理服务与代理服务端之间的数据转发任务。\n * 每个客户端维护一个proxychannel的缓存队列,需要时从该队列中取,当取不到时,直接新建一个proxychannel返回。 当一个proxychannel实例用完后,需要归还到缓存队列中(proxychannel收到disconnect指令时)。\n * 当realserverchannel建立完成后,就会获取相关联的proxychannel,并与其绑定。设置realserverchannel为 可读状态。然后通过proxychannel向服务端发送connect指令。\n\n\n# 代理实现流程\n\n\n# 1、服务连接阶段\n\n * 1.1、客户端根据是否需要使用ssl,选择对应的服务端端口发起连接,建立cmdchannel。\n * 1.2、客户端根据用户输入或配置文件获取license,并携带license通过cmdchannel向服务端发送auth指令。\n * 1.3、服务端通过cmdchannel接收到来自客户端的auth指令。若验证license有效,则建立licenseid与cmdchannel的映射缓存、 外网端口与cmdchannel的映射缓存。并启动服务端代理端口,等待用户连接。\n\n\n# 2、用户连接阶段\n\n * 2.1、用户向服务端代理的外网端口发起请求,服务端建立visitorchannel。\n * 2.2、根据外网端口查找cmdchannel,若不存在有效的cmdchannel,则关闭该visitorchannel。否则, 设置visitorchannel为不可读,并携带内网映射信息(如:127.0.0.1:3306)通过cmdchannel向客户端发送connect指令。\n\n\n# 3、实际被代理服务连接阶段\n\n * 3.1、客户端通过cmdchannel接收到服务端的connect指令。拿到需要代理的内网ip、端口号,向实际被 代理服务发起连接请求,若连接失败,则通过cmdchannel向服务端发送disconnect指令。建立realserverchannel成功,设置realserverchannel为不可读 状态,并进入4.1阶段\n\n\n# 4、代理通道连接阶段\n\n * 4.1、客户端通过proxychannelqueue获取或新建一个proxychannel,并将realserverchannel与proxychannel进行绑定。\n * 4.2、客户端通过proxychannel向服务端发送connect指令。\n * 4.3、服务端通过proxychannel通道收到来自客户端的connect指令后,将proxychannel与对应的visitorchannel进行绑定,并 设置visitorchannel为可读状态。\n\n\n# 5、数据传输阶段\n\n * 5.1、服务端通过visitorchannel收到来自用户的请求数据,然后找到visitorchannel绑定的proxychannel, 通过proxychannel发送transfer指令,并携带用户请求数据。\n * 5.2、客户端通过proxychannel收到来自服务端的transfer指令,取出用户请求数据。找到proxychannel绑定的realserverchannel, 通过realserverchannel向被代理服务写入用户请求数据。\n * 5.3、客户端通过realserverchannel收到被代理服务响应的数据,找到realserverchannel绑定的proxychannel, 通过proxychannel向服务端发送transfer指令,并携带响应数据。\n * 5.4、服务端通过proxychannel收到来自客户端的transfer指令,找到proxychannel绑定的visitorchannel, 通过visitorchannel向用户端写入响应数据。",charsets:{cjk:!0},lastUpdated:"2023/10/26, 13:41:02",lastUpdatedTimestamp:1698298862e3},{title:"2023年",frontmatter:{title:"2023年",date:"2023-06-09T21:33:17.000Z",permalink:"/pages/cded59/"},regularPath:"/03.%E6%94%AF%E6%8C%81%E6%88%91%E4%BB%AC/99.%E8%B5%9E%E8%B5%8F%E5%85%AC%E7%A4%BA/100.2023%E5%B9%B4.html",relativePath:"03.支持我们/99.赞赏公示/100.2023年.md",key:"v-5a945f7a",path:"/pages/cded59/",headersStr:null,content:"日期 渠道 金额 昵称 备注\n2023-12-28 微信红包 50 雪猫 请大佬吃肯德基\n2023-12-27 微信红包 50 D 请大佬喝杯茶\n2023-12-25 微信赞赏码 30 Simen 伟大的项目,尽点绵薄之力\n2023-12-25 微信红包 50 KAI 大佬加油\n2023-12-22 微信赞赏 30 walking 好东西必须支持一下\n2023-12-21 微信红包 100 洗最大的碗 中微子越来越强大,雨哥越来越富有\n2023-12-15 Gitee捐助 10 一杯香梨 \n2023-12-12 微信红包 50 喜鸽小宝 \n2023-11-30 支付宝收款码 30 *平 大佬继续加油\n2023-11-30 Gitee捐助 10 26263 感谢您的开源项目!\n2023-11-30 微信红包 10 姫野永遠 \n2023-11-26 微信转账 180 Teacher Du \n2023-11-10 微信红包 50 喜鸽小宝 \n2023-11-01 微信红包 20 Sun 感谢大佬,请你喝杯奶茶[微笑]\n2023-10-30 微信赞赏 50 杨娃娃 \n2023-10-16 微信转账 50 Mark Isaac赵方丈 金额不大,开源感恩。\n2023-10-11 微信红包 50 喜鸽小宝 \n2023-10-10 微信红包 20 海洋 \n2023-07-31 Gitee捐助 50 失败女神 感谢您的开源项目!\n2023-07-28 微信转账 50 AdrianPteLtd.com-咨询 \n2023-07-12 微信红包 100 MaxKeyTop 请大佬抽包烟\n2023-07-04 微信红包 50 姫野永遠 \n2023-06-29 微信红包 16.8 迟迟🌱 加油\n2023-06-27 微信红包 30 Arno \n2023-06-25 Gitee捐助 10 zhujue888 感谢您的开源项目!\n2023-06-16 微信红包 50 小跟班 \n2023-06-10 Gitee捐助 10 失败女神 感谢您的开源项目!\n2023-06-09 Gitee捐助 50 Admin 感谢您的开源项目!\n2023-06-09 微信红包 50 李阳 开源无限好\n2023-06-09 Gitee捐助 50 罗宾 感谢您的开源项目!\n2023-06-07 Gitee捐助 50 罗宾 感谢您的开源项目!\n2023-06-03 Gitee捐助 50 Admin 感谢您的开源项目!\n2023-05-29 微信红包 20 TYY \n2023-05-29 Gitee捐助 10 笑看 感谢您的开源项目!\n2023-05-26 微信红包 50 至少还有满天星光照耀你 \n2023-02-23 Gitee捐助 10 Yohanes 感谢您的开源项目!\n2023-02-23 Gitee捐助 20 jam_lee 感谢您的开源项目!希望能支持域名映射\n2023-02-10 Gitee捐助 5 实习两年半 感谢您的开源项目!\n2023-02-02 Gitee捐助 10 阳光很暖 感谢您的开源项目!",normalizedContent:"日期 渠道 金额 昵称 备注\n2023-12-28 微信红包 50 雪猫 请大佬吃肯德基\n2023-12-27 微信红包 50 d 请大佬喝杯茶\n2023-12-25 微信赞赏码 30 simen 伟大的项目,尽点绵薄之力\n2023-12-25 微信红包 50 kai 大佬加油\n2023-12-22 微信赞赏 30 walking 好东西必须支持一下\n2023-12-21 微信红包 100 洗最大的碗 中微子越来越强大,雨哥越来越富有\n2023-12-15 gitee捐助 10 一杯香梨 \n2023-12-12 微信红包 50 喜鸽小宝 \n2023-11-30 支付宝收款码 30 *平 大佬继续加油\n2023-11-30 gitee捐助 10 26263 感谢您的开源项目!\n2023-11-30 微信红包 10 姫野永遠 \n2023-11-26 微信转账 180 teacher du \n2023-11-10 微信红包 50 喜鸽小宝 \n2023-11-01 微信红包 20 sun 感谢大佬,请你喝杯奶茶[微笑]\n2023-10-30 微信赞赏 50 杨娃娃 \n2023-10-16 微信转账 50 mark isaac赵方丈 金额不大,开源感恩。\n2023-10-11 微信红包 50 喜鸽小宝 \n2023-10-10 微信红包 20 海洋 \n2023-07-31 gitee捐助 50 失败女神 感谢您的开源项目!\n2023-07-28 微信转账 50 adrianpteltd.com-咨询 \n2023-07-12 微信红包 100 maxkeytop 请大佬抽包烟\n2023-07-04 微信红包 50 姫野永遠 \n2023-06-29 微信红包 16.8 迟迟🌱 加油\n2023-06-27 微信红包 30 arno \n2023-06-25 gitee捐助 10 zhujue888 感谢您的开源项目!\n2023-06-16 微信红包 50 小跟班 \n2023-06-10 gitee捐助 10 失败女神 感谢您的开源项目!\n2023-06-09 gitee捐助 50 admin 感谢您的开源项目!\n2023-06-09 微信红包 50 李阳 开源无限好\n2023-06-09 gitee捐助 50 罗宾 感谢您的开源项目!\n2023-06-07 gitee捐助 50 罗宾 感谢您的开源项目!\n2023-06-03 gitee捐助 50 admin 感谢您的开源项目!\n2023-05-29 微信红包 20 tyy \n2023-05-29 gitee捐助 10 笑看 感谢您的开源项目!\n2023-05-26 微信红包 50 至少还有满天星光照耀你 \n2023-02-23 gitee捐助 10 yohanes 感谢您的开源项目!\n2023-02-23 gitee捐助 20 jam_lee 感谢您的开源项目!希望能支持域名映射\n2023-02-10 gitee捐助 5 实习两年半 感谢您的开源项目!\n2023-02-02 gitee捐助 10 阳光很暖 感谢您的开源项目!",charsets:{cjk:!0},lastUpdated:"2023/12/29, 13:32:03",lastUpdatedTimestamp:1703827923e3},{title:"2024年",frontmatter:{title:"2024年",date:"2024-04-16T19:22:05.000Z",permalink:"/pages/acdf0a/"},regularPath:"/03.%E6%94%AF%E6%8C%81%E6%88%91%E4%BB%AC/99.%E8%B5%9E%E8%B5%8F%E5%85%AC%E7%A4%BA/99.2024%E5%B9%B4.html",relativePath:"03.支持我们/99.赞赏公示/99.2024年.md",key:"v-8f390972",path:"/pages/acdf0a/",headersStr:null,content:"日期 渠道 金额 昵称 备注\n2024-11-19 支付宝收款码 2 *亮 \n2024-10-06 Gitee捐助 100 碧云天 感谢您的开源项目!\n2024-10-14 微信红包 5 泛微eteams刘新东17699059661 \n2024-09-04 Gitee捐助 8.88 lusen998 感谢您的开源项目!\n2024-08-30 微信转账 100 吴忧吴虑 \n2024-07-29 Gitee捐助 10 QuanJWS 感谢您的开源项目!看着很不错的样子,加油!\n2024-07-29 微信赞赏码 120 陈某 \n2024-05-07 微信转账 100 仲秀 \n2024-04-16 微信转账 100 暮光:城中城 \n2024-04-03 微信转账 100 仲秀 大神,非常感谢\n2024-03-24 Gitee捐助 10 include \n2024-03-24 微信赞赏码 9 宗 麻烦了,最好能加一个返回公网IP。\n 不知道有没有几乎通用的方案\n2024-03-22 微信红包 20 不允 请你吃外卖\n2024-03-12 微信红包 50 喜鸽小宝 \n2024-02-12 微信红包 50 喜鸽小宝 \n2024-02-02 微信红包 38.88 不请自来君 \n2024-01-24 Gitee捐助 30 唐吉诃德 感谢您的开源项目!是一个不错的项目!\n 希望继续完善界面UI的设计。\n2024-01-20 微信红包 shiyongsway 8.88 \n2024-01-17 微信红包 50 喜鸽小宝 ",normalizedContent:"日期 渠道 金额 昵称 备注\n2024-11-19 支付宝收款码 2 *亮 \n2024-10-06 gitee捐助 100 碧云天 感谢您的开源项目!\n2024-10-14 微信红包 5 泛微eteams刘新东17699059661 \n2024-09-04 gitee捐助 8.88 lusen998 感谢您的开源项目!\n2024-08-30 微信转账 100 吴忧吴虑 \n2024-07-29 gitee捐助 10 quanjws 感谢您的开源项目!看着很不错的样子,加油!\n2024-07-29 微信赞赏码 120 陈某 \n2024-05-07 微信转账 100 仲秀 \n2024-04-16 微信转账 100 暮光:城中城 \n2024-04-03 微信转账 100 仲秀 大神,非常感谢\n2024-03-24 gitee捐助 10 include \n2024-03-24 微信赞赏码 9 宗 麻烦了,最好能加一个返回公网ip。\n 不知道有没有几乎通用的方案\n2024-03-22 微信红包 20 不允 请你吃外卖\n2024-03-12 微信红包 50 喜鸽小宝 \n2024-02-12 微信红包 50 喜鸽小宝 \n2024-02-02 微信红包 38.88 不请自来君 \n2024-01-24 gitee捐助 30 唐吉诃德 感谢您的开源项目!是一个不错的项目!\n 希望继续完善界面ui的设计。\n2024-01-20 微信红包 shiyongsway 8.88 \n2024-01-17 微信红包 50 喜鸽小宝 ",charsets:{cjk:!0},lastUpdated:"2024/12/07, 14:58:40",lastUpdatedTimestamp:173355472e4},{title:"企业登记案例",frontmatter:{title:"企业登记案例",date:"2020-05-14T11:39:45.000Z",permalink:"/pages/5d571c"},regularPath:"/04.%E6%A1%88%E4%BE%8B/01.%E7%94%A8%E6%88%B7%E4%BD%BF%E7%94%A8%E6%A1%88%E4%BE%8B/01.%E4%BC%81%E4%B8%9A%E7%99%BB%E8%AE%B0.html",relativePath:"04.案例/01.用户使用案例/01.企业登记.md",key:"v-c54ce8dc",path:"/pages/5d571c/",headers:[{level:2,title:"企业登记",slug:"企业登记",normalizedTitle:"企业登记",charIndex:2},{level:2,title:"案例展示",slug:"案例展示",normalizedTitle:"案例展示",charIndex:64}],headersStr:"企业登记 案例展示",content:"# 企业登记\n\n如果您所在的企业使用到了中微子代理,麻烦抽出宝贵的时间点击这里进行登记,这将会助力中微子代理走得更远。\n\n\n# 案例展示\n\n企业名称 LOGO 官网地址 使用人数 用途\n北京吉威空间信息股份有限公司 http://www.geoway.com.cn 10 开发环境的session会话同步与开发环境的对接测试华为云与微信等云端回调接口\n悦邻供应链科技有限公司 https://yinghecloud.com 10 开发及生产环境内网服务器VPN搭建,本地开发服务端口调试\n阿依瓦(北京)技术有限公司 https://www.alva.com.cn 50 开发及生产环境内网服务器VPN搭建,本地开发服务端口调试,云端同步数据等\n常州裕景信息科技有限公司 无 5 远程管理虚拟机,接口、数据库等功能调试\n湖北楚商联盟金融信息服务有限公司 http://www.chually.cn 10 开发及生产环境内网服务器VPN搭建,本地开发服务端口调试,云端同步数据等\n中科元景智能(深圳)有限公司 https://yjupi.com 20 本地开发连接测试环境及生产环境内网服务器,包含数据库、redis、模块服务等\n长沙小蜂科技有限公司 无 1~3人 主要用于测试环境内网服务器,包含数据库,远程桌面等\n江西六湛科技 http://www.liuzhankj.com 12 主要用于部署一些使用时长较短的项目\n杭州艾佳智能科技有限公司 http://www.ajaiot.com 12-16人 公司部分设备是通过udp通信的,对接调试设备,搭建测试环境服务网关的时候需要",normalizedContent:"# 企业登记\n\n如果您所在的企业使用到了中微子代理,麻烦抽出宝贵的时间点击这里进行登记,这将会助力中微子代理走得更远。\n\n\n# 案例展示\n\n企业名称 logo 官网地址 使用人数 用途\n北京吉威空间信息股份有限公司 http://www.geoway.com.cn 10 开发环境的session会话同步与开发环境的对接测试华为云与微信等云端回调接口\n悦邻供应链科技有限公司 https://yinghecloud.com 10 开发及生产环境内网服务器vpn搭建,本地开发服务端口调试\n阿依瓦(北京)技术有限公司 https://www.alva.com.cn 50 开发及生产环境内网服务器vpn搭建,本地开发服务端口调试,云端同步数据等\n常州裕景信息科技有限公司 无 5 远程管理虚拟机,接口、数据库等功能调试\n湖北楚商联盟金融信息服务有限公司 http://www.chually.cn 10 开发及生产环境内网服务器vpn搭建,本地开发服务端口调试,云端同步数据等\n中科元景智能(深圳)有限公司 https://yjupi.com 20 本地开发连接测试环境及生产环境内网服务器,包含数据库、redis、模块服务等\n长沙小蜂科技有限公司 无 1~3人 主要用于测试环境内网服务器,包含数据库,远程桌面等\n江西六湛科技 http://www.liuzhankj.com 12 主要用于部署一些使用时长较短的项目\n杭州艾佳智能科技有限公司 http://www.ajaiot.com 12-16人 公司部分设备是通过udp通信的,对接调试设备,搭建测试环境服务网关的时候需要",charsets:{cjk:!0},lastUpdated:"2023/10/26, 20:19:20",lastUpdatedTimestamp:169832276e4},{title:"2.x",frontmatter:{title:"2.x",date:"2023-10-26T17:43:43.000Z",permalink:"/pages/ff3519/"},regularPath:"/05.%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/01.%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95/98.2.x.html",relativePath:"05.更新记录/01.版本记录/98.2.x.md",key:"v-6f41e9e0",path:"/pages/ff3519/",headers:[{level:2,title:"2.0.2",slug:"_2-0-2",normalizedTitle:"2.0.2",charIndex:2},{level:2,title:"2.0.1",slug:"_2-0-1",normalizedTitle:"2.0.1",charIndex:620},{level:2,title:"2.0.0",slug:"_2-0-0",normalizedTitle:"2.0.0",charIndex:832}],headersStr:"2.0.2 2.0.1 2.0.0",content:"# 2.0.2\n\n * bug修复\n * 解决安全组在ipv6场景下误拦截导致域名映射访问不通的问题\n * 解决native编译后,端口池批量删除报错的问题\n * 解决客户端docker方式部署环境变量指定参数不生效的问题\n * 服务端解决native下清理日志定时任务报错的问题\n * 解决后台分页查询的已知问题\n * 端口映射中的客户端ip字段加长一点,解决配置阿里云数据库域名字段不够的问题\n * 解决服务端native部署时,访问后台用户列表,日志警告“you should use: nativeMetadata.registerField(field) at aot runtime”的问题\n * 新增功能\n * 新增后台域名管理,⽀持新增、修改、删除、禁⽤主域名,支持添加多级域名。\n * 域名管理支持上传域名对应的SSL证书、⽀持设置强制HTTPS、⽀持域名映射⾃动加载对应的服务器证书。\n * 端口映射支持选择切换不同的主域名,⽀持绑定多个⼦域名,单个端⼝⽀持绑定多个不同的主域名。\n * 升级须知:\n * 域名和SSL证书的配置由配置文件配置改为后台域名管理页面配置。\n * 去掉了配置文件声明服务器端域名和证书的方式,改为通过页面进行管理,请注意自行进行数据迁移。\n * 数据库新增域名表和域名映射中间表,修改了端口映射表,涉及到表结构变更,执行增量SQL\n\n\n# 2.0.1\n\n * jdk版本升级为21\n * 新增安全组模块,支持黑名单、白名单限制\n * 支持对用户、license限速\n * 修复HTTP(S)映射时使用tcp端口访问正常,使用域名访问偶现一直loading的问题\n * 修复HTTP(S)映射时使用映射的域名上传文件时,连接中断的问题\n * 升级须知:\n * jdk版本升级为了jdk21,jar部署时请注意\n * 涉及到表结构变更,执行增量SQL\n\n\n# 2.0.0\n\n * solon版本升级为2.5.11\n * jdk版本升级为17\n * 支持原生编译改造\n * 默认支持的数据库由sqlite改为h2\n * 升级须知:\n * jdk版本升级为了jdk17,jar部署时请注意\n * 去掉了默认的sqlite数据库,改为了h2。如果之前使用sqlite,请自行处理数据迁移\n * 配置文件做了较大调整,请参照官网使用须知中的服务端配置、客户端配置进行更新",normalizedContent:"# 2.0.2\n\n * bug修复\n * 解决安全组在ipv6场景下误拦截导致域名映射访问不通的问题\n * 解决native编译后,端口池批量删除报错的问题\n * 解决客户端docker方式部署环境变量指定参数不生效的问题\n * 服务端解决native下清理日志定时任务报错的问题\n * 解决后台分页查询的已知问题\n * 端口映射中的客户端ip字段加长一点,解决配置阿里云数据库域名字段不够的问题\n * 解决服务端native部署时,访问后台用户列表,日志警告“you should use: nativemetadata.registerfield(field) at aot runtime”的问题\n * 新增功能\n * 新增后台域名管理,⽀持新增、修改、删除、禁⽤主域名,支持添加多级域名。\n * 域名管理支持上传域名对应的ssl证书、⽀持设置强制https、⽀持域名映射⾃动加载对应的服务器证书。\n * 端口映射支持选择切换不同的主域名,⽀持绑定多个⼦域名,单个端⼝⽀持绑定多个不同的主域名。\n * 升级须知:\n * 域名和ssl证书的配置由配置文件配置改为后台域名管理页面配置。\n * 去掉了配置文件声明服务器端域名和证书的方式,改为通过页面进行管理,请注意自行进行数据迁移。\n * 数据库新增域名表和域名映射中间表,修改了端口映射表,涉及到表结构变更,执行增量sql\n\n\n# 2.0.1\n\n * jdk版本升级为21\n * 新增安全组模块,支持黑名单、白名单限制\n * 支持对用户、license限速\n * 修复http(s)映射时使用tcp端口访问正常,使用域名访问偶现一直loading的问题\n * 修复http(s)映射时使用映射的域名上传文件时,连接中断的问题\n * 升级须知:\n * jdk版本升级为了jdk21,jar部署时请注意\n * 涉及到表结构变更,执行增量sql\n\n\n# 2.0.0\n\n * solon版本升级为2.5.11\n * jdk版本升级为17\n * 支持原生编译改造\n * 默认支持的数据库由sqlite改为h2\n * 升级须知:\n * jdk版本升级为了jdk17,jar部署时请注意\n * 去掉了默认的sqlite数据库,改为了h2。如果之前使用sqlite,请自行处理数据迁移\n * 配置文件做了较大调整,请参照官网使用须知中的服务端配置、客户端配置进行更新",charsets:{cjk:!0},lastUpdated:"2024/12/07, 14:58:40",lastUpdatedTimestamp:173355472e4},{title:"1.x",frontmatter:{title:"1.x",date:"2023-10-26T17:43:34.000Z",permalink:"/pages/dda8e5/"},regularPath:"/05.%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/01.%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95/99.1.x.html",relativePath:"05.更新记录/01.版本记录/99.1.x.md",key:"v-4624c390",path:"/pages/dda8e5/",headers:[{level:2,title:"1.9.0",slug:"_1-9-0",normalizedTitle:"1.9.0",charIndex:2},{level:2,title:"1.8.6",slug:"_1-8-6",normalizedTitle:"1.8.6",charIndex:101},{level:2,title:"1.8.5",slug:"_1-8-5",normalizedTitle:"1.8.5",charIndex:299},{level:2,title:"1.8.4",slug:"_1-8-4",normalizedTitle:"1.8.4",charIndex:399},{level:2,title:"1.8.3",slug:"_1-8-3",normalizedTitle:"1.8.3",charIndex:484},{level:2,title:"1.8.2",slug:"_1-8-2",normalizedTitle:"1.8.2",charIndex:524},{level:2,title:"1.8.0",slug:"_1-8-0",normalizedTitle:"1.8.0",charIndex:550},{level:2,title:"1.7.1",slug:"_1-7-1",normalizedTitle:"1.7.1",charIndex:612},{level:2,title:"1.7.0",slug:"_1-7-0",normalizedTitle:"1.7.0",charIndex:777},{level:2,title:"1.6.4",slug:"_1-6-4",normalizedTitle:"1.6.4",charIndex:818},{level:2,title:"1.6.0",slug:"_1-6-0",normalizedTitle:"1.6.0",charIndex:944},{level:2,title:"1.5.0",slug:"_1-5-0",normalizedTitle:"1.5.0",charIndex:1005},{level:2,title:"1.0.0",slug:"_1-0-0",normalizedTitle:"1.0.0",charIndex:1208}],headersStr:"1.9.0 1.8.6 1.8.5 1.8.4 1.8.3 1.8.2 1.8.0 1.7.1 1.7.0 1.6.4 1.6.0 1.5.0 1.0.0",content:"# 1.9.0\n\n * 端口映射支持UDP协议\n * 端口映射HTTP(S)新增打开网页按钮,优先使用域名打开\n * 新增/编辑端口映射时端口占用检测功能屏蔽,解决docker下使用的各种问题\n\n\n# 1.8.6\n\n * 端口映射选择端口支持分页\n * 新增/更新端口映射,增加端口占用检测(端口映射编辑时,如果端口号没有变动,则不验证。避免出现端口映射正在使用时,无法更新端口映射其他信息的问题)\n * 下拉搜索license,支持模糊搜索\n * license下拉用户搜索,支持模糊搜索\n * 端口映射HTTP(S)新增打开网页按钮\n * 客户端断开连接时,记录日志空指针异常问题修复\n\n\n# 1.8.5\n\n * 后台端口池管理支持批量删除\n * 端口映射下拉选择端口支持搜索\n * 客户端/服务端配置增加心跳日志开关,有需要时开启,方便排查问题\n * 客户端/服务端读写超时逻辑微调\n\n\n# 1.8.4\n\n * 增加对mariadb的支持\n * 服务端/客户端,支持配置文件、启动参数指定日志级别\n * 客户端支持配置文件指定重连间隔,是否开启无限重连\n\n\n# 1.8.3\n\n * 客户端重连优化\n * 服务端验证客户端身份逻辑优化\n\n\n# 1.8.2\n\n * 增加HTTPS的支持。\n\n\n# 1.8.0\n\n * 端口映射支持选择协议\n * HTTP协议下映射支持配置子域名(前提是server端配置了域名)\n\n\n# 1.7.1\n\n * 针对管理后台各页面的排序、搜索条件的优化\n * 增加端口池分组、相关的端口映射优化\n * 增加了报表管理模块:用户流量报表、license流量报表、用户流量月度明细、license流量月度明细\n * 完成首页图表展示:license统计、端口映射统计、今日流量统计、汇总流量统计、最近15日流量折线图\n\n\n# 1.7.0\n\n * 底层框架更换为Solon + MybatisPlus\n\n\n# 1.6.4\n\n * 支持代理服务端用户(删除/禁用)、端口池(删除/禁用/启用)、License(删除/禁用/启用)、端口映射(新增/删除/禁用/启用)实时生效\n * 启动参数优化\n * 服务端静态资源服务支持缓存、gzip压缩,提升响应速度\n\n\n# 1.6.0\n\n * 新增日志管理模块,调度日志迁移至日志管理\n * 管理后台新增登录日志\n * 新增首页流量统计\n\n\n# 1.5.0\n\n * 管理后台新增用户管理、License管理、端口映射、调度管理、客户端连接日志、调度日志\n * 支持默认sqlite数据库\n * 底层框架Aop、Banner、SqlMapper、Ioc、@Value注解、Yml配置加载、静态资源服务等优化\n * 底层框架新增@Async、@Singleton等注解\n * 新增AsgcCompiler、ApplicationEvent机制封装\n\n\n# 1.0.0\n\n> 第一个基本可用版本\n\n * 基于自研底层应用框架、Netty\n * 纯配置实现、无管理后台\n * 支持TCP代理",normalizedContent:"# 1.9.0\n\n * 端口映射支持udp协议\n * 端口映射http(s)新增打开网页按钮,优先使用域名打开\n * 新增/编辑端口映射时端口占用检测功能屏蔽,解决docker下使用的各种问题\n\n\n# 1.8.6\n\n * 端口映射选择端口支持分页\n * 新增/更新端口映射,增加端口占用检测(端口映射编辑时,如果端口号没有变动,则不验证。避免出现端口映射正在使用时,无法更新端口映射其他信息的问题)\n * 下拉搜索license,支持模糊搜索\n * license下拉用户搜索,支持模糊搜索\n * 端口映射http(s)新增打开网页按钮\n * 客户端断开连接时,记录日志空指针异常问题修复\n\n\n# 1.8.5\n\n * 后台端口池管理支持批量删除\n * 端口映射下拉选择端口支持搜索\n * 客户端/服务端配置增加心跳日志开关,有需要时开启,方便排查问题\n * 客户端/服务端读写超时逻辑微调\n\n\n# 1.8.4\n\n * 增加对mariadb的支持\n * 服务端/客户端,支持配置文件、启动参数指定日志级别\n * 客户端支持配置文件指定重连间隔,是否开启无限重连\n\n\n# 1.8.3\n\n * 客户端重连优化\n * 服务端验证客户端身份逻辑优化\n\n\n# 1.8.2\n\n * 增加https的支持。\n\n\n# 1.8.0\n\n * 端口映射支持选择协议\n * http协议下映射支持配置子域名(前提是server端配置了域名)\n\n\n# 1.7.1\n\n * 针对管理后台各页面的排序、搜索条件的优化\n * 增加端口池分组、相关的端口映射优化\n * 增加了报表管理模块:用户流量报表、license流量报表、用户流量月度明细、license流量月度明细\n * 完成首页图表展示:license统计、端口映射统计、今日流量统计、汇总流量统计、最近15日流量折线图\n\n\n# 1.7.0\n\n * 底层框架更换为solon + mybatisplus\n\n\n# 1.6.4\n\n * 支持代理服务端用户(删除/禁用)、端口池(删除/禁用/启用)、license(删除/禁用/启用)、端口映射(新增/删除/禁用/启用)实时生效\n * 启动参数优化\n * 服务端静态资源服务支持缓存、gzip压缩,提升响应速度\n\n\n# 1.6.0\n\n * 新增日志管理模块,调度日志迁移至日志管理\n * 管理后台新增登录日志\n * 新增首页流量统计\n\n\n# 1.5.0\n\n * 管理后台新增用户管理、license管理、端口映射、调度管理、客户端连接日志、调度日志\n * 支持默认sqlite数据库\n * 底层框架aop、banner、sqlmapper、ioc、@value注解、yml配置加载、静态资源服务等优化\n * 底层框架新增@async、@singleton等注解\n * 新增asgccompiler、applicationevent机制封装\n\n\n# 1.0.0\n\n> 第一个基本可用版本\n\n * 基于自研底层应用框架、netty\n * 纯配置实现、无管理后台\n * 支持tcp代理",charsets:{cjk:!0},lastUpdated:"2023/10/26, 17:54:01",lastUpdatedTimestamp:1698314041e3},{title:"里程碑",frontmatter:{title:"里程碑",date:"2023-10-26T17:41:26.000Z",permalink:"/pages/e406dd/"},regularPath:"/05.%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/02.%E9%87%8C%E7%A8%8B%E7%A2%91.html",relativePath:"05.更新记录/02.里程碑.md",key:"v-48315f2d",path:"/pages/e406dd/",headersStr:null,content:" * 2024-12-10 2.0.2版本发布,新增域名管理,端口映射支持绑定多个域名\n * 2023-12-21 2.0.1版本发布,jdk版本升级到21,支持安全组(黑/白名单IP限制)、限速\n * 2023-10-31 2.0.0版本发布,升级jdk版本至jdk17、支持原生编译、去掉sqlite改为默认H2数据库\n * 2023-09-25 中微子代理Gitee Star数突破1000\n * 2023-09-22 1.9.0版本发布,端口映射支持UDP协议\n * 2023-09-07 1.8.6版本发布,后台若干细节优化\n * 2023-07-04 1.8.5版本发布,后台若干细节优化、配置文件优化\n * 2023-06-08 1.8.4版本发布,增加对mariadb的支持、配置文件支持指定日志级别、重连参数\n * 2023-06-03 1.8.3版本发布,客户端重连优化、服务端验证客户端身份逻辑优化\n * 2023-05-27 1.8.2版本发布,增加HTTPS支持\n * 2023-04-03 1.8.0版本发布,端口映射支持选择协议,HTTP映射支持子域名\n * 2023-03-26 1.7.1版本发布,新增端口池分组、新增报表管理模块、首页图表优化\n * 2023-03-12 1.7.0版本发布,底层框架更换为Solon + MybatisPlus\n * 2023-02-23 1.6.4版本发布,管理后台增、删、改、禁用实时生效,启动参数、GZip优化\n * 2023-01-16 加入Dromara组织\n * 2023-01-08 中微子代理Gitee Star突破100\n * 2022-11-23 1.6.0版本发布,新增日志管理模块,新增首页流量统计\n * 2022-10-12 1.5.0版本发布,底层框架优化,新增管理后台\n * 2022-06-16 1.0.0版本发布,基于自研应用框架、纯配置无管理后台",normalizedContent:" * 2024-12-10 2.0.2版本发布,新增域名管理,端口映射支持绑定多个域名\n * 2023-12-21 2.0.1版本发布,jdk版本升级到21,支持安全组(黑/白名单ip限制)、限速\n * 2023-10-31 2.0.0版本发布,升级jdk版本至jdk17、支持原生编译、去掉sqlite改为默认h2数据库\n * 2023-09-25 中微子代理gitee star数突破1000\n * 2023-09-22 1.9.0版本发布,端口映射支持udp协议\n * 2023-09-07 1.8.6版本发布,后台若干细节优化\n * 2023-07-04 1.8.5版本发布,后台若干细节优化、配置文件优化\n * 2023-06-08 1.8.4版本发布,增加对mariadb的支持、配置文件支持指定日志级别、重连参数\n * 2023-06-03 1.8.3版本发布,客户端重连优化、服务端验证客户端身份逻辑优化\n * 2023-05-27 1.8.2版本发布,增加https支持\n * 2023-04-03 1.8.0版本发布,端口映射支持选择协议,http映射支持子域名\n * 2023-03-26 1.7.1版本发布,新增端口池分组、新增报表管理模块、首页图表优化\n * 2023-03-12 1.7.0版本发布,底层框架更换为solon + mybatisplus\n * 2023-02-23 1.6.4版本发布,管理后台增、删、改、禁用实时生效,启动参数、gzip优化\n * 2023-01-16 加入dromara组织\n * 2023-01-08 中微子代理gitee star突破100\n * 2022-11-23 1.6.0版本发布,新增日志管理模块,新增首页流量统计\n * 2022-10-12 1.5.0版本发布,底层框架优化,新增管理后台\n * 2022-06-16 1.0.0版本发布,基于自研应用框架、纯配置无管理后台",charsets:{cjk:!0},lastUpdated:"2024/12/07, 15:18:59",lastUpdatedTimestamp:1733555939e3},{title:"支持这个项目",frontmatter:{title:"支持这个项目",date:"2020-05-12T15:09:57.000Z",permalink:"/pages/1b12ed",sidebar:!1,article:!1},regularPath:"/06.%E5%85%B3%E4%BA%8E%E6%88%91%E4%BB%AC/01.%E8%B5%9E%E5%8A%A9.html",relativePath:"06.关于我们/01.赞助.md",key:"v-555f4f17",path:"/pages/1b12ed/",headers:[{level:2,title:"致谢",slug:"致谢",normalizedTitle:"致谢",charIndex:87}],headersStr:"致谢",content:"如果您正在使用这个项目并感觉良好,或者是想支持我继续开发,您可以通过如下任意方式支持我:\n\n 1. Star并分享 neutrino-proxy 🚀 谢谢! ❤️\n\n\n# 致谢\n\n感谢给予支持的朋友,您的支持是我前进的动力 🎉",normalizedContent:"如果您正在使用这个项目并感觉良好,或者是想支持我继续开发,您可以通过如下任意方式支持我:\n\n 1. star并分享 neutrino-proxy 🚀 谢谢! ❤️\n\n\n# 致谢\n\n感谢给予支持的朋友,您的支持是我前进的动力 🎉",charsets:{cjk:!0},lastUpdated:"2023/03/27, 13:17:16",lastUpdatedTimestamp:1679894236e3},{title:"博客文章",frontmatter:{archivesPage:!0,title:"博客文章",permalink:"/blog/",article:!1},regularPath:"/@pages/archivesPage.html",relativePath:"@pages/archivesPage.md",key:"v-8fd8c9ac",path:"/blog/",headersStr:null,content:"",normalizedContent:"",charsets:{},lastUpdated:"2023/03/13, 20:06:13",lastUpdatedTimestamp:1678709173e3},{title:"Home",frontmatter:{home:!0,heroImage:"/img/logo-0.75x.png",heroText:"Neutrino-Proxy",tagline:"🚀一个基于Netty的开源内网穿透神器",actionText:"开始使用 →",actionLink:"/pages/793dcb/",bannerBg:"none",features:[{title:"流量监控",details:"首页图表、报表管理多维度流量监控。全方位掌握实时、历史代理数据。"},{title:"域名映射",details:"HTTP代理绑定子域名,开发调试三方回调更方便。"},{title:"管理后台",details:"使用端口池统一管理对外代理端口,支持多用户、多客户端使用。端口/用户/License/端口映射在后台禁用实时生效。"},{title:"安全组",details:"安全组模块支持黑/白名单IP访问限制。"},{title:"限速",details:"支持对License、端口映射限制上传、下载速率"},{title:"Docker",details:"服务端/客户端支持Docker一键部署。"},{title:"隧道SSL加密",details:"隧道通信支持SSL,保护您的数据安全"},{title:"多种协议",details:"支持TCP、HTTP、HTTPS、UDP"},{title:"原生部署",details:"支持原生部署,更简单、性能更好的使用体验"}],postList:"none"},regularPath:"/",relativePath:"index.md",key:"v-cd2e75fa",path:"/",headers:[{level:2,title:"⚡ 反馈与交流",slug:"⚡-反馈与交流",normalizedTitle:"⚡ 反馈与交流",charIndex:17}],headersStr:"⚡ 反馈与交流",content:'支持这个项目\n\n\n\n\n\n\n\n\n# ⚡ 反馈与交流\n\n在使用过程中有任何问题和想法,请给我提 Issue。 你也可以在Issue查看别人提的问题和给出解决方案。\n\n或者加入我们的交流群:\n\n中微子 微信群(添加我微信备注"中微子进群")\n\n\n\n\n\n# 🌈特别赞助\n\n喜鸽小宝\n\n一个爱好写代码的同学。\n \n\n去不图床\n\n杜老师说旗下付费图片外链平台。\n \n\nzyplayer-doc\n\n私有化部署的企业级文档管理与知识库AI问答平台。\n\n\n# 🤝 dromara 组织项目\n\n为往圣继绝学,一个人或许能走的更快,但一群人会走的更远。\n\n\n\n\n🤝 友情开源项目\n\n\n\n',normalizedContent:'支持这个项目\n\n\n\n\n\n\n\n\n# ⚡ 反馈与交流\n\n在使用过程中有任何问题和想法,请给我提 issue。 你也可以在issue查看别人提的问题和给出解决方案。\n\n或者加入我们的交流群:\n\n中微子 微信群(添加我微信备注"中微子进群")\n\n\n\n\n\n# 🌈特别赞助\n\n喜鸽小宝\n\n一个爱好写代码的同学。\n \n\n去不图床\n\n杜老师说旗下付费图片外链平台。\n \n\nzyplayer-doc\n\n私有化部署的企业级文档管理与知识库ai问答平台。\n\n\n# 🤝 dromara 组织项目\n\n为往圣继绝学,一个人或许能走的更快,但一群人会走的更远。\n\n\n\n\n🤝 友情开源项目\n\n\n\n',charsets:{cjk:!0},lastUpdated:"2024/04/16, 20:06:44",lastUpdatedTimestamp:1713269204e3}],themeConfig:{nav:[{text:"首页",link:"/"},{text:"文档",link:"/pages/793dcb/",items:[{text:"快速上手",link:"/pages/793dcb/"},{text:"后台操作指南",link:"/pages/793dcc/"}]},{text:"案例",link:"/pages/5d571c/"},{text:"支持",link:"/pages/1ab20b/"},{text:"更新记录",link:"/pages/ff3519/"},{text:"GitCode",link:"https://gitcode.com/dromara/neutrino-proxy"},{text:"Gitee",link:"https://gitee.com/dromara/neutrino-proxy"}],sidebarDepth:2,logo:"/img/logo.png",repo:"https://github.com/dromara/neutrino-proxy",repoLabel:"Github",searchMaxSuggestions:10,lastUpdated:"上次更新",sidebar:{"/01.使用教程/":[{title:"安装部署",collapsable:!1,children:[["01.安装部署/01.快速上手.md","快速上手","/pages/793dcb"],["01.安装部署/02.使用jar部署.md","使用jar部署","/pages/eebea1/"],["01.安装部署/03.使用docker容器化部署.md","使用docker容器化部署","/pages/5b9bef/"],["01.安装部署/04.原生部署.md","原生部署","/pages/69699a/"],["01.安装部署/05.使用docker-compose部署.md","使用docker-compose部署","/pages/2d4123/"]]},{title:"使用须知",collapsable:!1,children:[["02.使用须知/01.管理后台.md","后台操作指南","/pages/793dcc"],["02.使用须知/02.关于端口.md","关于端口","/pages/68badb/"],["02.使用须知/03.域名映射.md","域名映射","/pages/269a2e/"],["02.使用须知/04.HTTPS配置.md","HTTPS配置","/pages/99a300/"],["02.使用须知/05.服务端配置.md","服务端配置","/pages/f2d0f1/"],["02.使用须知/06.客户端配置.md","客户端配置","/pages/50ce10/"]]},{title:"常见问题",collapsable:!1,children:[["99.常见问题/01.客户端连接服务端失败.md","客户端连接服务端失败","/pages/31d253/"],["99.常见问题/02.易混淆的2类证书.md","易混淆的2类证书","/pages/e4c3d7/"],["99.常见问题/03.udp代理无效.md","udp代理无效","/pages/7b990f/"],["99.常见问题/04.Vue项目出现Invalid Host header 的解决方案.md","Vue项目出现Invalid Host header 的解决方案","/pages/441163/"],["99.常见问题/05.服务端原声包启动,db初始化异常.md","服务端原声包启动,db初始化异常","/pages/7dcba8/"]]}],catalogue:{},"/02.常见问题/":[{title:"配置",collapsable:!1,children:[["01.配置/01.主题配置.md","主题配置","/pages/a20ce8"],["01.配置/02.首页配置.md","首页配置","/pages/f14bdb"],["01.配置/03.front matter配置.md","front matter配置","/pages/3216b0"],["01.配置/04.目录页配置.md","目录页配置","/pages/54651a"],["01.配置/05.添加摘要.md","添加摘要","/pages/1cc523"],["01.配置/06.修改主题颜色和样式.md","修改主题颜色和样式","/pages/f51918"],["01.配置/07.评论栏.md","评论栏","/pages/ce175c"]]}],"/03.支持我们/":[["01.个人赞赏.md","个人赞赏","/pages/1ab20b/"],{title:"贡献指南",collapsable:!1,children:[["02.贡献指南/01.如何贡献.md","如何贡献","/pages/a3f096/"],["02.贡献指南/02.项目结构.md","项目结构","/pages/2f674a"],["02.贡献指南/03.实现原理.md","实现原理","/pages/dd027d/"]]},{title:"赞赏公示",collapsable:!1,children:[["99.赞赏公示/99.2024年.md","2024年","/pages/acdf0a/"],["99.赞赏公示/100.2023年.md","2023年","/pages/cded59/"]]}],"/04.案例/":[{title:"用户使用案例",collapsable:!1,children:[["01.用户使用案例/01.企业登记.md","企业登记案例","/pages/5d571c"]]}],"/05.更新记录/":[{title:"版本记录",collapsable:!1,children:[["01.版本记录/98.2.x.md","2.x","/pages/ff3519/"],["01.版本记录/99.1.x.md","1.x","/pages/dda8e5/"]]},["02.里程碑.md","里程碑","/pages/e406dd/"]],"/06.关于我们/":[["01.赞助.md","支持这个项目","/pages/1b12ed"]]},updateBar:{showToArticle:!1},pageStyle:"line",category:!1,tag:!1,author:{name:"傲世孤尘",href:"https://gitee.com/dromara/neutrino-proxy"},social:{icons:[{iconClass:"icon-youjian",title:"发邮件",link:"mailto:[email protected]"},{iconClass:"icon-gitee",title:"Gitee",link:"https://gitee.com/dromara/neutrino-proxy"},{iconClass:"icon-github",title:"Github",link:"https://github.com/aoshiguchen/neutrino-proxy"}]},footer:{createYear:2023,copyrightInfo:"傲世孤尘 | MIT License"},htmlModules:{pageT:'\n <div class="wwads-cn wwads-horizontal page-wwads" data-id="136"></div>\n <style>\n .page-wwads{\n width:100%!important;\n min-height: 0;\n margin: 0;\n }\n .page-wwads .wwads-img img{\n width:80px!important;\n }\n .page-wwads .wwads-poweredby{\n width: 40px;\n position: absolute;\n right: 25px;\n bottom: 3px;\n }\n .wwads-content .wwads-text, .page-wwads .wwads-text{\n height: 100%;\n padding-top: 5px;\n display: block;\n }\n </style>\n '}}};var wc=t(120),Ec=t(121),kc=t(20);var Tc={computed:{$filterPosts(){return this.$site.pages.filter(e=>{const{frontmatter:{pageComponent:n,article:t,home:r}}=e;return!(n||!1===t||!0===r)})},$sortPosts(){return(e=this.$filterPosts).sort((e,n)=>{const t=e.frontmatter.sticky,r=n.frontmatter.sticky;return t&&r?t==r?Object(kc.a)(e,n):t-r:t&&!r?-1:!t&&r?1:Object(kc.a)(e,n)}),e;var e},$sortPostsByDate(){return(e=this.$filterPosts).sort((e,n)=>Object(kc.a)(e,n)),e;var e},$groupPosts(){return function(e){const n={},t={};for(let r=0,o=e.length;r<o;r++){const{frontmatter:{categories:o,tags:i}}=e[r];"array"===Object(kc.n)(o)&&o.forEach(t=>{t&&(n[t]||(n[t]=[]),n[t].push(e[r]))}),"array"===Object(kc.n)(i)&&i.forEach(n=>{n&&(t[n]||(t[n]=[]),t[n].push(e[r]))})}return{categories:n,tags:t}}(this.$sortPosts)},$categoriesAndTags(){return function(e){const n=[],t=[];for(let t in e.categories)n.push({key:t,length:e.categories[t].length});for(let n in e.tags)t.push({key:n,length:e.tags[n].length});return{categories:n,tags:t}}(this.$groupPosts)}}};Wt.component(wc.default),Wt.component(Ec.default);function Cc(e){return e.toString().padStart(2,"0")}t(280);Wt.component("Badge",()=>Promise.all([t.e(0),t.e(3)]).then(t.bind(null,408))),Wt.component("CodeBlock",()=>Promise.resolve().then(t.bind(null,120))),Wt.component("CodeGroup",()=>Promise.resolve().then(t.bind(null,121)));t(281);var jc=[({Vue:e,options:n,router:t,siteData:r})=>{r.pages.map(e=>{const{frontmatter:{date:n,author:t}}=e;"string"==typeof n&&"Z"===n.charAt(n.length-1)&&(e.frontmatter.date=function(e){e instanceof Date||(e=new Date(e));return`${e.getUTCFullYear()}-${Cc(e.getUTCMonth()+1)}-${Cc(e.getUTCDate())} ${Cc(e.getUTCHours())}:${Cc(e.getUTCMinutes())}:${Cc(e.getUTCSeconds())}`}(n)),t?e.author=t:r.themeConfig.author&&(e.author=r.themeConfig.author)}),e.mixin(Tc)},{},({Vue:e})=>{e.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{},({router:e})=>{"undefined"!=typeof window&&(window._hmt=window._hmt||[],function(){var e=document.createElement("script");e.src="https://hm.baidu.com/hm.js?f5901e55fecee5322d9f613841c717b8";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(e,n)}(),e.afterEach((function(e){_hmt.push(["_trackPageview",e.fullPath])})))}],Sc=[];class Ac extends class{constructor(){this.store=new Wt({data:{state:{}}})}$get(e){return this.store.state[e]}$set(e,n){Wt.set(this.store.state,e,n)}$emit(...e){this.store.$emit(...e)}$on(...e){this.store.$on(...e)}}{}Object.assign(Ac.prototype,{getPageAsyncComponent:ss,getLayoutAsyncComponent:cs,getAsyncComponent:ls,getVueComponent:us});var Oc={install(e){const n=new Ac;e.$vuepress=n,e.prototype.$vuepress=n}};function Pc(e,n){const t=n.toLowerCase();return e.options.routes.some(e=>e.path.toLowerCase()===t)}var $c={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(e){const n=this.pageKey||this.$parent.$page.key;return ds("pageKey",n),Wt.component(n)||Wt.component(n,ss(n)),Wt.component(n)?e(n):e("")}},Bc={functional:!0,props:{slotKey:String,required:!0},render:(e,{props:n,slots:t})=>e("div",{class:["content__"+n.slotKey]},t()[n.slotKey])},Ic={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},Lc=(t(282),t(283),Object(yc.a)(Ic,(function(){var e=this._self._c;return e("span",[e("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[e("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),this._v(" "),e("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})]),this._v(" "),e("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports),zc={functional:!0,render(e,{parent:n,children:t}){if(n._isMounted)return t;n.$once("hook:mounted",()=>{n.$forceUpdate()})}};Wt.config.productionTip=!1,Wt.use(Va),Wt.use(Oc),Wt.mixin(function(e,n,t=Wt){!function(e){e.locales&&Object.keys(e.locales).forEach(n=>{e.locales[n].path=n});Object.freeze(e)}(n),t.$vuepress.$set("siteData",n);const r=new(e(t.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((e,n)=>(n.startsWith("$")&&(e[n]=o[n].get),e),i),{computed:i}}(e=>class{setPage(e){this.__page=e}get $site(){return e}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:e={}}=this.$site;let n,t;for(const r in e)"/"===r?t=e[r]:0===this.$page.path.indexOf(r)&&(n=e[r]);return n||t||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:e}=this.$page.frontmatter;return"string"==typeof e&&e}get $title(){const e=this.$page,{metaTitle:n}=this.$page.frontmatter;if("string"==typeof n)return n;const t=this.$siteTitle,r=e.frontmatter.home?null:e.frontmatter.title||e.title;return t?r?r+" | "+t:t:r||"VuePress"}get $description(){const e=function(e){if(e){const n=e.filter(e=>"description"===e.name)[0];if(n)return n.content}}(this.$page.frontmatter.meta);return e||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(e,n){for(let t=0;t<e.length;t++){const r=e[t];if(r.path.toLowerCase()===n.toLowerCase())return r}return{path:"",frontmatter:{}}}(this.$site.pages,this.$route.path)}},_c)),Wt.component("Content",$c),Wt.component("ContentSlotsDistributor",Bc),Wt.component("OutboundLink",Lc),Wt.component("ClientOnly",zc),Wt.component("Layout",cs("Layout")),Wt.component("NotFound",cs("NotFound")),Wt.prototype.$withBase=function(e){const n=this.$site.base;return"/"===e.charAt(0)?n+e.slice(1):e},window.__VUEPRESS__={version:"1.9.2",hash:"81c3e3f2"},async function(e){const n="undefined"!=typeof window&&window.__VUEPRESS_ROUTER_BASE__?window.__VUEPRESS_ROUTER_BASE__:_c.routerBase||_c.base,t=new Va({base:n,mode:"history",fallback:!1,routes:xc,scrollBehavior:(e,n,t)=>t||(e.hash?!Wt.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(e.hash)}:{x:0,y:0})});!function(e){e.beforeEach((n,t,r)=>{if(Pc(e,n.path))r();else if(/(\/|\.html)$/.test(n.path))if(/\/$/.test(n.path)){const t=n.path.replace(/\/$/,"")+".html";Pc(e,t)?r(t):r()}else r();else{const t=n.path+"/",o=n.path+".html";Pc(e,o)?r(o):Pc(e,t)?r(t):r()}})}(t);const r={};try{await Promise.all(jc.filter(e=>"function"==typeof e).map(n=>n({Vue:Wt,options:r,router:t,siteData:_c,isServer:e})))}catch(e){console.error(e)}return{app:new Wt(Object.assign(r,{router:t,render:e=>e("div",{attrs:{id:"app"}},[e("RouterView",{ref:"layout"}),e("div",{class:"global-ui"},Sc.map(n=>e(n)))])})),router:t}}(!1).then(({app:e,router:n})=>{n.onReady(()=>{e.$mount("#app")})})}]); |