From 35a4210243e69007b582b7d5e660744b19355291 Mon Sep 17 00:00:00 2001 From: lan-dian <76939156+lan-dian@users.noreply.github.com> Date: Wed, 10 Apr 2024 10:37:52 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20lan-dian?= =?UTF-8?q?/lan-dian.github.io@2db02360eba81ec30a174a650507565a7c0dd1a4=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 4 +- about/index.html | 22 ++++---- archives/index.html | 22 ++++---- assets/js/{10.d62bd227.js => 10.72bb916d.js} | 2 +- assets/js/{11.38af9e77.js => 11.5ee1940e.js} | 2 +- assets/js/{12.cd6e2044.js => 12.fd6fc607.js} | 2 +- assets/js/13.5a370176.js | 1 + assets/js/14.c7aa95ae.js | 1 + assets/js/{14.58ca50e4.js => 15.3193a1b8.js} | 2 +- assets/js/{15.685b0f7b.js => 16.2a663ced.js} | 2 +- assets/js/16.b4f9ebe5.js | 1 - assets/js/{13.806e29a7.js => 17.c5fb2d31.js} | 2 +- assets/js/18.8c4103a5.js | 1 + assets/js/{2.03e83f96.js => 2.74fbac12.js} | 0 assets/js/{3.53b0d5e0.js => 3.a6e6f7b6.js} | 2 +- assets/js/{4.872d915b.js => 4.4a01c80f.js} | 0 assets/js/{5.823c0381.js => 5.8376b372.js} | 2 +- assets/js/{6.04089e2b.js => 6.0011087f.js} | 2 +- assets/js/{7.3a3648f1.js => 7.64809bd9.js} | 0 assets/js/{8.e8b4b7a7.js => 8.4e155094.js} | 2 +- assets/js/{9.0f196575.js => 9.7edf0ebe.js} | 2 +- .../js/{app.3a36e961.js => app.319c468f.js} | 4 +- categories/index.html | 20 ++++--- index.html | 8 +-- more/index.html | 20 +++---- pages/0d9ac7/index.html | 54 +++++++++++++++++++ pages/336431/index.html | 20 +++---- pages/479a6c/index.html | 26 ++++----- pages/4d9eaa/index.html | 25 ++++----- pages/67ef0c/index.html | 54 +++++++++++++++++++ sitemap.xml | 2 +- tags/index.html | 16 +++--- technology/index.html | 20 +++---- ui/index.html | 20 +++---- web/index.html | 30 ++++++----- 35 files changed, 262 insertions(+), 131 deletions(-) rename assets/js/{10.d62bd227.js => 10.72bb916d.js} (77%) rename assets/js/{11.38af9e77.js => 11.5ee1940e.js} (99%) rename assets/js/{12.cd6e2044.js => 12.fd6fc607.js} (98%) create mode 100644 assets/js/13.5a370176.js create mode 100644 assets/js/14.c7aa95ae.js rename assets/js/{14.58ca50e4.js => 15.3193a1b8.js} (77%) rename assets/js/{15.685b0f7b.js => 16.2a663ced.js} (77%) delete mode 100644 assets/js/16.b4f9ebe5.js rename assets/js/{13.806e29a7.js => 17.c5fb2d31.js} (77%) create mode 100644 assets/js/18.8c4103a5.js rename assets/js/{2.03e83f96.js => 2.74fbac12.js} (100%) rename assets/js/{3.53b0d5e0.js => 3.a6e6f7b6.js} (86%) rename assets/js/{4.872d915b.js => 4.4a01c80f.js} (100%) rename assets/js/{5.823c0381.js => 5.8376b372.js} (95%) rename assets/js/{6.04089e2b.js => 6.0011087f.js} (76%) rename assets/js/{7.3a3648f1.js => 7.64809bd9.js} (100%) rename assets/js/{8.e8b4b7a7.js => 8.4e155094.js} (76%) rename assets/js/{9.0f196575.js => 9.7edf0ebe.js} (76%) rename assets/js/{app.3a36e961.js => app.319c468f.js} (66%) create mode 100644 pages/0d9ac7/index.html create mode 100644 pages/67ef0c/index.html diff --git a/404.html b/404.html index d326744..99854c8 100644 --- a/404.html +++ b/404.html @@ -10,11 +10,11 @@ - +
404
我是谁?我在哪?
返回首页
- + diff --git a/about/index.html b/about/index.html index 040621d..ca3962b 100644 --- a/about/index.html +++ b/about/index.html @@ -10,23 +10,23 @@ - + -
- + diff --git a/archives/index.html b/archives/index.html index 43e936d..8e57786 100644 --- a/archives/index.html +++ b/archives/index.html @@ -10,25 +10,29 @@ - + -
- + diff --git a/assets/js/10.d62bd227.js b/assets/js/10.72bb916d.js similarity index 77% rename from assets/js/10.d62bd227.js rename to assets/js/10.72bb916d.js index d787cbe..69dd5fb 100644 --- a/assets/js/10.d62bd227.js +++ b/assets/js/10.72bb916d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{323:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{325:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/11.38af9e77.js b/assets/js/11.5ee1940e.js similarity index 99% rename from assets/js/11.38af9e77.js rename to assets/js/11.5ee1940e.js index b9c4675..b029468 100644 --- a/assets/js/11.38af9e77.js +++ b/assets/js/11.5ee1940e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{325:function(a,e,t){"use strict";t.r(e);var r=t(8),s=Object(r.a)({},(function(){var a=this,e=a._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[e("h2",{attrs:{id:"是什么"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#是什么"}},[a._v("#")]),a._v(" 是什么")]),a._v(" "),e("p",[a._v("Docker是一个容器技术,对进程进行封装隔离,进一步提供了文件系统,网络的隔离,屏蔽底层运行环境的差异,做到了完全一致。而且,比虚拟机的性能高出数倍。")]),a._v(" "),e("blockquote",[e("p",[a._v("和传统虚拟技术的差异")])]),a._v(" "),e("p",[a._v("传统的虚拟技术会虚拟硬件,虚拟操作系统,然后在该系统上运行进程。而Docker直接使用Linux提供的各种隔离技术,直接运行于主机上。")]),a._v(" "),e("blockquote",[e("p",[a._v("架构")])]),a._v(" "),e("p",[a._v("Docker 在运行时分为 Docker 引擎(也就是服务端守护进程)和客户端工具。\n也就是说,看起来是本地执行命令,其实原创也是支持的。")]),a._v(" "),e("h2",{attrs:{id:"怎么用"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#怎么用"}},[a._v("#")]),a._v(" 怎么用")]),a._v(" "),e("blockquote",[e("p",[a._v("一致的运行环境")])]),a._v(" "),e("p",[a._v("由于开发环境、测试环境、生产环境不一致,导致有些 bug 并未在开发过程中被发现。而 Docker 的镜像提供了"),e("strong",[a._v("除内核外")]),a._v("完整的运行时环境,确保了应用运行环境一致性。\n环境一致对开发也非常重要,如果是因为环境因素导致的问题,那么本地和上线的代码就不一样,而且解决起问题也会十分的麻烦。")]),a._v(" "),e("blockquote",[e("p",[a._v("一次编写,到处运行")])]),a._v(" "),e("p",[a._v("使用DockerFile,可以做到一次配置,可以快速的任何环境下完成部署,我们也常常感受到自己配置环境是非常麻烦的,而且在不同的机器上,由于之前环境的干扰,会出现很多意想不到的问题。")]),a._v(" "),e("blockquote",[e("p",[a._v("部署服务")])]),a._v(" "),e("p",[a._v("刚接触Linux,我们部署MySql,可能是下载安装配置等等,每个应用的流程都不一样,非常繁琐。\n之后我们知道了apt这样的管理工具可以让我们的部署大幅度简化。\n但是,如果之后需要部署什么东西,我们可以优先在网络上查询docker安装xxx,以此来提高速度,节约我们在环境上的时间。")]),a._v(" "),e("h2",{attrs:{id:"概念"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#概念"}},[a._v("#")]),a._v(" 概念")]),a._v(" "),e("p",[a._v("任何技术的学习都要明确他的概念,他基于了设计者的设计理念,方便我们和其他人交流复杂的概念。")]),a._v(" "),e("h3",{attrs:{id:"镜像-image"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#镜像-image"}},[a._v("#")]),a._v(" 镜像(image)")]),a._v(" "),e("p",[a._v("可以理解为一个独立系统打包后的所有内容,不包含任何的动态数据,本质是一个文件。")]),a._v(" "),e("h4",{attrs:{id:"分层存储"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#分层存储"}},[a._v("#")]),a._v(" 分层存储")]),a._v(" "),e("p",[a._v("镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。\n甚至在删除一层文件的时候,都仅仅只是标记删除,会对镜像的体积照成影响,额外的东西要在本层构建结束之前删掉。\n这样的分层设计,支持镜像的复用,我们也可以在已经有的镜像之上构建新的镜像。")]),a._v(" "),e("h3",{attrs:{id:"容器"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#容器"}},[a._v("#")]),a._v(" 容器")]),a._v(" "),e("p",[a._v("如果说镜像是文件,那么容器就是运行时。容器可以被创建、启动、停止、删除、暂停等。本质是一个进程。\n但是这个进程有自己独立的命名空间,所以有自己的文件系统,网络等等隔离特性。\n容器运行的本质就是,以镜像为基础层,在其上创建一个当前容器的存储层,我们可以称这个为容器"),e("strong",[a._v("运行时读写")]),a._v("而准备的存储层为"),e("strong",[a._v("容器存储层")]),a._v("。容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此,任何保存于容器存储层的信息都会随容器删除而丢失。所以要求我们必须在数据卷读写,其实本质就是文件读写的重定向。")]),a._v(" "),e("h3",{attrs:{id:"registry"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#registry"}},[a._v("#")]),a._v(" Registry")]),a._v(" "),e("p",[a._v("镜像是本地文件,docker的本质就为了让不同的环境运行,势必要方便拿到镜像。仓库是类型github的网址,里面有多个tag,一般代表不同的版本。默认tag是最新的版本。")]),a._v(" "),e("h2",{attrs:{id:"使用"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#使用"}},[a._v("#")]),a._v(" 使用")]),a._v(" "),e("h3",{attrs:{id:"基本命令"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#基本命令"}},[a._v("#")]),a._v(" 基本命令")]),a._v(" "),e("blockquote",[e("p",[a._v("docker pull")])]),a._v(" "),e("div",{staticClass:"language- line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[a._v("docker pull ubuntu\n")])]),a._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[a._v("1")]),e("br")])]),e("p",[a._v("从Registry拉取镜像。\n下载的时候,本质是在下载一个文件组,通过分层下载的方式,之前下载的过的文件会直接复用。\n同理,push可以把本地构建的镜像推送到云端。")]),a._v(" "),e("blockquote",[e("p",[a._v("docker run")])]),a._v(" "),e("div",{staticClass:"language- line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[a._v("docker run -itd ubuntu bash\n")])]),a._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[a._v("1")]),e("br")])]),e("p",[a._v("运行镜像->容器。\n可以加-it参数,一个是 -i:交互式操作,一个是 -t 终端。\n-d:后台执行。\n通过exit退出。\n进入正在运行容器是exec,其他的完全一样")]),a._v(" "),e("blockquote",[e("p",[a._v("容器命令")])]),a._v(" "),e("p",[a._v("docker ps -a\n查看容器\ndocker start xxx\ndocker stop xxx\ndocker restart xxx\ndocker rm xxx")]),a._v(" "),e("blockquote",[e("p",[a._v("docker logs -f")])]),a._v(" "),e("p",[a._v("可以和tail -f一样,查看日志。")]),a._v(" "),e("blockquote",[e("p",[a._v("docker image ls")])]),a._v(" "),e("p",[a._v("列出已经下载的镜像,后面可以加关键词搜索我们想看的\n这里有一个关键概念,ID,在我们需要操作镜像的时候,需要输入ID前3位,知道可以区分出他们就可以。\n可以使用docker image prune来清理镜像空间")]),a._v(" "),e("blockquote",[e("p",[a._v("docker image rm")])]),a._v(" "),e("p",[a._v("remove删除镜像\n值得注意的是,docke保护我们不会删除有运行容器的镜像,所以必须先删除容器,再删除镜像。")]),a._v(" "),e("h3",{attrs:{id:"数据卷-volume"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#数据卷-volume"}},[a._v("#")]),a._v(" 数据卷(volume)")]),a._v(" "),e("p",[a._v("数据卷就是挂载在我们磁盘空间的,不受容器影响的文件系统。我的理解是,可以让容器操作我们的目录,这个和容器无关的目录,数据卷提供了这种映射关系。\n可以通过-v 源目录:容器目录\n我们可以发现,docker都是源目录在前,容器目录在后的,此外,源目录必须是绝对路径。")]),a._v(" "),e("h3",{attrs:{id:"网络"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#网络"}},[a._v("#")]),a._v(" 网络")]),a._v(" "),e("p",[a._v("docker数据比较简单,但是网络确实是有难度的,之前我们说了网络会被隔离,那么我们如何访问docker内的服务呢。\ndocker提供了端口映射的功能,使用-p来指定,如果我们访问了本地的某个端口,就可以访问到容器内的某个端口。\n可是docker容器内的网络如何访问呢,这里docker给我们提供了一个机制,可以把容器加入一个互通的网络里面,docker network create -d bridge my-net,可以都使用这一个网络。\n运行的时候,使用 --network my-net 就可以接入这个网络了。\n但是如果你有多个容器之间需要互相连接,推荐使用 Docker Compose。")]),a._v(" "),e("h2",{attrs:{id:"dockerfile"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#dockerfile"}},[a._v("#")]),a._v(" DockerFile")]),a._v(" "),e("p",[a._v("docker build -t xxxx:xxx .")]),a._v(" "),e("blockquote",[e("p",[a._v("docker build工作原理")])]),a._v(" "),e("p",[a._v("我们执行的命令本质是一个客户端,真正的打包是在docker服务端完成的,当我们进行镜像构建的时候,并非所有定制都会通过 RUN 指令完成,经常会需要将一些本地文件复制进镜像,比如通过 COPY 指令、ADD 指令等。如何才能让服务端获得本地文件呢?\n这就是上下文的概念,会把这个路径下的所有文件打包,放进上传给docker服务端。\n所以:COPY 这类指令中的源文件的路径都是相对路径。为什么 COPY ../package.json /app 或者 COPY /opt/xxxx /app 无法工作的原因,因为这些路径已经超出了上下文的范围,Docker 引擎无法获得这些位置的文件。如果真的需要那些文件,应该将它们复制到上下文目录中去。\n同理,可以用 .gitignore 一样的语法写一个 .dockerignore,该文件是用于剔除不需要作为上下文传递给 Docker 引擎的。")]),a._v(" "),e("h3",{attrs:{id:"from"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#from"}},[a._v("#")]),a._v(" FROM")]),a._v(" "),e("p",[a._v("基于哪个镜像开始构建,操作系统都是轻量级的,比如apt,我们必须先执行apt update,然后才能进行安装,不然会报错")]),a._v(" "),e("h3",{attrs:{id:"run"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#run"}},[a._v("#")]),a._v(" RUN")]),a._v(" "),e("p",[a._v("运行命令,这里有个小细节,因为每次RUN都会构建新的层,所以我们可以使用Linux的换行命令实现")]),a._v(" "),e("div",{staticClass:"language- line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[a._v("RUN set -x; buildDeps='mysql' \\\n && apt update \\\n && apt install -y $buildDeps \\\n && apt purge -y --auto-remove $buildDeps\n")])]),a._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[a._v("1")]),e("br"),e("span",{staticClass:"line-number"},[a._v("2")]),e("br"),e("span",{staticClass:"line-number"},[a._v("3")]),e("br"),e("span",{staticClass:"line-number"},[a._v("4")]),e("br")])]),e("h3",{attrs:{id:"copy"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#copy"}},[a._v("#")]),a._v(" COPY")]),a._v(" "),e("p",[a._v("COPY 源路径 目标路径")]),a._v(" "),e("blockquote",[e("p",[a._v("源路径")])]),a._v(" "),e("p",[a._v("基于build时指定的路径,相当于把哪些文件复制到一个地方的相对路径。\n如果源路径为文件夹,复制的时候不是直接复制该文件夹,而是将文件夹中的内容复制到目标路径。")]),a._v(" "),e("blockquote",[e("p",[a._v("目标路径")])]),a._v(" "),e("p",[a._v("可以是系统的绝对路径 也可以相对于工作路径。目标路径不需要事先创建,如果目录不存在会在复制文件前先行创建缺失目录。")]),a._v(" "),e("h3",{attrs:{id:"cmd"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cmd"}},[a._v("#")]),a._v(" CMD")]),a._v(" "),e("p",[a._v("容器运行起来之后,执行的命令,比如运行什么什么服务,可以支持变量,因为这个本质是sh xxx 会解析环境变量。\n如果我们在docker run 最后写了一些指令,那么这些指令就会直接代替cmd的内容。")]),a._v(" "),e("h3",{attrs:{id:"env"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#env"}},[a._v("#")]),a._v(" ENV")]),a._v(" "),e("p",[a._v("可以给其他的docker命令支持统一的环境变量,建议把一些需要修改的变量,或者统一的东西作为常量放在ENV里面,这些参数会被加到容器的环境变量中\n格式为k1=v1 k2=v2")]),a._v(" "),e("h3",{attrs:{id:"avg"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#avg"}},[a._v("#")]),a._v(" AVG")]),a._v(" "),e("p",[a._v("参数,不会加入运行的环境变量中,支持默认值")]),a._v(" "),e("hr"),a._v(" "),e("h3",{attrs:{id:"例子"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[a._v("#")]),a._v(" 例子")]),a._v(" "),e("blockquote",[e("p",[a._v("Spring Boot的DockerFile")])]),a._v(" "),e("div",{staticClass:"language- line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[a._v('FROM openjdk:17-jdk-alpine\nMAINTAINER baeldung.com\nCOPY target/xxxx-1.0.0.jar app.jar\nENTRYPOINT ["java","-jar","/app.jar"]\n')])]),a._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[a._v("1")]),e("br"),e("span",{staticClass:"line-number"},[a._v("2")]),e("br"),e("span",{staticClass:"line-number"},[a._v("3")]),e("br"),e("span",{staticClass:"line-number"},[a._v("4")]),e("br")])])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{324:function(a,e,t){"use strict";t.r(e);var r=t(8),s=Object(r.a)({},(function(){var a=this,e=a._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[e("h2",{attrs:{id:"是什么"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#是什么"}},[a._v("#")]),a._v(" 是什么")]),a._v(" "),e("p",[a._v("Docker是一个容器技术,对进程进行封装隔离,进一步提供了文件系统,网络的隔离,屏蔽底层运行环境的差异,做到了完全一致。而且,比虚拟机的性能高出数倍。")]),a._v(" "),e("blockquote",[e("p",[a._v("和传统虚拟技术的差异")])]),a._v(" "),e("p",[a._v("传统的虚拟技术会虚拟硬件,虚拟操作系统,然后在该系统上运行进程。而Docker直接使用Linux提供的各种隔离技术,直接运行于主机上。")]),a._v(" "),e("blockquote",[e("p",[a._v("架构")])]),a._v(" "),e("p",[a._v("Docker 在运行时分为 Docker 引擎(也就是服务端守护进程)和客户端工具。\n也就是说,看起来是本地执行命令,其实原创也是支持的。")]),a._v(" "),e("h2",{attrs:{id:"怎么用"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#怎么用"}},[a._v("#")]),a._v(" 怎么用")]),a._v(" "),e("blockquote",[e("p",[a._v("一致的运行环境")])]),a._v(" "),e("p",[a._v("由于开发环境、测试环境、生产环境不一致,导致有些 bug 并未在开发过程中被发现。而 Docker 的镜像提供了"),e("strong",[a._v("除内核外")]),a._v("完整的运行时环境,确保了应用运行环境一致性。\n环境一致对开发也非常重要,如果是因为环境因素导致的问题,那么本地和上线的代码就不一样,而且解决起问题也会十分的麻烦。")]),a._v(" "),e("blockquote",[e("p",[a._v("一次编写,到处运行")])]),a._v(" "),e("p",[a._v("使用DockerFile,可以做到一次配置,可以快速的任何环境下完成部署,我们也常常感受到自己配置环境是非常麻烦的,而且在不同的机器上,由于之前环境的干扰,会出现很多意想不到的问题。")]),a._v(" "),e("blockquote",[e("p",[a._v("部署服务")])]),a._v(" "),e("p",[a._v("刚接触Linux,我们部署MySql,可能是下载安装配置等等,每个应用的流程都不一样,非常繁琐。\n之后我们知道了apt这样的管理工具可以让我们的部署大幅度简化。\n但是,如果之后需要部署什么东西,我们可以优先在网络上查询docker安装xxx,以此来提高速度,节约我们在环境上的时间。")]),a._v(" "),e("h2",{attrs:{id:"概念"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#概念"}},[a._v("#")]),a._v(" 概念")]),a._v(" "),e("p",[a._v("任何技术的学习都要明确他的概念,他基于了设计者的设计理念,方便我们和其他人交流复杂的概念。")]),a._v(" "),e("h3",{attrs:{id:"镜像-image"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#镜像-image"}},[a._v("#")]),a._v(" 镜像(image)")]),a._v(" "),e("p",[a._v("可以理解为一个独立系统打包后的所有内容,不包含任何的动态数据,本质是一个文件。")]),a._v(" "),e("h4",{attrs:{id:"分层存储"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#分层存储"}},[a._v("#")]),a._v(" 分层存储")]),a._v(" "),e("p",[a._v("镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。\n甚至在删除一层文件的时候,都仅仅只是标记删除,会对镜像的体积照成影响,额外的东西要在本层构建结束之前删掉。\n这样的分层设计,支持镜像的复用,我们也可以在已经有的镜像之上构建新的镜像。")]),a._v(" "),e("h3",{attrs:{id:"容器"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#容器"}},[a._v("#")]),a._v(" 容器")]),a._v(" "),e("p",[a._v("如果说镜像是文件,那么容器就是运行时。容器可以被创建、启动、停止、删除、暂停等。本质是一个进程。\n但是这个进程有自己独立的命名空间,所以有自己的文件系统,网络等等隔离特性。\n容器运行的本质就是,以镜像为基础层,在其上创建一个当前容器的存储层,我们可以称这个为容器"),e("strong",[a._v("运行时读写")]),a._v("而准备的存储层为"),e("strong",[a._v("容器存储层")]),a._v("。容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此,任何保存于容器存储层的信息都会随容器删除而丢失。所以要求我们必须在数据卷读写,其实本质就是文件读写的重定向。")]),a._v(" "),e("h3",{attrs:{id:"registry"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#registry"}},[a._v("#")]),a._v(" Registry")]),a._v(" "),e("p",[a._v("镜像是本地文件,docker的本质就为了让不同的环境运行,势必要方便拿到镜像。仓库是类型github的网址,里面有多个tag,一般代表不同的版本。默认tag是最新的版本。")]),a._v(" "),e("h2",{attrs:{id:"使用"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#使用"}},[a._v("#")]),a._v(" 使用")]),a._v(" "),e("h3",{attrs:{id:"基本命令"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#基本命令"}},[a._v("#")]),a._v(" 基本命令")]),a._v(" "),e("blockquote",[e("p",[a._v("docker pull")])]),a._v(" "),e("div",{staticClass:"language- line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[a._v("docker pull ubuntu\n")])]),a._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[a._v("1")]),e("br")])]),e("p",[a._v("从Registry拉取镜像。\n下载的时候,本质是在下载一个文件组,通过分层下载的方式,之前下载的过的文件会直接复用。\n同理,push可以把本地构建的镜像推送到云端。")]),a._v(" "),e("blockquote",[e("p",[a._v("docker run")])]),a._v(" "),e("div",{staticClass:"language- line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[a._v("docker run -itd ubuntu bash\n")])]),a._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[a._v("1")]),e("br")])]),e("p",[a._v("运行镜像->容器。\n可以加-it参数,一个是 -i:交互式操作,一个是 -t 终端。\n-d:后台执行。\n通过exit退出。\n进入正在运行容器是exec,其他的完全一样")]),a._v(" "),e("blockquote",[e("p",[a._v("容器命令")])]),a._v(" "),e("p",[a._v("docker ps -a\n查看容器\ndocker start xxx\ndocker stop xxx\ndocker restart xxx\ndocker rm xxx")]),a._v(" "),e("blockquote",[e("p",[a._v("docker logs -f")])]),a._v(" "),e("p",[a._v("可以和tail -f一样,查看日志。")]),a._v(" "),e("blockquote",[e("p",[a._v("docker image ls")])]),a._v(" "),e("p",[a._v("列出已经下载的镜像,后面可以加关键词搜索我们想看的\n这里有一个关键概念,ID,在我们需要操作镜像的时候,需要输入ID前3位,知道可以区分出他们就可以。\n可以使用docker image prune来清理镜像空间")]),a._v(" "),e("blockquote",[e("p",[a._v("docker image rm")])]),a._v(" "),e("p",[a._v("remove删除镜像\n值得注意的是,docke保护我们不会删除有运行容器的镜像,所以必须先删除容器,再删除镜像。")]),a._v(" "),e("h3",{attrs:{id:"数据卷-volume"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#数据卷-volume"}},[a._v("#")]),a._v(" 数据卷(volume)")]),a._v(" "),e("p",[a._v("数据卷就是挂载在我们磁盘空间的,不受容器影响的文件系统。我的理解是,可以让容器操作我们的目录,这个和容器无关的目录,数据卷提供了这种映射关系。\n可以通过-v 源目录:容器目录\n我们可以发现,docker都是源目录在前,容器目录在后的,此外,源目录必须是绝对路径。")]),a._v(" "),e("h3",{attrs:{id:"网络"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#网络"}},[a._v("#")]),a._v(" 网络")]),a._v(" "),e("p",[a._v("docker数据比较简单,但是网络确实是有难度的,之前我们说了网络会被隔离,那么我们如何访问docker内的服务呢。\ndocker提供了端口映射的功能,使用-p来指定,如果我们访问了本地的某个端口,就可以访问到容器内的某个端口。\n可是docker容器内的网络如何访问呢,这里docker给我们提供了一个机制,可以把容器加入一个互通的网络里面,docker network create -d bridge my-net,可以都使用这一个网络。\n运行的时候,使用 --network my-net 就可以接入这个网络了。\n但是如果你有多个容器之间需要互相连接,推荐使用 Docker Compose。")]),a._v(" "),e("h2",{attrs:{id:"dockerfile"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#dockerfile"}},[a._v("#")]),a._v(" DockerFile")]),a._v(" "),e("p",[a._v("docker build -t xxxx:xxx .")]),a._v(" "),e("blockquote",[e("p",[a._v("docker build工作原理")])]),a._v(" "),e("p",[a._v("我们执行的命令本质是一个客户端,真正的打包是在docker服务端完成的,当我们进行镜像构建的时候,并非所有定制都会通过 RUN 指令完成,经常会需要将一些本地文件复制进镜像,比如通过 COPY 指令、ADD 指令等。如何才能让服务端获得本地文件呢?\n这就是上下文的概念,会把这个路径下的所有文件打包,放进上传给docker服务端。\n所以:COPY 这类指令中的源文件的路径都是相对路径。为什么 COPY ../package.json /app 或者 COPY /opt/xxxx /app 无法工作的原因,因为这些路径已经超出了上下文的范围,Docker 引擎无法获得这些位置的文件。如果真的需要那些文件,应该将它们复制到上下文目录中去。\n同理,可以用 .gitignore 一样的语法写一个 .dockerignore,该文件是用于剔除不需要作为上下文传递给 Docker 引擎的。")]),a._v(" "),e("h3",{attrs:{id:"from"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#from"}},[a._v("#")]),a._v(" FROM")]),a._v(" "),e("p",[a._v("基于哪个镜像开始构建,操作系统都是轻量级的,比如apt,我们必须先执行apt update,然后才能进行安装,不然会报错")]),a._v(" "),e("h3",{attrs:{id:"run"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#run"}},[a._v("#")]),a._v(" RUN")]),a._v(" "),e("p",[a._v("运行命令,这里有个小细节,因为每次RUN都会构建新的层,所以我们可以使用Linux的换行命令实现")]),a._v(" "),e("div",{staticClass:"language- line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[a._v("RUN set -x; buildDeps='mysql' \\\n && apt update \\\n && apt install -y $buildDeps \\\n && apt purge -y --auto-remove $buildDeps\n")])]),a._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[a._v("1")]),e("br"),e("span",{staticClass:"line-number"},[a._v("2")]),e("br"),e("span",{staticClass:"line-number"},[a._v("3")]),e("br"),e("span",{staticClass:"line-number"},[a._v("4")]),e("br")])]),e("h3",{attrs:{id:"copy"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#copy"}},[a._v("#")]),a._v(" COPY")]),a._v(" "),e("p",[a._v("COPY 源路径 目标路径")]),a._v(" "),e("blockquote",[e("p",[a._v("源路径")])]),a._v(" "),e("p",[a._v("基于build时指定的路径,相当于把哪些文件复制到一个地方的相对路径。\n如果源路径为文件夹,复制的时候不是直接复制该文件夹,而是将文件夹中的内容复制到目标路径。")]),a._v(" "),e("blockquote",[e("p",[a._v("目标路径")])]),a._v(" "),e("p",[a._v("可以是系统的绝对路径 也可以相对于工作路径。目标路径不需要事先创建,如果目录不存在会在复制文件前先行创建缺失目录。")]),a._v(" "),e("h3",{attrs:{id:"cmd"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cmd"}},[a._v("#")]),a._v(" CMD")]),a._v(" "),e("p",[a._v("容器运行起来之后,执行的命令,比如运行什么什么服务,可以支持变量,因为这个本质是sh xxx 会解析环境变量。\n如果我们在docker run 最后写了一些指令,那么这些指令就会直接代替cmd的内容。")]),a._v(" "),e("h3",{attrs:{id:"env"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#env"}},[a._v("#")]),a._v(" ENV")]),a._v(" "),e("p",[a._v("可以给其他的docker命令支持统一的环境变量,建议把一些需要修改的变量,或者统一的东西作为常量放在ENV里面,这些参数会被加到容器的环境变量中\n格式为k1=v1 k2=v2")]),a._v(" "),e("h3",{attrs:{id:"avg"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#avg"}},[a._v("#")]),a._v(" AVG")]),a._v(" "),e("p",[a._v("参数,不会加入运行的环境变量中,支持默认值")]),a._v(" "),e("hr"),a._v(" "),e("h3",{attrs:{id:"例子"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[a._v("#")]),a._v(" 例子")]),a._v(" "),e("blockquote",[e("p",[a._v("Spring Boot的DockerFile")])]),a._v(" "),e("div",{staticClass:"language- line-numbers-mode"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[a._v('FROM openjdk:17-jdk-alpine\nMAINTAINER baeldung.com\nCOPY target/xxxx-1.0.0.jar app.jar\nENTRYPOINT ["java","-jar","/app.jar"]\n')])]),a._v(" "),e("div",{staticClass:"line-numbers-wrapper"},[e("span",{staticClass:"line-number"},[a._v("1")]),e("br"),e("span",{staticClass:"line-number"},[a._v("2")]),e("br"),e("span",{staticClass:"line-number"},[a._v("3")]),e("br"),e("span",{staticClass:"line-number"},[a._v("4")]),e("br")])])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/12.cd6e2044.js b/assets/js/12.fd6fc607.js similarity index 98% rename from assets/js/12.cd6e2044.js rename to assets/js/12.fd6fc607.js index b691477..bd53af8 100644 --- a/assets/js/12.cd6e2044.js +++ b/assets/js/12.fd6fc607.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{324:function(t,r,e){"use strict";e.r(r);var v=e(8),_=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h2",{attrs:{id:"联合文件系统-union-file-system"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#联合文件系统-union-file-system"}},[t._v("#")]),t._v(" 联合文件系统(Union File System)")]),t._v(" "),r("p",[t._v("它可以把多个目录(也叫分支)内容联合挂载到同一个目录下,而目录的物理位置是分开的。UnionFS允许只读和可读写目录并存,就是说可同时删除和增加内容。也就说这个不是docker支持的,而且是docker去运用的。")]),t._v(" "),r("h2",{attrs:{id:"docker-run"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#docker-run"}},[t._v("#")]),t._v(" docker run")]),t._v(" "),r("ul",[r("li",[t._v("检查本地是否存在指定的镜像,不存在就从 registry 下载")]),t._v(" "),r("li",[t._v("利用镜像创建并启动一个容器")]),t._v(" "),r("li",[r("strong",[t._v("分配一个文件系统,并在只读的镜像层外面挂载一层可读写层")])]),t._v(" "),r("li",[t._v("从"),r("strong",[t._v("宿主主机配置的网桥接口中桥接一个虚拟接口到容器")]),t._v("中去")]),t._v(" "),r("li",[t._v("从"),r("strong",[t._v("地址池配置一个 ip 地址给容器")])]),t._v(" "),r("li",[t._v("执行用户指定的应用程序")]),t._v(" "),r("li",[t._v("执行完毕后容器被终止")])]),t._v(" "),r("h2",{attrs:{id:"网络"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#网络"}},[t._v("#")]),t._v(" 网络")]),t._v(" "),r("p",[t._v("Docker 原生网络是基于 Linux 的 网络命名空间(net namespace) 和 虚拟网络设备(veth pair)实现的。当 Docker 进程启动时,会在宿主机上创建一个名称为 docker0 的 虚拟网桥,在该宿主机上启动的 Docker 容器会连接到这个虚拟网桥上。\n虚拟网桥的工作方式和物理交换机类似,宿主机上所有的容器通过虚拟网桥连接在一个二层网络中。\n从 docker0 子网中分配一个 IP 给容器使用,并设置 docker0 的 IP 地址为容器的默认网关。在宿主机上创建一对虚拟网卡 veth pair 设备, Docker 将 veth pair 设备的一端放在新创建的容器中,并命名为 eth0(容器的网卡), 另一端放在宿主机中,以 vethxxx 类似的名字命名, 并将这个网络设备连接到 docker0 网桥中。\n虚拟网桥 docker0 通过 iptables 配置与宿主机器上的网卡相连,符合条件的请求都会通过 iptables 转发到 docker0, 然后分发给对应的容器。")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("名称")]),t._v(" "),r("th",[t._v("描述")])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("bridge")]),t._v(" "),r("td",[t._v("默认的网络设备,当应用程序所在的容器需要通信时使用")])]),t._v(" "),r("tr",[r("td",[t._v("host")]),t._v(" "),r("td",[t._v("移除容器与宿主机之间的网络隔离,直接使用宿主机的网络")])]),t._v(" "),r("tr",[r("td",[t._v("overlay")]),t._v(" "),r("td",[t._v("将多个容器连接,并使集群服务能够相互通信")])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{326:function(t,r,e){"use strict";e.r(r);var v=e(8),_=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h2",{attrs:{id:"联合文件系统-union-file-system"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#联合文件系统-union-file-system"}},[t._v("#")]),t._v(" 联合文件系统(Union File System)")]),t._v(" "),r("p",[t._v("它可以把多个目录(也叫分支)内容联合挂载到同一个目录下,而目录的物理位置是分开的。UnionFS允许只读和可读写目录并存,就是说可同时删除和增加内容。也就说这个不是docker支持的,而且是docker去运用的。")]),t._v(" "),r("h2",{attrs:{id:"docker-run"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#docker-run"}},[t._v("#")]),t._v(" docker run")]),t._v(" "),r("ul",[r("li",[t._v("检查本地是否存在指定的镜像,不存在就从 registry 下载")]),t._v(" "),r("li",[t._v("利用镜像创建并启动一个容器")]),t._v(" "),r("li",[r("strong",[t._v("分配一个文件系统,并在只读的镜像层外面挂载一层可读写层")])]),t._v(" "),r("li",[t._v("从"),r("strong",[t._v("宿主主机配置的网桥接口中桥接一个虚拟接口到容器")]),t._v("中去")]),t._v(" "),r("li",[t._v("从"),r("strong",[t._v("地址池配置一个 ip 地址给容器")])]),t._v(" "),r("li",[t._v("执行用户指定的应用程序")]),t._v(" "),r("li",[t._v("执行完毕后容器被终止")])]),t._v(" "),r("h2",{attrs:{id:"网络"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#网络"}},[t._v("#")]),t._v(" 网络")]),t._v(" "),r("p",[t._v("Docker 原生网络是基于 Linux 的 网络命名空间(net namespace) 和 虚拟网络设备(veth pair)实现的。当 Docker 进程启动时,会在宿主机上创建一个名称为 docker0 的 虚拟网桥,在该宿主机上启动的 Docker 容器会连接到这个虚拟网桥上。\n虚拟网桥的工作方式和物理交换机类似,宿主机上所有的容器通过虚拟网桥连接在一个二层网络中。\n从 docker0 子网中分配一个 IP 给容器使用,并设置 docker0 的 IP 地址为容器的默认网关。在宿主机上创建一对虚拟网卡 veth pair 设备, Docker 将 veth pair 设备的一端放在新创建的容器中,并命名为 eth0(容器的网卡), 另一端放在宿主机中,以 vethxxx 类似的名字命名, 并将这个网络设备连接到 docker0 网桥中。\n虚拟网桥 docker0 通过 iptables 配置与宿主机器上的网卡相连,符合条件的请求都会通过 iptables 转发到 docker0, 然后分发给对应的容器。")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("名称")]),t._v(" "),r("th",[t._v("描述")])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("bridge")]),t._v(" "),r("td",[t._v("默认的网络设备,当应用程序所在的容器需要通信时使用")])]),t._v(" "),r("tr",[r("td",[t._v("host")]),t._v(" "),r("td",[t._v("移除容器与宿主机之间的网络隔离,直接使用宿主机的网络")])]),t._v(" "),r("tr",[r("td",[t._v("overlay")]),t._v(" "),r("td",[t._v("将多个容器连接,并使集群服务能够相互通信")])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/13.5a370176.js b/assets/js/13.5a370176.js new file mode 100644 index 0000000..8f2249d --- /dev/null +++ b/assets/js/13.5a370176.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{327:function(e,v,t){"use strict";t.r(v);var _=t(8),r=Object(_.a)({},(function(){var e=this,v=e._self._c;return v("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[v("h2",{attrs:{id:"是什么"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#是什么"}},[e._v("#")]),e._v(" 是什么")]),e._v(" "),v("p",[e._v("Hbase是一个分布式数据库,可以存储互联网的海量数据。\nHBase是在HDFS的基础之上构建的,HDFS是分布式文件系统。\n可以支持千万的QPS、PB级别的存储。")]),e._v(" "),v("h2",{attrs:{id:"为什么"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#为什么"}},[e._v("#")]),e._v(" 为什么")]),e._v(" "),v("blockquote",[v("p",[e._v("为什么不是MySql")])]),e._v(" "),v("table",[v("thead",[v("tr",[v("th",[v("strong",[e._v("HBase的")])]),e._v(" "),v("th",[v("strong",[e._v("关系数据库管理系统(RDBMS)")])])])]),e._v(" "),v("tbody",[v("tr",[v("td",[e._v("HBase是无架构的,它没有固定列架构的概念;仅定义列族。")]),e._v(" "),v("td",[e._v("RDBMS由其架构控制,该架构描述表的整个结构。")])]),e._v(" "),v("tr",[v("td",[e._v("它是"),v("strong",[e._v("为宽表而设计")]),e._v("的。HBase是水平可伸缩的。")]),e._v(" "),v("td",[e._v("它很薄,专为小表而建。难以扩展。")])]),e._v(" "),v("tr",[v("td",[e._v("HBase中"),v("strong",[e._v("没有事务")]),e._v("。")]),e._v(" "),v("td",[e._v("RDBMS是事务性的。")])]),e._v(" "),v("tr",[v("td",[e._v("它具有"),v("strong",[e._v("非规范化")]),e._v("的数据。")]),e._v(" "),v("td",[e._v("它将具有标准化的数据。")])]),e._v(" "),v("tr",[v("td",[e._v("对于半结构化数据和结构化数据都非常有用。")]),e._v(" "),v("td",[e._v("这对结构化数据很有用。")])])])]),e._v(" "),v("p",[e._v("因为Mysql无法存储互联网的海量数据,只能使用NoSql的解决方案。")]),e._v(" "),v("blockquote",[v("p",[e._v("为什么不是ES")])]),e._v(" "),v("p",[e._v("因为ES的成本比较好,支持了分词等等逻辑,主要用在搜索领域,远高于我们的需求。")]),e._v(" "),v("blockquote",[v("p",[e._v("为什么不是HDFS")])]),e._v(" "),v("table",[v("thead",[v("tr",[v("th",[v("strong",[e._v("HDFS")])]),e._v(" "),v("th",[v("strong",[e._v("HBase")])])])]),e._v(" "),v("tbody",[v("tr",[v("td",[e._v("HDFS是适用于存储大文件的分布式文件系统。")]),e._v(" "),v("td",[e._v("HBase是建立在HDFS之上的数据库。")])]),e._v(" "),v("tr",[v("td",[e._v("HDFS不支持快速的单个记录查找。")]),e._v(" "),v("td",[e._v("HBase为大型表提供快速查找。")])]),e._v(" "),v("tr",[v("td",[e._v("它提供高延迟的批处理;没有批处理的概念。")]),e._v(" "),v("td",[e._v("它提供了数十亿条记录对单行的低延迟访问(随机访问)。")])]),e._v(" "),v("tr",[v("td",[e._v("它仅提供数据的顺序访问。")]),e._v(" "),v("td",[e._v("HBase在内部使用哈希表并提供随机访问,并且将数据存储在索引的HDFS文件中,以加快查找速度。")])])])]),e._v(" "),v("p",[e._v("HDFS是一个分布式的文件系统,他可以存储海量的数据,但是功能太底层,不方便我们去操作。")]),e._v(" "),v("hr"),e._v(" "),v("p",[v("strong",[e._v("HBase可以以低成本来存储海量的数据并且支持高并发随机写和实时查询。")])]),e._v(" "),v("h2",{attrs:{id:"概念"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#概念"}},[e._v("#")]),e._v(" 概念")]),e._v(" "),v("h3",{attrs:{id:"列式存储"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#列式存储"}},[e._v("#")]),e._v(" 列式存储")]),e._v(" "),v("table",[v("thead",[v("tr",[v("th",[v("strong",[e._v("面向行的数据库")])]),e._v(" "),v("th",[v("strong",[e._v("列式数据库")])])])]),e._v(" "),v("tbody",[v("tr",[v("td",[e._v("它适用于在线事务处理(OLTP)。")]),e._v(" "),v("td",[e._v("它适用于在线分析处理(OLAP)。")])]),e._v(" "),v("tr",[v("td",[e._v("此类数据库设计用于少量的行和列。")]),e._v(" "),v("td",[e._v("面向列的数据库是为大型表设计的。")])])])]),e._v(" "),v("p",[e._v("我们可以对比的去学习,MySQL是行存储,每一行有一个id,然后有若干字段。那列式存储,从形式上来看,就是就是把一行拆分开,每一行只有一个id和一个字段。\n这样做有什么好处吗,为什么要这么做?\n首先,在MySQL中如果有的字段为空,或者有的一列字段很多重复的,都会照成空间的浪费,如果是列式存储的话,这些空间都是可以压缩的。而且一个id对应一个字段这样的结构,就是NoSql最典型的k-v结构。")]),e._v(" "),v("h3",{attrs:{id:"基本概念"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#基本概念"}},[e._v("#")]),e._v(" 基本概念")]),e._v(" "),v("blockquote",[v("p",[e._v("表")])]),e._v(" "),v("p",[e._v("首先,Hbase里面也有表的概念这个和Mysql是一样的")]),e._v(" "),v("blockquote",[v("p",[e._v("行键(RowKey)")])]),e._v(" "),v("p",[e._v("这个其实就是id")]),e._v(" "),v("blockquote",[v("p",[e._v("列族")])]),e._v(" "),v("p",[e._v("一个列族下面有多个列")]),e._v(" "),v("p",[e._v("区别于MySql,有了列族的概念,而且行与行之间不需要相同的列。数据写到HBase的时候都会被记录一个时间戳,这个时间戳被我们当做一个版本。比如说,我们"),v("strong",[e._v("修改或者删除")]),e._v("某一条的时候,本质上是往里边"),v("strong",[e._v("新增")]),e._v("一条数据,记录的版本加一了而已。")]),e._v(" "),v("h2",{attrs:{id:"架构"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#架构"}},[e._v("#")]),e._v(" 架构")]),e._v(" "),v("p",[e._v("Client客户端,它提供了访问HBase的接口,并且维护了对应的cache来加速HBase的访问。\nZookeeper存储HBase的元数据(meta表),无论是读还是写数据,都是去Zookeeper里边拿到meta元数据告诉给客户端去哪台机器读写数据。\nHRegionServer它是处理客户端的读写请求,"),v("strong",[e._v("负责与HDFS底层交互")]),e._v(",是真正干活的节点。")]),e._v(" "),v("p",[e._v("大概的流程就是:client请求到Zookeeper,然后Zookeeper返回HRegionServer地址给client,client得到Zookeeper返回的地址去请求HRegionServer,HRegionServer读写数据后返回给client。")]),e._v(" "),v("h3",{attrs:{id:"hregionserver"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#hregionserver"}},[e._v("#")]),e._v(" HRegionServer")]),e._v(" "),v("p",[e._v("很明显的,这个Server肯定是核心的内容。")]),e._v(" "),v("blockquote",[v("p",[e._v("HRegion")])]),e._v(" "),v("p",[e._v("HBase一张表的数据会分到多台机器上的。用的就是RowKey来切分,其实就是表的横向切割。一个HRegionServer上面管理了多个HRegion,存储了HBase表的一部分数据。")]),e._v(" "),v("blockquote",[v("p",[e._v("Store")])]),e._v(" "),v("p",[e._v("HRegion下面有Store,那Store是什么呢?我们前面也说过,一个HBase表首先要定义列族,然后列是在列族之下的,列可以随意添加。\n"),v("strong",[e._v("一个列族的数据是存储")]),e._v("在一起的,所以一个列族的数据是存储在一个Store里边的。")]),e._v(" "),v("blockquote",[v("p",[e._v("Store内部")])]),e._v(" "),v("p",[e._v("HBase在写数据的时候,"),v("strong",[e._v("会先写到Mem Store,当MemStore超过一定阈值,就会将内存中的数据刷写到硬盘上")]),e._v(",形成StoreFile,而"),v("strong",[e._v("StoreFile底层是以HFile的格式")]),e._v("保存,HFile是HBase中KeyValue数据的存储格式。\nMemStore的作用不是为了加快写速度,而是为了对Row Key进行排序。")]),e._v(" "),v("blockquote",[v("p",[e._v("Hlog")])]),e._v(" "),v("p",[e._v("这里看到了内存写入,我们学过MySQL原理的同学肯定第一时间就想到了内存有丢失的风险,同理,Hbase在解决这个问题的时候,也是通过一个顺序写日志的方式解决的,也就是HLog。顺序写磁盘,直接写内存,批量持久化内存,所以说性能还是非常高的。\n在HBase中,每个RegionServer只需要维护一个WAL,所有Region对象共用一个WAL,而不是每个Region都维护一个WAL。这种方式对于多个Region的更新操作所发生的的日志修改,只需要不断地追加到单个日志文件中,不需要同时打开并写入多个日志文件,这样可以减少磁盘寻址次数,提高写性能。")]),e._v(" "),v("blockquote",[v("p",[e._v("HMaster")])]),e._v(" "),v("p",[e._v("到这里我们还有一个最关键的点不知道,HRegion到底是怎么划分的呀,具体是谁管理的,那么这个时候就需要一个Master来管理了。\n"),v("strong",[e._v("首先,读写请求都不经过Hmaster")]),e._v(",只是为了管理。HMaster会处理 HRegion 的"),v("strong",[e._v("分配或转移")]),e._v("。如果我们HRegion的"),v("strong",[e._v("数据量太大的话")]),e._v(",HMaster会对"),v("strong",[e._v("拆分")]),e._v("后的Region重新分配RegionServer。(如果"),v("strong",[e._v("发现失效的HRegion")]),e._v(",也会将失效的HRegion分配到正常的HRegionServer中)\nMaster只负责各种协调工作,比如建表、删表、移动Region、合并等操作。这些操作有一个共性的问题:就是需要跨RegionServer。所以,HBase就将这些工作分配给了Master服务。这种结构的好处是大大降低了集群对Master的依赖。而Master节点一般只有一个到两个,一旦宕机,如果集群对Master的依赖度很大,那么就会产生单点故障问题。在HBase中即使Master宕机了,集群依然可以正常地运行,依然可以存储和删除数据。")])])}),[],!1,null,null,null);v.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/14.c7aa95ae.js b/assets/js/14.c7aa95ae.js new file mode 100644 index 0000000..849fb0f --- /dev/null +++ b/assets/js/14.c7aa95ae.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{328:function(e,o,t){"use strict";t.r(o);var v=t(8),r=Object(v.a)({},(function(){var e=this,o=e._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h2",{attrs:{id:"存储引擎"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#存储引擎"}},[e._v("#")]),e._v(" 存储引擎")]),e._v(" "),o("p",[e._v("底层存储引擎是基于LSM-Tree数据结构设计的。写入数据时会先写WAL日志,再将数据写到写缓存MemStore中,等写缓存达到一定规模后或满足其他触发条件才会flush刷写到磁盘,这样就将磁盘随机写变成了顺序写,提高了写性能。"),o("strong",[e._v("每一次刷写磁盘都会生成新的HFile文件")]),e._v("。\n随着时间推移,写入的HFile会越来越多,查询数据时就会因为要进行多次io导致性能降低,为了提升读性能,HBase会定期执行compaction操作以"),o("strong",[e._v("合并HFile")]),e._v("。")]),e._v(" "),o("blockquote",[o("p",[e._v("读优化")])]),e._v(" "),o("p",[e._v("此外,HBase在读路径上也有诸多设计,其中一个重要的点是设计了"),o("strong",[e._v("BlockCache读缓存")]),e._v("。这样以后,读取数据时会依次从BlockCache、MemStore以及HFile中seek数据,再加上一些其他设计比如"),o("strong",[e._v("布隆过滤器、索引")]),e._v("等,保证了HBase的高性能。")]),e._v(" "),o("h2",{attrs:{id:"写流程"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#写流程"}},[e._v("#")]),e._v(" 写流程")]),e._v(" "),o("ol",[o("li",[e._v("访问Zookeeper获取具体交互的服务器地址,并且缓存在客户端。")]),e._v(" "),o("li",[e._v("追加到WAL中,写在MemStore中"),o("strong",[e._v("并且排序")]),e._v("。\n"),o("ol",[o("li",[e._v("会先写WAL再写内存,如果同步日志失败,那么内存也会被回滚")])])]),e._v(" "),o("li",[e._v("MemStore刷盘(基本上包含了所以刷盘的可能性,非常值得学习)\n"),o("ol",[o("li",[e._v("Region的"),o("strong",[e._v("memstore太大")]),e._v("了会刷盘")]),e._v(" "),o("li",[o("strong",[e._v("写入的太快会阻塞写入")]),e._v(",抛出异常,并且刷新memstore")]),e._v(" "),o("li",[e._v("总的RegionServer太大也会刷盘,因为都在一个JVM内存里面,所以在"),o("strong",[e._v("内存占用过高的时候,减少gc的影响")]),e._v(",从大到小开始刷数据")]),e._v(" "),o("li",[o("strong",[e._v("定时刷新")]),e._v(",避免如果没有数据写入就不刷新到磁盘的问题")]),e._v(" "),o("li",[o("strong",[e._v("更新次数太多")]),e._v(",如果更新的量很小,但是更新的次数多,也不会导致内存扩张,所以在更新次数多的时候也刷盘")]),e._v(" "),o("li",[o("strong",[e._v("WAL文件太大")]),e._v("的时候也会刷新")])])])]),e._v(" "),o("h2",{attrs:{id:"读流程"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#读流程"}},[e._v("#")]),e._v(" 读流程")]),e._v(" "),o("ol",[o("li",[e._v("访问Zookeeper获取具体交互的服务器地址,并且缓存在客户端。")]),e._v(" "),o("li",[e._v("分别在 Block Cache(读缓存),MemStore 和 Store File(HFile)中查询目标数据,并将查到的所有数据进行合并。"),o("strong",[e._v("此处所有数据是指同一条数据的不同版本(time stamp)或者不同的类型(Put/Delete)")]),e._v("。")])]),e._v(" "),o("h3",{attrs:{id:"block-cahce"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#block-cahce"}},[e._v("#")]),e._v(" Block Cahce")]),e._v(" "),o("p",[e._v("HBase缓存不像对传统缓存理解的一样读了内存如果有数据就不再读磁盘,因为它是以时间戳进行版本控制的,所以"),o("strong",[e._v("不能只读内存")]),e._v("。\nHBase读数据无论如何都会扫描HDFS磁盘,只是在 BlockCache 中存在的数据不再读取,"),o("strong",[e._v("BlockCache 只是提高了读磁盘的效率")]),e._v("。如:磁盘中有数据A和B,BlockCache 中有数据A,则扫描磁盘时只读取B,不再读取A。\n所以 HBase 是写比读快(读不仅扫磁盘,还要合并选取数据)。")]),e._v(" "),o("h2",{attrs:{id:"合并"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#合并"}},[e._v("#")]),e._v(" 合并")]),e._v(" "),o("p",[e._v("由于memstore每次刷写都会生成一个新的HFile,"),o("strong",[e._v("且同一个字段的不同版本(timestamp)和不同类型(Put/Delete)有可能会分布在不同的 HFile 中,因此查询时需要遍历所有的 HFile")]),e._v("。\n为了减少 HFile 的个数,以及清理掉过期和删除的数据,会进行 StoreFile Compaction。Compaction 分为两种,分别是 Minor Compaction 和 Major Compaction。")]),e._v(" "),o("blockquote",[o("p",[e._v("Minor Compaction")])]),e._v(" "),o("p",[e._v("Minor Compaction 是指选取一些"),o("strong",[e._v("小的、相邻的 HFile 将他们合并成一个更大的 HFile")]),e._v("。默认情况下,Minor Compaction 会删除所合并 HFile 中的 TTL 过期数据,但是不会删除手动删除(也就是 Delete 标记作用的数据)不会被删除。")]),e._v(" "),o("blockquote",[o("p",[e._v("Major Compaction")])]),e._v(" "),o("p",[e._v("Major Compaction 是指将一个 "),o("strong",[e._v("Store 中所有的 HFile 合并成一个 HFile")]),e._v(",这个过程会清理三类没有意义的数据:"),o("strong",[e._v("被删除的数据")]),e._v("(打了 Delete 标记的数据)、"),o("strong",[e._v("TTL 过期数据")]),e._v("、"),o("strong",[e._v("版本号超过设定版本号的数据")]),e._v("。\n另外,一般情况下,Major Compaction 时间会持续比较长,整个过程会消耗大量系统资源,对上层业务有比较大的影响。因此,生产环境下通常关闭自动触发 Major Compaction 功能,改为手动在业务低峰期触发。")]),e._v(" "),o("h3",{attrs:{id:"触发时机"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#触发时机"}},[e._v("#")]),e._v(" 触发时机")]),e._v(" "),o("blockquote",[o("p",[e._v("MemStore Flush")])]),e._v(" "),o("p",[e._v("HBase 每次Flush 之后,都会判断是否要进行 Compaction,一旦满足 Minor Compaction 或 Major Compaction 的条件便会触发执行。")]),e._v(" "),o("blockquote",[o("p",[e._v("后台线程周期性检查")])]),e._v(" "),o("p",[e._v("这里主要考虑的是一段时间内没有写入仍然需要做 Compact 检查。")]),e._v(" "),o("blockquote",[o("p",[e._v("手动触发")])]),e._v(" "),o("p",[e._v("compact、major_compact")]),e._v(" "),o("h2",{attrs:{id:"数据切分"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#数据切分"}},[e._v("#")]),e._v(" 数据切分")]),e._v(" "),o("p",[e._v("默认情况下,"),o("strong",[e._v("每个 Table 起初只有一个 Region,随着数据的不断写入,Region 会自动进行拆分")]),e._v("。刚拆分时,"),o("strong",[e._v("两个子 Region 都位于当前的 Region Server")]),e._v(",但处于负载均衡的考虑,"),o("strong",[e._v("HMaster 有可能会将某个 Region 转移给其他的 Region Server")]),e._v("。\n数据切分会造成数据倾斜(region 大小分布不均),带来热点数据问题。所以建表时进行预分区来尽量避免这种问题。")]),e._v(" "),o("h2",{attrs:{id:"hfile结构"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#hfile结构"}},[e._v("#")]),e._v(" Hfile结构")]),e._v(" "),o("p",[e._v("HFile中包含了"),o("strong",[e._v("一个多层索引系统")]),e._v("。这个多层索引是的HBase可以"),o("strong",[e._v("在不读取整个文件的情况下查找数据")]),e._v("。这一多层索引类似于一个B+树。\n文件结尾指向meta block。因为meta block是在数据写入硬盘操作的结尾写入该文件中的。文件的结尾同时还包含一些别的信息。比如 bloom filter 及时间信息。bloom filter可以帮助HBase加速数据查询的速度。因为HBase可以利用 bloom filter 跳过不包含当前查询的键的文件。时间信息则可以帮助HBase在查询时跳过读操作所期望的时间区域之外的文件。HFile的索引在HFile被打开时会被读取到内存中。这样就可以保证数据检索只需一次硬盘查询操作。")]),e._v(" "),o("h2",{attrs:{id:"并发控制"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#并发控制"}},[e._v("#")]),e._v(" 并发控制")]),e._v(" "),o("blockquote",[o("p",[e._v("写写并发")])]),e._v(" "),o("p",[e._v("多个写入/更新同时进行会导致数据不一致的问题,HBase通过获取"),o("strong",[e._v("行锁")]),e._v("来实现写写并发,如果获取不到,就需要不断重试等待或者自旋等待,直至其他线程释放该锁。拿到锁之后开始写入数据,写入完成之后释放行锁即可。这种行锁机制是实现写写并发控制最常用的手段,MySQL也使用了行锁来实现写写并发。")]),e._v(" "),o("blockquote",[o("p",[e._v("读写并发")])]),e._v(" "),o("p",[e._v("HBase中"),o("strong",[e._v("MVCC")]),e._v("机制实现主要分为两步:\n(1) 为每一个写入/更新事务分配一个"),o("strong",[e._v("Region级别自增的序列号")]),e._v("。\n(2) 为每一个读请求分配一个已完成的最大写事务序列号。")]),e._v(" "),o("h2",{attrs:{id:"宕机恢复"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#宕机恢复"}},[e._v("#")]),e._v(" 宕机恢复")]),e._v(" "),o("p",[e._v("当Region Server宕机的时候,其所管理的region在这一故障被发现并修复之前是不可访问的。ZooKeeper负责根据服务器的"),o("strong",[e._v("心跳信息")]),e._v("来监控服务器的工作状态。当某一服务器下线之后,ZooKeeper会发送该服务器下线的通知。HMaster收到这一通知之后会进行恢复操作。\nHMaster会首先将宕机的Region Server所管理的region分配给其他仍在工作的活跃的Region Server。然后HMaster会将该服务器的"),o("strong",[e._v("WAL分割并分别分配给相应的新分配的Region Server进行存储")]),e._v("。新的Region Server会读取并顺序执行WAL中的数据操作,从而重新创建相应的MemStore。")]),e._v(" "),o("h2",{attrs:{id:"高可用"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#高可用"}},[e._v("#")]),e._v(" 高可用")]),e._v(" "),o("p",[e._v("HBase使用Hadoop的HDFS作为底层存储,数据被分散存储在多个RegionServer上。每个RegionServer都负责管理一部分数据,这些数据通过HBase的分区机制进行划分。同时,"),o("strong",[e._v("HBase还使用了Hadoop的复制机制,将数据复制到多个RegionServer上,以实现数据的冗余备份")]),e._v("。当一个RegionServer出现故障时,系统可以从其他RegionServer上获取备份数据,实现高可用性。")])])}),[],!1,null,null,null);o.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/14.58ca50e4.js b/assets/js/15.3193a1b8.js similarity index 77% rename from assets/js/14.58ca50e4.js rename to assets/js/15.3193a1b8.js index abd6590..9b11ce9 100644 --- a/assets/js/14.58ca50e4.js +++ b/assets/js/15.3193a1b8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{327:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{329:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/15.685b0f7b.js b/assets/js/16.2a663ced.js similarity index 77% rename from assets/js/15.685b0f7b.js rename to assets/js/16.2a663ced.js index 3702ede..def309e 100644 --- a/assets/js/15.685b0f7b.js +++ b/assets/js/16.2a663ced.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{328:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{330:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/16.b4f9ebe5.js b/assets/js/16.b4f9ebe5.js deleted file mode 100644 index e2c445e..0000000 --- a/assets/js/16.b4f9ebe5.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{329:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/13.806e29a7.js b/assets/js/17.c5fb2d31.js similarity index 77% rename from assets/js/13.806e29a7.js rename to assets/js/17.c5fb2d31.js index 5db109c..1ae2376 100644 --- a/assets/js/13.806e29a7.js +++ b/assets/js/17.c5fb2d31.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{326:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{331:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/18.8c4103a5.js b/assets/js/18.8c4103a5.js new file mode 100644 index 0000000..fa2992f --- /dev/null +++ b/assets/js/18.8c4103a5.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{332:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/2.03e83f96.js b/assets/js/2.74fbac12.js similarity index 100% rename from assets/js/2.03e83f96.js rename to assets/js/2.74fbac12.js diff --git a/assets/js/3.53b0d5e0.js b/assets/js/3.a6e6f7b6.js similarity index 86% rename from assets/js/3.53b0d5e0.js rename to assets/js/3.a6e6f7b6.js index bdef3d9..fd2ebe8 100644 --- a/assets/js/3.53b0d5e0.js +++ b/assets/js/3.a6e6f7b6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{280:function(t,e,n){},316:function(t,e,n){"use strict";n(280)},331:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:(t,{props:e,slots:n})=>t("span",{class:["badge",e.type],style:{verticalAlign:e.vertical}},e.text||n().default)},a=(n(316),n(8)),p=Object(a.a)(i,void 0,void 0,!1,null,"d5affa18",null);e.default=p.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{280:function(t,e,n){},316:function(t,e,n){"use strict";n(280)},333:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:(t,{props:e,slots:n})=>t("span",{class:["badge",e.type],style:{verticalAlign:e.vertical}},e.text||n().default)},a=(n(316),n(8)),p=Object(a.a)(i,void 0,void 0,!1,null,"d5affa18",null);e.default=p.exports}}]); \ No newline at end of file diff --git a/assets/js/4.872d915b.js b/assets/js/4.4a01c80f.js similarity index 100% rename from assets/js/4.872d915b.js rename to assets/js/4.4a01c80f.js diff --git a/assets/js/5.823c0381.js b/assets/js/5.8376b372.js similarity index 95% rename from assets/js/5.823c0381.js rename to assets/js/5.8376b372.js index b5c1f8b..f8690fa 100644 --- a/assets/js/5.823c0381.js +++ b/assets/js/5.8376b372.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{321:function(t,e,a){"use strict";a.r(e);var i=a(8),o=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h2",{attrs:{id:"hi-there-👋"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hi-there-👋"}},[t._v("#")]),t._v(" Hi there 👋")]),t._v(" "),e("ul",[e("li",[t._v("🌱 实习&工作经历:Zoom 基础架构 中间件 -> 美团 到家 交易平台 百万QPS -> 阿里巴巴 淘天 基础业务&AI Agent")]),t._v(" "),e("li",[t._v("⚡ 我阅读过Spring的MVC,IOC,AOP,Boot源码,以及Dubbo,Mybatis,Netty,Rocket MQ,Kafka,Arthas等等源码,自主分析了PowerJob的全部源码")]),t._v(" "),e("li",[t._v("💬 我也有不错的设计和编写代码的能力:\n"),e("ul",[e("li",[t._v("AOP透明并发友好接口代理,可重入ThreadLocal,高并发查询流量共享")]),t._v(" "),e("li",[t._v("编写idea插件,动态热脚本,ast语法树权限校验")]),t._v(" "),e("li",[t._v("dubbo连接池SPI,高并发指令重拍优化,分支预测性能优化,哨兵算法")])])]),t._v(" "),e("li",[t._v("😄 我目前正在贡献Apache Dubbo,Apache ShenYu,喜欢开源的小伙伴可以一起交流")]),t._v(" "),e("li",[t._v("📫 我的求职方向是Java后端开发/基础架构开发,可以加我微信联系 wx: 13034744809 或邮件 changkejie@foxmail.com")])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{319:function(t,e,a){"use strict";a.r(e);var i=a(8),o=Object(i.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h2",{attrs:{id:"hi-there-👋"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hi-there-👋"}},[t._v("#")]),t._v(" Hi there 👋")]),t._v(" "),e("ul",[e("li",[t._v("🌱 实习&工作经历:Zoom 基础架构 中间件 -> 美团 到家 交易平台 百万QPS -> 阿里巴巴 淘天 基础业务&AI Agent")]),t._v(" "),e("li",[t._v("⚡ 我阅读过Spring的MVC,IOC,AOP,Boot源码,以及Dubbo,Mybatis,Netty,Rocket MQ,Kafka,Arthas等等源码,自主分析了PowerJob的全部源码")]),t._v(" "),e("li",[t._v("💬 我也有不错的设计和编写代码的能力:\n"),e("ul",[e("li",[t._v("AOP透明并发友好接口代理,可重入ThreadLocal,高并发查询流量共享")]),t._v(" "),e("li",[t._v("编写idea插件,动态热脚本,ast语法树权限校验")]),t._v(" "),e("li",[t._v("dubbo连接池SPI,高并发指令重拍优化,分支预测性能优化,哨兵算法")])])]),t._v(" "),e("li",[t._v("😄 我目前正在贡献Apache Dubbo,Apache ShenYu,喜欢开源的小伙伴可以一起交流")]),t._v(" "),e("li",[t._v("📫 我的求职方向是Java后端开发/基础架构开发,可以加我微信联系 wx: 13034744809 或邮件 changkejie@foxmail.com")])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/6.04089e2b.js b/assets/js/6.0011087f.js similarity index 76% rename from assets/js/6.04089e2b.js rename to assets/js/6.0011087f.js index 4e1c26e..7b7b284 100644 --- a/assets/js/6.04089e2b.js +++ b/assets/js/6.0011087f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{319:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{323:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/7.3a3648f1.js b/assets/js/7.64809bd9.js similarity index 100% rename from assets/js/7.3a3648f1.js rename to assets/js/7.64809bd9.js diff --git a/assets/js/8.e8b4b7a7.js b/assets/js/8.4e155094.js similarity index 76% rename from assets/js/8.e8b4b7a7.js rename to assets/js/8.4e155094.js index b1fb169..1014f3a 100644 --- a/assets/js/8.e8b4b7a7.js +++ b/assets/js/8.4e155094.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{322:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{321:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/9.0f196575.js b/assets/js/9.7edf0ebe.js similarity index 76% rename from assets/js/9.0f196575.js rename to assets/js/9.7edf0ebe.js index c718748..03b0ba7 100644 --- a/assets/js/9.0f196575.js +++ b/assets/js/9.7edf0ebe.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{330:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{322:function(t,n,s){"use strict";s.r(n);var e=s(8),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/app.3a36e961.js b/assets/js/app.319c468f.js similarity index 66% rename from assets/js/app.3a36e961.js rename to assets/js/app.319c468f.js index bb5cc7e..d323a7b 100644 --- a/assets/js/app.3a36e961.js +++ b/assets/js/app.319c468f.js @@ -1,4 +1,4 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,s=e[0],c=e[1],u=e[2],p=0,f=[];pfunction t(e,n,r,o=1){if("string"==typeof e)return d(n,e,r);if(Array.isArray(e))return Object.assign(d(n,e[0],r),{title:e[1]});{o>3&&console.error("[vuepress] detected a too deep nested sidebar group.");const i=e.children||[];return 0===i.length&&e.path?Object.assign(d(n,e.path,r),{title:e.title}):{type:"group",path:e.path,title:e.title,sidebarDepth:e.sidebarDepth,initialOpenGroupIndex:e.initialOpenGroupIndex,children:i.map(e=>t(e,n,r,o+1)),collapsable:!1!==e.collapsable}}}(t,o,n)):[]}return[]}function v(t){const e=m(t.headers||[]);return[{type:"group",collapsable:!1,title:t.title,path:null,children:e.map(e=>({type:"auto",title:e.title,basePath:t.path,path:t.path+"#"+e.slug,children:e.children||[]}))}]}function m(t){let e;return(t=t.map(t=>Object.assign({},t))).forEach(t=>{2===t.level?e=t:e&&(e.children||(e.children=[])).push(t)}),t.filter(t=>2===t.level)}function g(t){return Object.assign(t,{type:t.items&&t.items.length?"links":"link"})}function y(t){return Object.prototype.toString.call(t).match(/\[object (.*?)\]/)[1].toLowerCase()}function b(t){let e=t.frontmatter.date||t.lastUpdated||new Date,n=new Date(e);return"Invalid Date"==n&&e&&(n=new Date(e.replace(/-/g,"/"))),n.getTime()}function _(t,e){return b(e)-b(t)}},function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,e,n){var r=n(15),o=n(148),i=n(149),a=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":a&&a in Object(t)?o(t):i(t)}},function(t,e,n){"use strict";var r=n(5),o=n(18),i=n(28);t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(7).Symbol;t.exports=r},function(t,e,n){"use strict";var r=n(25),o=n(36),i=n(37),a=n(142),s=n(144);r({target:"Array",proto:!0,arity:1,forced:n(2)((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(t){return t instanceof TypeError}}()},{push:function(t){var e=o(this),n=i(e),r=arguments.length;s(n+r);for(var c=0;cfunction t(e,n,r,o=1){if("string"==typeof e)return d(n,e,r);if(Array.isArray(e))return Object.assign(d(n,e[0],r),{title:e[1]});{o>3&&console.error("[vuepress] detected a too deep nested sidebar group.");const i=e.children||[];return 0===i.length&&e.path?Object.assign(d(n,e.path,r),{title:e.title}):{type:"group",path:e.path,title:e.title,sidebarDepth:e.sidebarDepth,initialOpenGroupIndex:e.initialOpenGroupIndex,children:i.map(e=>t(e,n,r,o+1)),collapsable:!1!==e.collapsable}}}(t,o,n)):[]}return[]}function v(t){const e=m(t.headers||[]);return[{type:"group",collapsable:!1,title:t.title,path:null,children:e.map(e=>({type:"auto",title:e.title,basePath:t.path,path:t.path+"#"+e.slug,children:e.children||[]}))}]}function m(t){let e;return(t=t.map(t=>Object.assign({},t))).forEach(t=>{2===t.level?e=t:e&&(e.children||(e.children=[])).push(t)}),t.filter(t=>2===t.level)}function g(t){return Object.assign(t,{type:t.items&&t.items.length?"links":"link"})}function y(t){return Object.prototype.toString.call(t).match(/\[object (.*?)\]/)[1].toLowerCase()}function b(t){let e=t.frontmatter.date||t.lastUpdated||new Date,n=new Date(e);return"Invalid Date"==n&&e&&(n=new Date(e.replace(/-/g,"/"))),n.getTime()}function _(t,e){return b(e)-b(t)}},function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,e,n){var r=n(15),o=n(148),i=n(149),a=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":a&&a in Object(t)?o(t):i(t)}},function(t,e,n){"use strict";var r=n(5),o=n(18),i=n(28);t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(7).Symbol;t.exports=r},function(t,e,n){"use strict";var r=n(25),o=n(36),i=n(37),a=n(142),s=n(144);r({target:"Array",proto:!0,arity:1,forced:n(2)((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(t){return t instanceof TypeError}}()},{push:function(t){var e=o(this),n=i(e),r=arguments.length;s(n+r);for(var c=0;c
'};function o(t,e,n){return tn?n:t}function i(t){return 100*(-1+t)}n.configure=function(t){var e,n;for(e in t)void 0!==(n=t[e])&&t.hasOwnProperty(e)&&(r[e]=n);return this},n.status=null,n.set=function(t){var e=n.isStarted();t=o(t,r.minimum,1),n.status=1===t?null:t;var c=n.render(!e),u=c.querySelector(r.barSelector),l=r.speed,p=r.easing;return c.offsetWidth,a((function(e){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,function(t,e,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(t)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(t)+"%,0)"}:{"margin-left":i(t)+"%"}).transition="all "+e+"ms "+n,o}(t,l,p)),1===t?(s(c,{transition:"none",opacity:1}),c.offsetWidth,setTimeout((function(){s(c,{transition:"all "+l+"ms linear",opacity:0}),setTimeout((function(){n.remove(),e()}),l)}),l)):setTimeout(e,l)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var t=function(){setTimeout((function(){n.status&&(n.trickle(),t())}),r.trickleSpeed)};return r.trickle&&t(),this},n.done=function(t){return t||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(t){var e=n.status;return e?("number"!=typeof t&&(t=(1-e)*o(Math.random()*e,.1,.95)),e=o(e+t,0,.994),n.set(e)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},t=0,e=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===e&&n.start(),t++,e++,r.always((function(){0==--e?(t=0,n.done()):n.set((t-e)/t)})),this):this},n.render=function(t){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var e=document.createElement("div");e.id="nprogress",e.innerHTML=r.template;var o,a=e.querySelector(r.barSelector),c=t?"-100":i(n.status||0),l=document.querySelector(r.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+c+"%,0,0)"}),r.showSpinner||(o=e.querySelector(r.spinnerSelector))&&f(o),l!=document.body&&u(l,"nprogress-custom-parent"),l.appendChild(e),e},n.remove=function(){l(document.documentElement,"nprogress-busy"),l(document.querySelector(r.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&f(t)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var a=function(){var t=[];function e(){var n=t.shift();n&&n(e)}return function(n){t.push(n),1==t.length&&e()}}(),s=function(){var t=["Webkit","O","Moz","ms"],e={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(t,e){return e.toUpperCase()})),e[n]||(e[n]=function(e){var n=document.body.style;if(e in n)return e;for(var r,o=t.length,i=e.charAt(0).toUpperCase()+e.slice(1);o--;)if((r=t[o]+i)in n)return r;return e}(n))}function r(t,e,r){e=n(e),t.style[e]=r}return function(t,e){var n,o,i=arguments;if(2==i.length)for(n in e)void 0!==(o=e[n])&&e.hasOwnProperty(n)&&r(t,n,o);else r(t,i[1],i[2])}}();function c(t,e){return("string"==typeof t?t:p(t)).indexOf(" "+e+" ")>=0}function u(t,e){var n=p(t),r=n+e;c(n,e)||(t.className=r.substring(1))}function l(t,e){var n,r=p(t);c(t,e)&&(n=r.replace(" "+e+" "," "),t.className=n.substring(1,n.length-1))}function p(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function f(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return n})?r.call(e,n,e,t):r)||(t.exports=o)},function(t,e,n){"use strict";var r=n(0),o=n(49).f,i=n(14),a=n(106),s=n(35),c=n(64),u=n(122);t.exports=function(t,e){var n,l,p,f,d,h=t.target,v=t.global,m=t.stat;if(n=v?r:m?r[h]||s(h,{}):r[h]&&r[h].prototype)for(l in e){if(f=e[l],p=t.dontCallGetSet?(d=o(n,l))&&d.value:n[l],!u(v?l:h+(m?".":"#")+l,t.forced)&&void 0!==p){if(typeof f==typeof p)continue;c(f,p)}(t.sham||p&&p.sham)&&i(f,"sham",!0),a(n,l,f,t)}}},function(t,e,n){"use strict";var r=n(27),o=Function.prototype.call;t.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},function(t,e,n){"use strict";var r=n(2);t.exports=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},function(t,e,n){"use strict";t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){"use strict";var r=n(50),o=n(30);t.exports=function(t){return r(o(t))}},function(t,e,n){"use strict";var r=n(51),o=TypeError;t.exports=function(t){if(r(t))throw new o("Can't call method on "+t);return t}},function(t,e,n){"use strict";var r=n(0),o=n(1),i=function(t){return o(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t]):r[t]&&r[t][e]}},function(t,e,n){"use strict";var r=n(1),o=n(102),i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+" is not a function")}},function(t,e,n){"use strict";var r=n(0),o=n(58),i=n(9),a=n(60),s=n(56),c=n(55),u=r.Symbol,l=o("wks"),p=c?u.for||u:u&&u.withoutSetter||a;t.exports=function(t){return i(l,t)||(l[t]=s&&i(u,t)?u[t]:p("Symbol."+t)),l[t]}},function(t,e,n){"use strict";var r=n(59),o=n(0),i=n(35),a=t.exports=o["__core-js_shared__"]||i("__core-js_shared__",{});(a.versions||(a.versions=[])).push({version:"3.36.1",mode:r?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.36.1/LICENSE",source:"https://github.com/zloirock/core-js"})},function(t,e,n){"use strict";var r=n(0),o=Object.defineProperty;t.exports=function(t,e){try{o(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},function(t,e,n){"use strict";var r=n(30),o=Object;t.exports=function(t){return o(r(t))}},function(t,e,n){"use strict";var r=n(119);t.exports=function(t){return r(t.length)}},function(t,e,n){var r=n(147),o=n(12),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(t){return o(t)&&a.call(t,"callee")&&!s.call(t,"callee")};t.exports=c},function(t,e,n){var r=n(10)(n(7),"Map");t.exports=r},function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},function(t,e,n){var r=n(167),o=n(174),i=n(176),a=n(177),s=n(178);function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e-1&&t%1==0&&t<=9007199254740991}},function(t,e,n){var r=n(4),o=n(45),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;t.exports=function(t,e){if(r(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!o(t))||(a.test(t)||!i.test(t)||null!=e&&t in Object(e))}},function(t,e,n){var r=n(13),o=n(12);t.exports=function(t){return"symbol"==typeof t||o(t)&&"[object Symbol]"==r(t)}},function(t,e){t.exports=function(t){return t}},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e){var n=/^\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,u=s||c||Function("return this")(),l=Object.prototype.toString,p=Math.max,f=Math.min,d=function(){return u.Date.now()};function h(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function v(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&"[object Symbol]"==l.call(t)}(t))return NaN;if(h(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=h(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(n,"");var s=o.test(t);return s||i.test(t)?a(t.slice(2),s?2:8):r.test(t)?NaN:+t}t.exports=function(t,e,n){var r,o,i,a,s,c,u=0,l=!1,m=!1,g=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function y(e){var n=r,i=o;return r=o=void 0,u=e,a=t.apply(i,n)}function b(t){return u=t,s=setTimeout(x,e),l?y(t):a}function _(t){var n=t-c;return void 0===c||n>=e||n<0||m&&t-u>=i}function x(){var t=d();if(_(t))return w(t);s=setTimeout(x,function(t){var n=e-(t-c);return m?f(n,i-(t-u)):n}(t))}function w(t){return s=void 0,g&&r?y(t):(r=o=void 0,a)}function k(){var t=d(),n=_(t);if(r=arguments,o=this,c=t,n){if(void 0===s)return b(c);if(m)return s=setTimeout(x,e),y(c)}return void 0===s&&(s=setTimeout(x,e)),a}return e=v(e)||0,h(n)&&(l=!!n.leading,i=(m="maxWait"in n)?p(v(n.maxWait)||0,e):i,g="trailing"in n?!!n.trailing:g),k.cancel=function(){void 0!==s&&clearTimeout(s),u=0,r=c=o=s=void 0},k.flush=function(){return void 0===s?a:w(d())},k}},function(t,e,n){"use strict";var r=n(5),o=n(26),i=n(98),a=n(28),s=n(29),c=n(52),u=n(9),l=n(61),p=Object.getOwnPropertyDescriptor;e.f=r?p:function(t,e){if(t=s(t),e=c(e),l)try{return p(t,e)}catch(t){}if(u(t,e))return a(!o(i.f,t,e),t[e])}},function(t,e,n){"use strict";var r=n(3),o=n(2),i=n(17),a=Object,s=r("".split);t.exports=o((function(){return!a("z").propertyIsEnumerable(0)}))?function(t){return"String"===i(t)?s(t,""):a(t)}:a},function(t,e,n){"use strict";t.exports=function(t){return null==t}},function(t,e,n){"use strict";var r=n(99),o=n(53);t.exports=function(t){var e=r(t,"string");return o(e)?e:e+""}},function(t,e,n){"use strict";var r=n(31),o=n(1),i=n(54),a=n(55),s=Object;t.exports=a?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return o(e)&&i(e.prototype,s(t))}},function(t,e,n){"use strict";var r=n(3);t.exports=r({}.isPrototypeOf)},function(t,e,n){"use strict";var r=n(56);t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(t,e,n){"use strict";var r=n(57),o=n(2),i=n(0).String;t.exports=!!Object.getOwnPropertySymbols&&!o((function(){var t=Symbol("symbol detection");return!i(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},function(t,e,n){"use strict";var r,o,i=n(0),a=n(100),s=i.process,c=i.Deno,u=s&&s.versions||c&&c.version,l=u&&u.v8;l&&(o=(r=l.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]),t.exports=o},function(t,e,n){"use strict";var r=n(34);t.exports=function(t,e){return r[t]||(r[t]=e||{})}},function(t,e,n){"use strict";t.exports=!1},function(t,e,n){"use strict";var r=n(3),o=0,i=Math.random(),a=r(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++o+i,36)}},function(t,e,n){"use strict";var r=n(5),o=n(2),i=n(104);t.exports=!r&&!o((function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(t,e,n){"use strict";var r=n(6),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+" is not an object")}},function(t,e,n){"use strict";t.exports={}},function(t,e,n){"use strict";var r=n(9),o=n(113),i=n(49),a=n(18);t.exports=function(t,e,n){for(var s=o(e),c=a.f,u=i.f,l=0;ll))return!1;var f=c.get(t),d=c.get(e);if(f&&d)return f==e&&d==t;var h=-1,v=!0,m=2&n?new r:void 0;for(c.set(t,e),c.set(e,t);++h-1&&t%1==0&&t=0&&Math.floor(e)===e&&isFinite(t)}function v(t){return a(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function m(t){return null==t?"":Array.isArray(t)||f(t)&&t.toString===p?JSON.stringify(t,g,2):String(t)}function g(t,e){return e&&e.__v_isRef?e.value:e}function y(t){var e=parseFloat(t);return isNaN(e)?t:e}function b(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o-1)return t.splice(r,1)}}var w=Object.prototype.hasOwnProperty;function k(t,e){return w.call(t,e)}function O(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var C=/-(\w)/g,j=O((function(t){return t.replace(C,(function(t,e){return e?e.toUpperCase():""}))})),$=O((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),S=/\B([A-Z])/g,E=O((function(t){return t.replace(S,"-$1").toLowerCase()}));var T=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function A(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function P(t,e){for(var n in e)t[n]=e[n];return t}function L(t){for(var e={},n=0;n0,Q=X&&X.indexOf("edge/")>0;X&&X.indexOf("android");var tt=X&&/iphone|ipad|ipod|ios/.test(X);X&&/chrome\/\d+/.test(X),X&&/phantomjs/.test(X);var et,nt=X&&X.match(/firefox\/(\d+)/),rt={}.watch,ot=!1;if(K)try{var it={};Object.defineProperty(it,"passive",{get:function(){ot=!0}}),window.addEventListener("test-passive",null,it)}catch(t){}var at=function(){return void 0===et&&(et=!K&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),et},st=K&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ct(t){return"function"==typeof t&&/native code/.test(t.toString())}var ut,lt="undefined"!=typeof Symbol&&ct(Symbol)&&"undefined"!=typeof Reflect&&ct(Reflect.ownKeys);ut="undefined"!=typeof Set&&ct(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var pt=null;function ft(t){void 0===t&&(t=null),t||pt&&pt._scope.off(),pt=t,t&&t._scope.on()}var dt=function(){function t(t,e,n,r,o,i,a,s){this.tag=t,this.data=e,this.children=n,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=e&&e.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(t.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),t}(),ht=function(t){void 0===t&&(t="");var e=new dt;return e.text=t,e.isComment=!0,e};function vt(t){return new dt(void 0,void 0,void 0,String(t))}function mt(t){var e=new dt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}"function"==typeof SuppressedError&&SuppressedError;var gt=0,yt=[],bt=function(){function t(){this._pending=!1,this.id=gt++,this.subs=[]}return t.prototype.addSub=function(t){this.subs.push(t)},t.prototype.removeSub=function(t){this.subs[this.subs.indexOf(t)]=null,this._pending||(this._pending=!0,yt.push(this))},t.prototype.depend=function(e){t.target&&t.target.addDep(this)},t.prototype.notify=function(t){var e=this.subs.filter((function(t){return t}));for(var n=0,r=e.length;n0&&(Xt((u=t(u,"".concat(n||"","_").concat(r)))[0])&&Xt(p)&&(f[l]=vt(p.text+u[0].text),u.shift()),f.push.apply(f,u)):c(u)?Xt(p)?f[l]=vt(p.text+u):""!==u&&f.push(vt(u)):Xt(u)&&Xt(p)?f[l]=vt(p.text+u.text):(s(e._isVList)&&a(u.tag)&&i(u.key)&&a(n)&&(u.key="__vlist".concat(n,"_").concat(r,"__")),f.push(u)));return f}(t):void 0}function Xt(t){return a(t)&&a(t.text)&&!1===t.isComment}function Yt(t,e){var n,r,i,s,c=null;if(o(t)||"string"==typeof t)for(c=new Array(t.length),n=0,r=t.length;n0,s=e?!!e.$stable:!a,c=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(s&&o&&o!==r&&c===o.$key&&!a&&!o.$hasNormal)return o;for(var u in i={},e)e[u]&&"$"!==u[0]&&(i[u]=me(t,n,u,e[u]))}else i={};for(var l in n)l in i||(i[l]=ge(n,l));return e&&Object.isExtensible(e)&&(e._normalized=i),W(i,"$stable",s),W(i,"$key",c),W(i,"$hasNormal",a),i}function me(t,e,n,r){var i=function(){var e=pt;ft(t);var n=arguments.length?r.apply(null,arguments):r({}),i=(n=n&&"object"==typeof n&&!o(n)?[n]:Kt(n))&&n[0];return ft(e),n&&(!i||1===n.length&&i.isComment&&!he(i))?void 0:n};return r.proxy&&Object.defineProperty(e,n,{get:i,enumerable:!0,configurable:!0}),i}function ge(t,e){return function(){return t[e]}}function ye(t){return{get attrs(){if(!t._attrsProxy){var e=t._attrsProxy={};W(e,"_v_attr_proxy",!0),be(e,t.$attrs,r,t,"$attrs")}return t._attrsProxy},get listeners(){t._listenersProxy||be(t._listenersProxy={},t.$listeners,r,t,"$listeners");return t._listenersProxy},get slots(){return function(t){t._slotsProxy||xe(t._slotsProxy={},t.$scopedSlots);return t._slotsProxy}(t)},emit:T(t.$emit,t),expose:function(e){e&&Object.keys(e).forEach((function(n){return Ut(t,e,n)}))}}}function be(t,e,n,r,o){var i=!1;for(var a in e)a in t?e[a]!==n[a]&&(i=!0):(i=!0,_e(t,a,r,o));for(var a in t)a in e||(i=!0,delete t[a]);return i}function _e(t,e,n,r){Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){return n[r][e]}})}function xe(t,e){for(var n in e)t[n]=e[n];for(var n in t)n in e||delete t[n]}var we=null;function ke(t,e){return(t.__esModule||lt&&"Module"===t[Symbol.toStringTag])&&(t=t.default),l(t)?e.extend(t):t}function Oe(t){if(o(t))for(var e=0;edocument.createEvent("Event").timeStamp&&(un=function(){return ln.now()})}var pn=function(t,e){if(t.post){if(!e.post)return 1}else if(e.post)return-1;return t.id-e.id};function fn(){var t,e;for(cn=un(),an=!0,en.sort(pn),sn=0;snsn&&en[n].id>t.id;)n--;en.splice(n+1,0,t)}else en.push(t);on||(on=!0,Ne(fn))}}function hn(t,e){if(t){for(var n=Object.create(null),r=lt?Reflect.ownKeys(t):Object.keys(t),o=0;o-1)if(i&&!k(o,"default"))a=!1;else if(""===a||a===E(t)){var c=In(String,o.type);(c<0||s-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!d(t)&&t.test(e)}function Yn(t,e){var n=t.cache,r=t.keys,o=t._vnode,i=t.$vnode;for(var a in n){var s=n[a];if(s){var c=s.name;c&&!e(c)&&Zn(n,a,r,o)}}i.componentOptions.children=void 0}function Zn(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,x(n,e)}!function(t){t.prototype._init=function(t){var e=this;e._uid=Hn++,e._isVue=!0,e.__v_skip=!0,e._scope=new Ft(!0),e._scope.parent=void 0,e._scope._vm=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Tn(Wn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._provided=n?n._provided:Object.create(null),t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Ke(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=fe(e._renderChildren,o),t.$scopedSlots=n?ve(t.$parent,n.data.scopedSlots,t.$slots):r,t._c=function(e,n,r,o){return Ce(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return Ce(t,e,n,r,o,!0)};var i=n&&n.data;Pt(t,"$attrs",i&&i.attrs||r,null,!0),Pt(t,"$listeners",e._parentListeners||r,null,!0)}(e),tn(e,"beforeCreate",void 0,!1),function(t){var e=hn(t.$options.inject,t);e&&(St(!1),Object.keys(e).forEach((function(n){Pt(t,n,e[n])})),St(!0))}(e),Nn(e),function(t){var e=t.$options.provide;if(e){var n=u(e)?e.call(t):e;if(!l(n))return;for(var r=Vt(t),o=lt?Reflect.ownKeys(n):Object.keys(n),i=0;i1?A(n):n;for(var r=A(arguments,1),o='event handler for "'.concat(t,'"'),i=0,a=n.length;iparseInt(this.max)&&Zn(t,e[0],e,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Zn(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",(function(e){Yn(t,(function(t){return Xn(e,t)}))})),this.$watch("exclude",(function(e){Yn(t,(function(t){return!Xn(e,t)}))}))},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=Oe(t),n=e&&e.componentOptions;if(n){var r=Kn(n),o=this.include,i=this.exclude;if(o&&(!r||!Xn(o,r))||i&&r&&Xn(i,r))return e;var a=this.cache,s=this.keys,c=null==e.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):e.key;a[c]?(e.componentInstance=a[c].componentInstance,x(s,c),s.push(c)):(this.vnodeToCache=e,this.keyToCache=c),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return V}};Object.defineProperty(t,"config",e),t.util={warn:kn,extend:P,mergeOptions:Tn,defineReactive:Pt},t.set=Lt,t.delete=Mt,t.nextTick=Ne,t.observable=function(t){return At(t),t},t.options=Object.create(null),B.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,P(t.options.components,tr),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=A(arguments,1);return n.unshift(this),u(t.install)?t.install.apply(t,n):u(t)&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Tn(this.options,t),this}}(t),Jn(t),function(t){B.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&f(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&u(n)&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}(t)}(Gn),Object.defineProperty(Gn.prototype,"$isServer",{get:at}),Object.defineProperty(Gn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Gn,"FunctionalRenderContext",{value:vn}),Gn.version="2.7.16";var er=b("style,class"),nr=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(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},cr=function(t){return sr(t)?t.slice(6,t.length):""},ur=function(t){return null==t||!1===t};function lr(t){for(var e=t.data,n=t,r=t;a(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=pr(r.data,e));for(;a(n=n.parent);)n&&n.data&&(e=pr(e,n.data));return function(t,e){if(a(t)||a(e))return fr(t,dr(e));return""}(e.staticClass,e.class)}function pr(t,e){return{staticClass:fr(t.staticClass,e.staticClass),class:a(t.class)?[t.class,e.class]:e.class}}function fr(t,e){return t?e?t+" "+e:t:e||""}function dr(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r-1?Dr(t,e,n):ir(e)?ur(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):rr(e)?t.setAttribute(e,function(t,e){return ur(e)||"false"===e?"false":"contenteditable"===t&&or(e)?e:"true"}(e,n)):sr(e)?ur(n)?t.removeAttributeNS(ar,cr(e)):t.setAttributeNS(ar,e,n):Dr(t,e,n)}function Dr(t,e,n){if(ur(n))t.removeAttribute(e);else{if(Y&&!Z&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var zr={create:Rr,update:Rr};function Nr(t,e){var n=e.elm,r=e.data,o=t.data;if(!(i(r.staticClass)&&i(r.class)&&(i(o)||i(o.staticClass)&&i(o.class)))){var s=lr(e),c=n._transitionClasses;a(c)&&(s=fr(s,dr(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Ur,Br={create:Nr,update:Nr};function Fr(t,e,n){var r=Ur;return function o(){var i=e.apply(null,arguments);null!==i&&Hr(t,o,n,r)}}var Vr=Ae&&!(nt&&Number(nt[1])<=53);function qr(t,e,n,r){if(Vr){var o=cn,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}Ur.addEventListener(t,e,ot?{capture:n,passive:r}:n)}function Hr(t,e,n,r){(r||Ur).removeEventListener(t,e._wrapper||e,n)}function Wr(t,e){if(!i(t.data.on)||!i(e.data.on)){var n=e.data.on||{},r=t.data.on||{};Ur=e.elm||t.elm,function(t){if(a(t.__r)){var e=Y?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}a(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(n),Wt(n,r,qr,Hr,Fr,e.context),Ur=void 0}}var Gr,Jr={create:Wr,update:Wr,destroy:function(t){return Wr(t,Or)}};function Kr(t,e){if(!i(t.data.domProps)||!i(e.data.domProps)){var n,r,o=e.elm,c=t.data.domProps||{},u=e.data.domProps||{};for(n in(a(u.__ob__)||s(u._v_attr_proxy))&&(u=e.data.domProps=P({},u)),c)n in u||(o[n]="");for(n in u){if(r=u[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===c[n])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===n&&"PROGRESS"!==o.tagName){o._value=r;var l=i(r)?"":String(r);Xr(o,l)&&(o.value=l)}else if("innerHTML"===n&&mr(o.tagName)&&i(o.innerHTML)){(Gr=Gr||document.createElement("div")).innerHTML="".concat(r,"");for(var p=Gr.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;p.firstChild;)o.appendChild(p.firstChild)}else if(r!==c[n])try{o[n]=r}catch(t){}}}}function Xr(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(a(r)){if(r.number)return y(n)!==y(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Yr={create:Kr,update:Kr},Zr=O((function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach((function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}})),e}));function Qr(t){var e=to(t.style);return t.staticStyle?P(t.staticStyle,e):e}function to(t){return Array.isArray(t)?L(t):"string"==typeof t?Zr(t):t}var eo,no=/^--/,ro=/\s*!important$/,oo=function(t,e,n){if(no.test(e))t.style.setProperty(e,n);else if(ro.test(n))t.style.setProperty(E(e),n.replace(ro,""),"important");else{var r=ao(e);if(Array.isArray(n))for(var o=0,i=n.length;o-1?e.split(uo).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" ".concat(t.getAttribute("class")||""," ");n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function po(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(uo).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" ".concat(t.getAttribute("class")||""," "),r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function fo(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&P(e,ho(t.name||"v")),P(e,t),e}return"string"==typeof t?ho(t):void 0}}var ho=O((function(t){return{enterClass:"".concat(t,"-enter"),enterToClass:"".concat(t,"-enter-to"),enterActiveClass:"".concat(t,"-enter-active"),leaveClass:"".concat(t,"-leave"),leaveToClass:"".concat(t,"-leave-to"),leaveActiveClass:"".concat(t,"-leave-active")}})),vo=K&&!Z,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 _o=K?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function xo(t){_o((function(){_o(t)}))}function wo(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),lo(t,e))}function ko(t,e){t._transitionClasses&&x(t._transitionClasses,e),po(t,e)}function Oo(t,e,n){var r=jo(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s="transition"===o?go:bo,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout((function(){c0&&(n="transition",l=a,p=i.length):"animation"===e?u>0&&(n="animation",l=u,p=c.length):p=(n=(l=Math.max(a,u))>0?a>u?"transition":"animation":null)?"transition"===n?i.length:c.length:0,{type:n,timeout:l,propCount:p,hasTransform:"transition"===n&&Co.test(r[mo+"Property"])}}function $o(t,e){for(;t.length1}function Lo(t,e){!0!==e.data.show&&Eo(e)}var Mo=function(t){var e,n,r={},u=t.modules,l=t.nodeOps;for(e=0;eh?_(t,i(n[g+1])?null:n[g+1].elm,n,d,g,r):d>g&&w(e,p,h)}(p,v,g,n,u):a(g)?(a(t.text)&&l.setTextContent(p,""),_(p,null,g,0,g.length-1,n)):a(v)?w(v,0,v.length-1):a(t.text)&&l.setTextContent(p,""):t.text!==e.text&&l.setTextContent(p,e.text),a(h)&&a(d=h.hook)&&a(d=d.postpatch)&&d(t,e)}}}function j(t,e,n){if(s(n)&&a(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,a.selected!==i&&(a.selected=i);else if(D(No(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function zo(t,e){return e.every((function(e){return!D(e,t)}))}function No(t){return"_value"in t?t._value:t.value}function Uo(t){t.target.composing=!0}function Bo(t){t.target.composing&&(t.target.composing=!1,Fo(t.target,"input"))}function Fo(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Vo(t){return!t.componentInstance||t.data&&t.data.transition?t:Vo(t.componentInstance._vnode)}var qo={model:Ro,show:{bind:function(t,e,n){var r=e.value,o=(n=Vo(n)).data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,Eo(n,(function(){t.style.display=i}))):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=Vo(n)).data&&n.data.transition?(n.data.show=!0,r?Eo(n,(function(){t.style.display=t.__vOriginalDisplay})):To(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},Ho={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 Wo(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Wo(Oe(e.children)):t}function Go(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var r in o)e[j(r)]=o[r];return e}function Jo(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Ko=function(t){return t.tag||he(t)},Xo=function(t){return"show"===t.name},Yo={name:"transition",props:Ho,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Ko)).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var i=Wo(o);if(!i)return o;if(this._leaving)return Jo(t,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=Go(this),u=this._vnode,l=Wo(u);if(i.data.directives&&i.data.directives.some(Xo)&&(i.data.show=!0),l&&l.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(i,l)&&!he(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var p=l.data.transition=P({},s);if("out-in"===r)return this._leaving=!0,Gt(p,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),Jo(t,o);if("in-out"===r){if(he(i))return u;var f,d=function(){f()};Gt(s,"afterEnter",d),Gt(s,"enterCancelled",d),Gt(p,"delayLeave",(function(t){f=t}))}}return o}}},Zo=P({tag:String,moveClass:String},Ho);function Qo(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function ti(t){t.data.newPos=t.elm.getBoundingClientRect()}function ei(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate(".concat(r,"px,").concat(o,"px)"),i.transitionDuration="0s"}}delete Zo.mode;var ni={Transition:Yo,TransitionGroup:{props:Zo,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Ye(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=Go(this),s=0;s-1?yr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:yr[t]=/HTMLUnknownElement/.test(e.toString())},P(Gn.options.directives,qo),P(Gn.options.components,ni),Gn.prototype.__patch__=K?Mo:M,Gn.prototype.$mount=function(t,e){return function(t,e,n){var r;t.$el=e,t.$options.render||(t.$options.render=ht),tn(t,"beforeMount"),r=function(){t._update(t._render(),n)},new He(t,r,M,{before:function(){t._isMounted&&!t._isDestroyed&&tn(t,"beforeUpdate")}},!0),n=!1;var o=t._preWatchers;if(o)for(var i=0;i=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),u=e&&e.path||"/",l=c.path?ki(c.path,u,n||o.append):u,p=function(t,e,n){void 0===e&&(e={});var r,o=n||li;try{r=o(t||"")}catch(t){r={}}for(var i in e){var a=e[i];r[i]=Array.isArray(a)?a.map(ui):ui(a)}return r}(c.query,o.query,r&&r.options.parseQuery),f=o.hash||c.hash;return f&&"#"!==f.charAt(0)&&(f="#"+f),{_normalized:!0,path:l,query:p,hash:f}}var qi,Hi=function(){},Wi={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(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),i=o.location,a=o.route,s=o.href,c={},u=n.options.linkActiveClass,l=n.options.linkExactActiveClass,p=null==u?"router-link-active":u,f=null==l?"router-link-exact-active":l,d=null==this.activeClass?p:this.activeClass,h=null==this.exactActiveClass?f:this.exactActiveClass,v=a.redirectedFrom?di(null,Vi(a.redirectedFrom),null,n):a;c[h]=yi(r,v,this.exactPath),c[d]=this.exact||this.exactPath?c[h]:function(t,e){return 0===t.path.replace(fi,"/").indexOf(e.path.replace(fi,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,v);var m=c[h]?this.ariaCurrentValue:null,g=function(t){Gi(t)&&(e.replace?n.replace(i,Hi):n.push(i,Hi))},y={click:Gi};Array.isArray(this.event)?this.event.forEach((function(t){y[t]=g})):y[this.event]=g;var b={class:c},_=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:g,isActive:c[d],isExactActive:c[h]});if(_){if(1===_.length)return _[0];if(_.length>1||!_.length)return 0===_.length?t():t("span",{},_)}if("a"===this.tag)b.on=y,b.attrs={href:s,"aria-current":m};else{var x=function t(e){var n;if(e)for(var r=0;r-1&&(s.params[f]=n.params[f]);return s.path=Fi(l.path,s.params),c(l,s,a)}if(s.path){s.params={};for(var d=0;d-1}function Oa(t,e){return ka(t)&&t._isRouter&&(null==e||t.type===e)}function Ca(t,e,n){var r=function(o){o>=t.length?n():t[o]?e(t[o],(function(){r(o+1)})):r(o+1)};r(0)}function ja(t){return function(e,n,r){var o=!1,i=0,a=null;$a(t,(function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){o=!0,i++;var c,u=Ta((function(e){var o;((o=e).__esModule||Ea&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:qi.extend(e),n.components[s]=e,--i<=0&&r()})),l=Ta((function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=ka(t)?t:new Error(e),r(a))}));try{c=t(u,l)}catch(t){l(t)}if(c)if("function"==typeof c.then)c.then(u,l);else{var p=c.component;p&&"function"==typeof p.then&&p.then(u,l)}}})),o||r()}}function $a(t,e){return Sa(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function Sa(t){return Array.prototype.concat.apply([],t)}var Ea="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Ta(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var Aa=function(t,e){this.router=t,this.base=function(t){if(!t)if(Ji){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=vi,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Pa(t,e,n,r){var o=$a(t,(function(t,r,o,i){var a=function(t,e){"function"!=typeof t&&(t=qi.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map((function(t){return n(t,r,o,i)})):n(a,r,o,i)}));return Sa(r?o.reverse():o)}function La(t,e){if(e)return function(){return t.apply(e,arguments)}}Aa.prototype.listen=function(t){this.cb=t},Aa.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},Aa.prototype.onError=function(t){this.errorCbs.push(t)},Aa.prototype.transitionTo=function(t,e,n){var r,o=this;try{r=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach((function(e){e(t)})),t}var i=this.current;this.confirmTransition(r,(function(){o.updateRoute(r),e&&e(r),o.ensureURL(),o.router.afterHooks.forEach((function(t){t&&t(r,i)})),o.ready||(o.ready=!0,o.readyCbs.forEach((function(t){t(r)})))}),(function(t){n&&n(t),t&&!o.ready&&(Oa(t,ya.redirected)&&i===vi||(o.ready=!0,o.readyErrorCbs.forEach((function(e){e(t)}))))}))},Aa.prototype.confirmTransition=function(t,e,n){var r=this,o=this.current;this.pending=t;var i,a,s=function(t){!Oa(t)&&ka(t)&&(r.errorCbs.length?r.errorCbs.forEach((function(e){e(t)})):console.error(t)),n&&n(t)},c=t.matched.length-1,u=o.matched.length-1;if(yi(t,o)&&c===u&&t.matched[c]===o.matched[u])return this.ensureURL(),t.hash&&aa(this.router,o,t,!1),s(((a=xa(i=o,t,ya.duplicated,'Avoided redundant navigation to current location: "'+i.fullPath+'".')).name="NavigationDuplicated",a));var l=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n0)){var e=this.router,n=e.options.scrollBehavior,r=va&&n;r&&this.listeners.push(ia());var o=function(){var n=t.current,o=Ra(t.base);t.current===vi&&o===t._startLocation||t.transitionTo(o,(function(t){r&&aa(e,t,n,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){ma(Oi(r.base+t.fullPath)),aa(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){ga(Oi(r.base+t.fullPath)),aa(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(Ra(this.base)!==this.current.fullPath){var e=Oi(this.base+this.current.fullPath);t?ma(e):ga(e)}},e.prototype.getCurrentLocation=function(){return Ra(this.base)},e}(Aa);function Ra(t){var e=window.location.pathname,n=e.toLowerCase(),r=t.toLowerCase();return!t||n!==r&&0!==n.indexOf(Oi(r+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Ia=function(t){function e(e,n,r){t.call(this,e,n),r&&function(t){var e=Ra(t);if(!/^\/#/.test(e))return window.location.replace(Oi(t+"/#"+e)),!0}(this.base)||Da()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router.options.scrollBehavior,n=va&&e;n&&this.listeners.push(ia());var r=function(){var e=t.current;Da()&&t.transitionTo(za(),(function(r){n&&aa(t.router,r,e,!0),va||Ba(r.fullPath)}))},o=va?"popstate":"hashchange";window.addEventListener(o,r),this.listeners.push((function(){window.removeEventListener(o,r)}))}},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Ua(t.fullPath),aa(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Ba(t.fullPath),aa(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;za()!==e&&(t?Ua(e):Ba(e))},e.prototype.getCurrentLocation=function(){return za()},e}(Aa);function Da(){var t=za();return"/"===t.charAt(0)||(Ba("/"+t),!1)}function za(){var t=window.location.href,e=t.indexOf("#");return e<0?"":t=t.slice(e+1)}function Na(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function Ua(t){va?ma(Na(t)):window.location.hash=t}function Ba(t){va?ga(Na(t)):window.location.replace(Na(t))}var Fa=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var t=e.current;e.index=n,e.updateRoute(r),e.router.afterHooks.forEach((function(e){e&&e(r,t)}))}),(function(t){Oa(t,ya.duplicated)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(Aa),Va=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Yi(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!va&&!1!==t.fallback,this.fallback&&(e="hash"),Ji||(e="abstract"),this.mode=e,e){case"history":this.history=new Ma(this,t.base);break;case"hash":this.history=new Ia(this,t.base,this.fallback);break;case"abstract":this.history=new Fa(this,t.base);break;default:0}},qa={currentRoute:{configurable:!0}};Va.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},qa.currentRoute.get=function(){return this.history&&this.history.current},Va.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var n=this.history;if(n instanceof Ma||n instanceof Ia){var r=function(t){n.setupListeners(),function(t){var r=n.current,o=e.options.scrollBehavior;va&&o&&"fullPath"in t&&aa(e,t,r,!1)}(t)};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},Va.prototype.beforeEach=function(t){return Wa(this.beforeHooks,t)},Va.prototype.beforeResolve=function(t){return Wa(this.resolveHooks,t)},Va.prototype.afterEach=function(t){return Wa(this.afterHooks,t)},Va.prototype.onReady=function(t,e){this.history.onReady(t,e)},Va.prototype.onError=function(t){this.history.onError(t)},Va.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.push(t,e,n)}));this.history.push(t,e,n)},Va.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.replace(t,e,n)}));this.history.replace(t,e,n)},Va.prototype.go=function(t){this.history.go(t)},Va.prototype.back=function(){this.go(-1)},Va.prototype.forward=function(){this.go(1)},Va.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},Va.prototype.resolve=function(t,e,n){var r=Vi(t,e=e||this.history.current,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?Oi(t+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},Va.prototype.getRoutes=function(){return this.matcher.getRoutes()},Va.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==vi&&this.history.transitionTo(this.history.getCurrentLocation())},Va.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==vi&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Va.prototype,qa);var Ha=Va;function Wa(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}Va.install=function t(e){if(!t.installed||qi!==e){t.installed=!0,qi=e;var n=function(t){return void 0!==t},r=function(t,e){var r=t.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.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(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",xi),e.component("RouterLink",Wi);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},Va.version="3.6.5",Va.isNavigationFailure=Oa,Va.NavigationFailureType=ya,Va.START_LOCATION=vi,Ji&&window.Vue&&window.Vue.use(Va);n(97);n(126),n(16);var Ga={NotFound:()=>Promise.all([n.e(0),n.e(4)]).then(n.bind(null,318)),Layout:()=>Promise.all([n.e(0),n.e(2)]).then(n.bind(null,317))},Ja={"v-7942c6ac":()=>n.e(6).then(n.bind(null,319)),"v-28d949b6":()=>n.e(7).then(n.bind(null,320)),"v-05fee314":()=>n.e(5).then(n.bind(null,321)),"v-865cc866":()=>n.e(8).then(n.bind(null,322)),"v-3c5fb6e5":()=>n.e(10).then(n.bind(null,323)),"v-3fafbfca":()=>n.e(12).then(n.bind(null,324)),"v-966ddacc":()=>n.e(11).then(n.bind(null,325)),"v-8f7eecb6":()=>n.e(13).then(n.bind(null,326)),"v-cf2f15f6":()=>n.e(14).then(n.bind(null,327)),"v-3b160f25":()=>n.e(15).then(n.bind(null,328)),"v-2ece97be":()=>n.e(16).then(n.bind(null,329)),"v-ca4b458e":()=>n.e(9).then(n.bind(null,330))};function Ka(t){const e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}const Xa=/-(\w)/g,Ya=Ka(t=>t.replace(Xa,(t,e)=>e?e.toUpperCase():"")),Za=/\B([A-Z])/g,Qa=Ka(t=>t.replace(Za,"-$1").toLowerCase()),ts=Ka(t=>t.charAt(0).toUpperCase()+t.slice(1));function es(t,e){if(!e)return;if(t(e))return t(e);return e.includes("-")?t(ts(Ya(e))):t(ts(e))||t(Qa(e))}const ns=Object.assign({},Ga,Ja),rs=t=>ns[t],os=t=>Ja[t],is=t=>Ga[t],as=t=>Gn.component(t);function ss(t){return es(os,t)}function cs(t){return es(is,t)}function us(t){return es(rs,t)}function ls(t){return es(as,t)}function ps(...t){return Promise.all(t.filter(t=>t).map(async t=>{if(!ls(t)&&us(t)){const e=await us(t)();Gn.component(t,e.default)}}))}function fs(t,e){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[t]=e)}var ds=n(91),hs=n.n(ds),vs=n(92),ms=n.n(vs),gs={created(){if(this.siteMeta=this.$site.headTags.filter(([t])=>"meta"===t).map(([t,e])=>e),this.$ssrContext){const e=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(t=e)?t.map(t=>{let e="{e+=` ${n}="${ms()(t[n])}"`}),e+">"}).join("\n "):"",this.$ssrContext.canonicalLink=bs(this.$canonicalUrl)}var t},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const t=this.getMergedMetaTags();this.currentMetaTags=_s(t,this.currentMetaTags)},getMergedMetaTags(){const t=this.$page.frontmatter.meta||[];return hs()([{name:"description",content:this.$description}],t,this.siteMeta,xs)},updateCanonicalLink(){ys(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",bs(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){_s(null,this.currentMetaTags),ys()}};function ys(){const t=document.querySelector("link[rel='canonical']");t&&t.remove()}function bs(t=""){return t?``:""}function _s(t,e){if(e&&[...e].filter(t=>t.parentNode===document.head).forEach(t=>document.head.removeChild(t)),t)return t.map(t=>{const e=document.createElement("meta");return Object.keys(t).forEach(n=>{e.setAttribute(n,t[n])}),document.head.appendChild(e),e})}function xs(t){for(const e of["name","property","itemprop"])if(t.hasOwnProperty(e))return t[e]+e;return JSON.stringify(t)}var ws=n(48),ks={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:n.n(ws)()((function(){this.setActiveHash()}),300),setActiveHash(){const t=[].slice.call(document.querySelectorAll(".sidebar-link")),e=[].slice.call(document.querySelectorAll(".header-anchor")).filter(e=>t.some(t=>t.hash===e.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),r=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),o=window.innerHeight+n;for(let t=0;t=i.parentElement.offsetTop+10&&(!a||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},Os=n(24),Cs=n.n(Os),js={mounted(){Cs.a.configure({showSpinner:!1}),this.$router.beforeEach((t,e,n)=>{t.path===e.path||Gn.component(t.name)||Cs.a.start(),n()}),this.$router.afterEach(()=>{Cs.a.done(),this.isSidebarOpen=!1})}};n(239),n(240);class $s{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:t="",duration:e=3e3}){let n=document.createElement("div");n.className="message move-in",n.innerHTML=`\n \n \n \n
${t}
\n `,this.containerEl.appendChild(n),e>0&&setTimeout(()=>{this.close(n)},e)}close(t){t.className=t.className.replace("move-in",""),t.className+="move-out",t.addEventListener("animationend",()=>{t.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(t=>{document.querySelectorAll(t).forEach(this.generateCopyButton)})},1e3)},generateCopyButton(t){if(t.classList.contains("codecopy-enabled"))return;const e=document.createElement("i");e.className="code-copy",e.innerHTML='',e.title="Copy to clipboard",e.addEventListener("click",()=>{this.copyToClipboard(t.innerText)}),t.appendChild(e),t.classList.add("codecopy-enabled")},copyToClipboard(t){const e=document.createElement("textarea");e.value=t,e.setAttribute("readonly",""),e.style.position="absolute",e.style.left="-9999px",document.body.appendChild(e);const n=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);e.select(),document.execCommand("copy");(new $s).show({text:"复制成功",duration:1e3}),document.body.removeChild(e),n&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(n))}}};!function(t,e){void 0===e&&(e={});var n=e.insertAt;if(t&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}}("@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 Es={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"},Ts={},As=function(t){return'
\n'.concat(t,"\n
")},Ps=function(t){return window.$VUEPRESS_DEMO_BLOCK&&void 0!==window.$VUEPRESS_DEMO_BLOCK[t]?window.$VUEPRESS_DEMO_BLOCK[t]:Es[t]},Ls=function t(e,n,r){var o=document.createElement(e);return n&&Object.keys(n).forEach((function(t){if(t.indexOf("data"))o[t]=n[t];else{var e=t.replace("data","");o.dataset[e]=n[t]}})),r&&r.forEach((function(e){var n=e.tag,r=e.attrs,i=e.children;o.appendChild(t(n,r,i))})),o},Ms=function(t,e,n){var r,o=(r=t.querySelectorAll(".".concat(e)),Array.prototype.slice.call(r));return 1!==o.length||n?o:o[0]},Rs=function(t,e){var n,r,o=t.match(/',datatip:"JSFiddle"}}])}(u)),Ps("codepen")&&r.appendChild(function(t){var e=t.css,n=t.htmlTpl,r=t.jsTpl,o=t.jsLib,i=t.cssLib,a=JSON.stringify({css:e,html:n,js:r,js_external:o.concat(Ps("jsLib")).join(";"),css_external:i.concat(Ps("cssLib")).join(";"),layout:Ps("codepenLayout"),js_pre_processor:Ps("codepenJsProcessor"),editors:Ps("codepenEditors")});return Ls("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:'',className:"vuepress-plugin-demo-block__button",datatip:"Codepen"}}])}(u)),void 0!==a.horizontal?a.horizontal:Ps("horizontal")){t.classList.add("vuepress-plugin-demo-block__horizontal");var p=e.firstChild.cloneNode(!0);p.classList.add("vuepress-plugin-demo-block__h_code"),n.appendChild(p)}if(u.css&&function(t){if(!Ts[t]){var e=Ls("style",{innerHTML:t});document.body.appendChild(e),Ts[t]=!0}}(u.css),"react"===s)ReactDOM.render(React.createElement(u.js),o);else if("vue"===s){var f=(new(Vue.extend(u.script))).$mount();o.appendChild(f.$el)}else"vanilla"===s&&(o.innerHTML=u.html,new Function("return (function(){".concat(u.script,"})()"))());t.dataset.created="true"}})):setTimeout((function(t){zs()}),300)}function Ns(t,e,n,r){var o="1"!==t.dataset.isExpand;n.style.height=o?"".concat(e,"px"):0,o?r.classList.add("vuepress-plugin-demo-block__show-link"):r.classList.remove("vuepress-plugin-demo-block__show-link"),t.dataset.isExpand=o?"1":"0"}var Us={mounted:function(){window.$VUEPRESS_DEMO_BLOCK={jsfiddle:!1,codepen:!0,horizontal:!1},zs()},updated:function(){zs()}},Bs="auto",Fs="zoom-in",Vs="zoom-out",qs="grab",Hs="move";function Ws(t,e,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o={passive:!1};r?t.addEventListener(e,n,o):t.removeEventListener(e,n,o)}function Gs(t,e){if(t){var n=new Image;n.onload=function(){e&&e(n)},n.src=t}}function Js(t){return t.dataset.original?t.dataset.original:"A"===t.parentNode.tagName?t.parentNode.getAttribute("href"):null}function Ks(t,e,n){!function(t){var e=Xs,n=Ys;if(t.transition){var r=t.transition;delete t.transition,t[e]=r}if(t.transform){var o=t.transform;delete t.transform,t[n]=o}}(e);var r=t.style,o={};for(var i in e)n&&(o[i]=r[i]||""),r[i]=e[i];return o}var Xs="transition",Ys="transform",Zs="transform",Qs="transitionend";var tc=function(){},ec={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:tc,onClose:tc,onGrab:tc,onMove:tc,onRelease:tc,onBeforeOpen:tc,onBeforeClose:tc,onBeforeGrab:tc,onBeforeRelease:tc,onImageLoading:tc,onImageLoaded:tc},nc={init:function(t){var e,n;e=this,n=t,Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach((function(t){e[t]=e[t].bind(n)}))},click:function(t){if(t.preventDefault(),oc(t))return window.open(this.target.srcOriginal||t.currentTarget.src,"_blank");this.shown?this.released?this.close():this.release():this.open(t.currentTarget)},scroll:function(){var t=document.documentElement||document.body.parentNode||document.body,e=window.pageXOffset||t.scrollLeft,n=window.pageYOffset||t.scrollTop;null===this.lastScrollPosition&&(this.lastScrollPosition={x:e,y:n});var r=this.lastScrollPosition.x-e,o=this.lastScrollPosition.y-n,i=this.options.scrollThreshold;(Math.abs(o)>=i||Math.abs(r)>=i)&&(this.lastScrollPosition=null,this.close())},keydown:function(t){(function(t){return"Escape"===(t.key||t.code)||27===t.keyCode})(t)&&(this.released?this.close():this.release(this.close))},mousedown:function(t){if(rc(t)&&!oc(t)){t.preventDefault();var e=t.clientX,n=t.clientY;this.pressTimer=setTimeout(function(){this.grab(e,n)}.bind(this),200)}},mousemove:function(t){this.released||this.move(t.clientX,t.clientY)},mouseup:function(t){rc(t)&&!oc(t)&&(clearTimeout(this.pressTimer),this.released?this.close():this.release())},touchstart:function(t){t.preventDefault();var e=t.touches[0],n=e.clientX,r=e.clientY;this.pressTimer=setTimeout(function(){this.grab(n,r)}.bind(this),200)},touchmove:function(t){if(!this.released){var e=t.touches[0],n=e.clientX,r=e.clientY;this.move(n,r)}},touchend:function(t){(function(t){t.targetTouches.length})(t)||(clearTimeout(this.pressTimer),this.released?this.close():this.release())},clickOverlay:function(){this.close()},resizeWindow:function(){this.close()}};function rc(t){return 0===t.button}function oc(t){return t.metaKey||t.ctrlKey}var ic={init:function(t){this.el=document.createElement("div"),this.instance=t,this.parent=document.body,Ks(this.el,{position:"fixed",top:0,left:0,right:0,bottom:0,opacity:0}),this.updateStyle(t.options),Ws(this.el,"click",t.handler.clickOverlay.bind(t))},updateStyle:function(t){Ks(this.el,{zIndex:t.zIndex,backgroundColor:t.bgColor,transition:"opacity\n "+t.transitionDuration+"s\n "+t.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(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},sc=function(){function t(t,e){for(var n=0;nv||f>m)return{x:v,y:m}}return{x:f,y:f}}};function lc(){var t=document.documentElement;return{x:Math.min(t.clientWidth,window.innerWidth)/2,y:Math.min(t.clientHeight,window.innerHeight)/2}}function pc(t,e,n){["mousedown","mousemove","mouseup","touchstart","touchmove","touchend"].forEach((function(r){Ws(t,r,e[r],n)}))}var fc=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.target=Object.create(uc),this.overlay=Object.create(ic),this.handler=Object.create(nc),this.body=document.body,this.shown=!1,this.lock=!1,this.released=!0,this.lastScrollPosition=null,this.pressTimer=null,this.options=cc({},ec,e),this.overlay.init(this),this.handler.init(this)}return sc(t,[{key:"listen",value:function(t){if("string"==typeof t)for(var e=document.querySelectorAll(t),n=e.length;n--;)this.listen(e[n]);else"IMG"===t.tagName&&(t.style.cursor=Fs,Ws(t,"click",this.handler.click),this.options.preloadImage&&Gs(Js(t)));return this}},{key:"config",value:function(t){return t?(cc(this.options,t),this.overlay.updateStyle(this.options),this):this.options}},{key:"open",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.onOpen;if(!this.shown&&!this.lock){var r="string"==typeof t?document.querySelector(t):t;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),Gs(o,this.options.onImageLoaded))}this.shown=!0,this.lock=!0,this.target.zoomIn(),this.overlay.insert(),this.overlay.fadeIn(),Ws(document,"scroll",this.handler.scroll),Ws(document,"keydown",this.handler.keydown),this.options.closeOnWindowResize&&Ws(window,"resize",this.handler.resizeWindow);var i=function t(){Ws(r,Qs,t,!1),e.lock=!1,e.target.upgradeSource(),e.options.enableGrab&&pc(document,e.handler,!0),n(r)};return Ws(r,Qs,i),this}}}},{key:"close",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.onClose;if(this.shown&&!this.lock){var n=this.target.el;this.options.onBeforeClose(n),this.lock=!0,this.body.style.cursor=Bs,this.overlay.fadeOut(),this.target.zoomOut(),Ws(document,"scroll",this.handler.scroll,!1),Ws(document,"keydown",this.handler.keydown,!1),this.options.closeOnWindowResize&&Ws(window,"resize",this.handler.resizeWindow,!1);var r=function r(){Ws(n,Qs,r,!1),t.shown=!1,t.lock=!1,t.target.downgradeSource(),t.options.enableGrab&&pc(document,t.handler,!1),t.target.restoreCloseStyle(),t.overlay.remove(),e(n)};return Ws(n,Qs,r),this}}},{key:"grab",value:function(t,e){var n=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(t,e,n);var i=function t(){Ws(o,Qs,t,!1),r(o)};return Ws(o,Qs,i),this}}},{key:"move",value:function(t,e){var n=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=Hs,this.target.move(t,e,n);var o=this.target.el,i=function t(){Ws(o,Qs,t,!1),r(o)};return Ws(o,Qs,i),this}}},{key:"release",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.onRelease;if(this.shown&&!this.lock){var n=this.target.el;this.options.onBeforeRelease(n),this.lock=!0,this.body.style.cursor=Bs,this.target.restoreOpenStyle();var r=function r(){Ws(n,Qs,r,!1),t.lock=!1,t.released=!0,e(n)};return Ws(n,Qs,r),this}}}]),t}();const dc=JSON.parse('{"bgColor":"rgba(0,0,0,0.6)"}'),hc=Number("500");class vc{constructor(){this.instance=new fc(dc)}update(t=".theme-vdoing-content img:not(.no-zoom)"){"undefined"!=typeof window&&this.instance.listen(t)}updateDelay(t=".theme-vdoing-content img:not(.no-zoom)",e=hc){setTimeout(()=>this.update(t),e)}}var mc=[gs,ks,js,Ss,Us,{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 t=this.getLayout();return fs("layout",t),Gn.component(t)}},methods:{getLayout(){if(this.$page.path){const t=this.$page.frontmatter.layout;return t&&(this.$vuepress.getLayoutAsyncComponent(t)||this.$vuepress.getVueComponent(t))?t:"Layout"}return"NotFound"}}},yc=n(8),bc=Object(yc.a)(gc,(function(){return(0,this._self._c)(this.layout,{tag:"component"})}),[],!1,null,null,null).exports;!function(t,e,n){switch(e){case"components":t[e]||(t[e]={}),Object.assign(t[e],n);break;case"mixins":t[e]||(t[e]=[]),t[e].push(...n);break;default:throw new Error("Unknown option name.")}}(bc,"mixins",mc);const _c=[{name:"v-7942c6ac",path:"/web/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-7942c6ac").then(n)}},{path:"/web/index.html",redirect:"/web/"},{path:"/00.目录页/01.技术学习.html",redirect:"/web/"},{name:"v-28d949b6",path:"/ui/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-28d949b6").then(n)}},{path:"/ui/index.html",redirect:"/ui/"},{path:"/00.目录页/02.页面.html",redirect:"/ui/"},{name:"v-05fee314",path:"/about/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-05fee314").then(n)}},{path:"/about/index.html",redirect:"/about/"},{path:"/00.目录页/00.about.html",redirect:"/about/"},{name:"v-865cc866",path:"/technology/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-865cc866").then(n)}},{path:"/technology/index.html",redirect:"/technology/"},{path:"/00.目录页/03.技术.html",redirect:"/technology/"},{name:"v-3c5fb6e5",path:"/pages/336431/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-3c5fb6e5").then(n)}},{path:"/pages/336431/index.html",redirect:"/pages/336431/"},{path:"/01.java/00.JVM/00.JVM.html",redirect:"/pages/336431/"},{name:"v-3fafbfca",path:"/pages/4d9eaa/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-3fafbfca").then(n)}},{path:"/pages/4d9eaa/index.html",redirect:"/pages/4d9eaa/"},{path:"/02.技术学习/01.docker/02.原理.html",redirect:"/pages/4d9eaa/"},{name:"v-966ddacc",path:"/pages/479a6c/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-966ddacc").then(n)}},{path:"/pages/479a6c/index.html",redirect:"/pages/479a6c/"},{path:"/02.技术学习/01.docker/01.入门.html",redirect:"/pages/479a6c/"},{name:"v-8f7eecb6",path:"/archives/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-8f7eecb6").then(n)}},{path:"/archives/index.html",redirect:"/archives/"},{path:"/@pages/archivesPage.html",redirect:"/archives/"},{name:"v-cf2f15f6",path:"/categories/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-cf2f15f6").then(n)}},{path:"/categories/index.html",redirect:"/categories/"},{path:"/@pages/categoriesPage.html",redirect:"/categories/"},{name:"v-3b160f25",path:"/tags/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-3b160f25").then(n)}},{path:"/tags/index.html",redirect:"/tags/"},{path:"/@pages/tagsPage.html",redirect:"/tags/"},{name:"v-2ece97be",path:"/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-2ece97be").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-ca4b458e",path:"/more/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-ca4b458e").then(n)}},{path:"/more/index.html",redirect:"/more/"},{path:"/00.目录页/04.更多.html",redirect:"/more/"},{path:"*",component:bc}],xc={title:"",description:"",base:"/",headTags:[["link",{rel:"icon",href:"/img/favicon.ico"}],["meta",{name:"keywords",content:"Java,后端,技术,博客"}],["meta",{name:"theme-color",content:"#11a8cd"}]],pages:[{title:"技术学习",frontmatter:{pageComponent:{name:"Catalogue",data:{path:"02.技术学习",description:"工作中常用的中间件"}},title:"技术学习",date:"2024-04-08T15:26:53.000Z",permalink:"/web/",sidebar:!1,article:!1,comment:!1,editLink:!1,author:{name:"lan-dian",link:"https://github.com/lan-dian"}},regularPath:"/00.%E7%9B%AE%E5%BD%95%E9%A1%B5/01.%E6%8A%80%E6%9C%AF%E5%AD%A6%E4%B9%A0.html",relativePath:"00.目录页/01.技术学习.md",key:"v-7942c6ac",path:"/web/",lastUpdated:"2024/04/08, 07:44:14",lastUpdatedTimestamp:1712562254e3},{title:"页面",frontmatter:{pageComponent:{name:"Catalogue",data:{path:"02.页面",imgUrl:"/img/ui.png",description:"html(5)/css(3),前端页面相关技术"}},title:"页面",date:"2020-03-11T21:50:54.000Z",permalink:"/ui/",sidebar:!1,article:!1,comment:!1,editLink:!1,author:{name:"xugaoyi",link:"https://github.com/xugaoyi"}},regularPath:"/00.%E7%9B%AE%E5%BD%95%E9%A1%B5/02.%E9%A1%B5%E9%9D%A2.html",relativePath:"00.目录页/02.页面.md",key:"v-28d949b6",path:"/ui/",lastUpdated:"2024/04/07, 08:43:59",lastUpdatedTimestamp:1712479439e3},{title:"about",frontmatter:{title:"about",date:"2024-04-08T07:17:59.000Z",permalink:"/about/",categories:["关于"],tags:[null],author:{name:"lan-dian",link:"https://github.com/lan-dian"}},regularPath:"/00.%E7%9B%AE%E5%BD%95%E9%A1%B5/00.about.html",relativePath:"00.目录页/00.about.md",key:"v-05fee314",path:"/about/",headers:[{level:2,title:"Hi there 👋",slug:"hi-there-👋"}],lastUpdated:"2024/04/08, 07:44:14",lastUpdatedTimestamp:1712562254e3},{title:"技术",frontmatter:{pageComponent:{name:"Catalogue",data:{path:"03.技术",imgUrl:"/img/other.png",description:"技术文档、教程、技巧、总结等文章"}},title:"技术",date:"2020-03-11T21:50:55.000Z",permalink:"/technology/",sidebar:!1,article:!1,comment:!1,editLink:!1,author:{name:"xugaoyi",link:"https://github.com/xugaoyi"}},regularPath:"/00.%E7%9B%AE%E5%BD%95%E9%A1%B5/03.%E6%8A%80%E6%9C%AF.html",relativePath:"00.目录页/03.技术.md",key:"v-865cc866",path:"/technology/",lastUpdated:"2024/04/07, 08:43:59",lastUpdatedTimestamp:1712479439e3},{title:"JVM",frontmatter:{title:"JVM",date:"2024-04-08T07:17:12.000Z",permalink:"/pages/336431/",categories:["java","JVM"],tags:[null],author:{name:"lan-dian",link:"https://github.com/lan-dian"}},regularPath:"/01.java/00.JVM/00.JVM.html",relativePath:"01.java/00.JVM/00.JVM.md",key:"v-3c5fb6e5",path:"/pages/336431/",lastUpdated:"2024/04/08, 07:44:14",lastUpdatedTimestamp:1712562254e3},{title:"原理",frontmatter:{title:"原理",date:"2024-04-09T17:24:43.000Z",permalink:"/pages/4d9eaa/",categories:["技术学习","docker"],tags:[null],author:{name:"lan-dian",link:"https://github.com/lan-dian"}},regularPath:"/02.%E6%8A%80%E6%9C%AF%E5%AD%A6%E4%B9%A0/01.docker/02.%E5%8E%9F%E7%90%86.html",relativePath:"02.技术学习/01.docker/02.原理.md",key:"v-3fafbfca",path:"/pages/4d9eaa/",headers:[{level:2,title:"联合文件系统(Union File System)",slug:"联合文件系统-union-file-system"},{level:2,title:"docker run",slug:"docker-run"},{level:2,title:"网络",slug:"网络"}],lastUpdated:"2024/04/09, 09:35:35",lastUpdatedTimestamp:1712655335e3},{title:"docker入门",frontmatter:{title:"docker入门",date:"2024-04-08T07:24:40.000Z",permalink:"/pages/479a6c/",categories:["技术学习","docker"],tags:[null],author:{name:"lan-dian",link:"https://github.com/lan-dian"}},regularPath:"/02.%E6%8A%80%E6%9C%AF%E5%AD%A6%E4%B9%A0/01.docker/01.%E5%85%A5%E9%97%A8.html",relativePath:"02.技术学习/01.docker/01.入门.md",key:"v-966ddacc",path:"/pages/479a6c/",headers:[{level:2,title:"是什么",slug:"是什么"},{level:2,title:"怎么用",slug:"怎么用"},{level:2,title:"概念",slug:"概念"},{level:3,title:"镜像(image)",slug:"镜像-image"},{level:4,title:"分层存储",slug:"分层存储"},{level:3,title:"容器",slug:"容器"},{level:3,title:"Registry",slug:"registry"},{level:2,title:"使用",slug:"使用"},{level:3,title:"基本命令",slug:"基本命令"},{level:3,title:"数据卷(volume)",slug:"数据卷-volume"},{level:3,title:"网络",slug:"网络"},{level:2,title:"DockerFile",slug:"dockerfile"},{level:3,title:"FROM",slug:"from"},{level:3,title:"RUN",slug:"run"},{level:3,title:"COPY",slug:"copy"},{level:3,title:"CMD",slug:"cmd"},{level:3,title:"ENV",slug:"env"},{level:3,title:"AVG",slug:"avg"},{level:3,title:"例子",slug:"例子"}],lastUpdated:"2024/04/09, 09:35:35",lastUpdatedTimestamp:1712655335e3},{title:"归档",frontmatter:{archivesPage:!0,title:"归档",permalink:"/archives/",article:!1},regularPath:"/@pages/archivesPage.html",relativePath:"@pages/archivesPage.md",key:"v-8f7eecb6",path:"/archives/",lastUpdated:"2024/04/07, 08:43:59",lastUpdatedTimestamp:1712479439e3},{title:"分类",frontmatter:{categoriesPage:!0,title:"分类",permalink:"/categories/",article:!1},regularPath:"/@pages/categoriesPage.html",relativePath:"@pages/categoriesPage.md",key:"v-cf2f15f6",path:"/categories/",lastUpdated:"2024/04/07, 08:43:59",lastUpdatedTimestamp:1712479439e3},{title:"标签",frontmatter:{tagsPage:!0,title:"标签",permalink:"/tags/",article:!1},regularPath:"/@pages/tagsPage.html",relativePath:"@pages/tagsPage.md",key:"v-3b160f25",path:"/tags/",lastUpdated:"2024/04/07, 08:43:59",lastUpdatedTimestamp:1712479439e3},{title:"Home",frontmatter:{home:!0,heroImage:"/img/logo.png",heroText:"岚殿的博客",tagline:"Java后端技术博客,分享一些有深度的内容",actionText:"快速开始 →",actionLink:"/pages/336431/",bannerBg:"none",postList:"none",hideRightBar:!0},regularPath:"/",relativePath:"index.md",key:"v-2ece97be",path:"/",lastUpdated:"2024/04/08, 08:30:08",lastUpdatedTimestamp:1712565008e3},{title:"更多",frontmatter:{pageComponent:{name:"Catalogue",data:{path:"04.更多",imgUrl:"/img/more.png",description:"学习、面试、在线工具等更多文章和页面"}},title:"更多",date:"2020-03-11T21:50:56.000Z",permalink:"/more/",sidebar:!1,article:!1,comment:!1,editLink:!1,author:{name:"xugaoyi",link:"https://github.com/xugaoyi"}},regularPath:"/00.%E7%9B%AE%E5%BD%95%E9%A1%B5/04.%E6%9B%B4%E5%A4%9A.html",relativePath:"00.目录页/04.更多.md",key:"v-ca4b458e",path:"/more/",lastUpdated:"2024/04/07, 08:43:59",lastUpdatedTimestamp:1712479439e3}],themeConfig:{nav:[{text:"首页",link:"/"},{text:"Java",link:"/pages/336431/"},{text:"技术学习",link:"/web/"},{text:"关于",link:"/about/"},{text:"索引",link:"/archives/",items:[{text:"分类",link:"/categories/"},{text:"标签",link:"/tags/"},{text:"归档",link:"/archives/"}]}],sidebarDepth:2,logo:"/img/logo.png",repo:"lan-dian",searchMaxSuggestions:10,lastUpdated:"上次更新",docsDir:"docs",editLinks:!0,editLinkText:"编辑",sidebar:{"/00.目录页/":[["00.about.md","about","/about/"],["01.技术学习.md","技术学习","/web/"],["02.页面.md","页面","/ui/"],["03.技术.md","技术","/technology/"],["04.更多.md","更多","/more/"]],catalogue:{"技术学习":"/web/","页面":"/ui/","技术":"/technology/","更多":"/more/"},"/01.java/":[{title:"JVM",collapsable:!0,children:[["00.JVM/00.JVM.md","JVM","/pages/336431/"]]}],"/02.技术学习/":[{title:"docker",collapsable:!0,children:[["01.docker/01.入门.md","docker入门","/pages/479a6c/"],["01.docker/02.原理.md","原理","/pages/4d9eaa/"]]}]},author:{name:"lan-dian",link:"https://github.com/lan-dian"},blogger:{avatar:"/img/logo.png",name:"岚殿"},social:{icons:[{iconClass:"icon-github",title:"GitHub",link:"https://github.com/lan-dian"}]},extendFrontmatter:{author:{name:"lan-dian",link:"https://github.com/lan-dian"}},htmlModules:{}},locales:{"/":{lang:"zh-CN",title:"岚殿的技术博客",description:"Java后端技术博客",path:"/"}}};var wc=n(93),kc=n(94),Oc=n(11);var Cc={computed:{$filterPosts(){return this.$site.pages.filter(t=>{const{frontmatter:{pageComponent:e,article:n,home:r}}=t;return!(e||!1===n||!0===r)})},$sortPosts(){return(t=this.$filterPosts).sort((t,e)=>{const n=t.frontmatter.sticky,r=e.frontmatter.sticky;return n&&r?n==r?Object(Oc.a)(t,e):n-r:n&&!r?-1:!n&&r?1:Object(Oc.a)(t,e)}),t;var t},$sortPostsByDate(){return(t=this.$filterPosts).sort((t,e)=>Object(Oc.a)(t,e)),t;var t},$groupPosts(){return function(t){const e={},n={};for(let r=0,o=t.length;r{n&&(e[n]||(e[n]=[]),e[n].push(t[r]))}),"array"===Object(Oc.n)(i)&&i.forEach(e=>{e&&(n[e]||(n[e]=[]),n[e].push(t[r]))})}return{categories:e,tags:n}}(this.$sortPosts)},$categoriesAndTags(){return function(t){const e=[],n=[];for(let n in t.categories)e.push({key:n,length:t.categories[n].length});for(let e in t.tags)n.push({key:e,length:t.tags[e].length});return{categories:e,tags:n}}(this.$groupPosts)}}};Gn.component(wc.default),Gn.component(kc.default);function jc(t){return t.toString().padStart(2,"0")}n(243);Gn.component("Badge",()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,331))),Gn.component("CodeBlock",()=>Promise.resolve().then(n.bind(null,93))),Gn.component("CodeGroup",()=>Promise.resolve().then(n.bind(null,94)));n(244);var $c=[({Vue:t,options:e,router:n,siteData:r})=>{},({Vue:t,options:e,router:n,siteData:r})=>{r.pages.map(t=>{const{frontmatter:{date:e,author:n}}=t;"string"==typeof e&&"Z"===e.charAt(e.length-1)&&(t.frontmatter.date=function(t){t instanceof Date||(t=new Date(t));return`${t.getUTCFullYear()}-${jc(t.getUTCMonth()+1)}-${jc(t.getUTCDate())} ${jc(t.getUTCHours())}:${jc(t.getUTCMinutes())}:${jc(t.getUTCSeconds())}`}(e)),n?t.author=n:r.themeConfig.author&&(t.author=r.themeConfig.author)}),t.mixin(Cc)},{},({Vue:t})=>{t.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{},({router:t})=>{"undefined"!=typeof window&&function(){var t=document.createElement("script"),e=window.location.protocol.split(":")[0];t.src="https"===e?"https://zz.bdstatic.com/linksubmit/push.js":"http://push.zhanzhang.baidu.com/push.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n)}()},({router:t})=>{"undefined"!=typeof window&&(window._hmt=window._hmt||[],function(){var t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?503f098e7e5b3a5b5d8c5fc2938af002";var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(t,e)}(),t.afterEach((function(t){_hmt.push(["_trackPageview",t.fullPath])})))}],Sc=[];class Ec extends class{constructor(){this.store=new Gn({data:{state:{}}})}$get(t){return this.store.state[t]}$set(t,e){Gn.set(this.store.state,t,e)}$emit(...t){this.store.$emit(...t)}$on(...t){this.store.$on(...t)}}{}Object.assign(Ec.prototype,{getPageAsyncComponent:ss,getLayoutAsyncComponent:cs,getAsyncComponent:us,getVueComponent:ls});var Tc={install(t){const e=new Ec;t.$vuepress=e,t.prototype.$vuepress=e}};function Ac(t,e){const n=e.toLowerCase();return t.options.routes.some(t=>t.path.toLowerCase()===n)}var Pc={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(t){const e=this.pageKey||this.$parent.$page.key;return fs("pageKey",e),Gn.component(e)||Gn.component(e,ss(e)),Gn.component(e)?t(e):t("")}},Lc={functional:!0,props:{slotKey:String,required:!0},render:(t,{props:e,slots:n})=>t("div",{class:["content__"+e.slotKey]},n()[e.slotKey])},Mc={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},Rc=(n(245),n(246),Object(yc.a)(Mc,(function(){var t=this._self._c;return t("span",[t("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"}},[t("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(" "),t("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(" "),t("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports),Ic={functional:!0,render(t,{parent:e,children:n}){if(e._isMounted)return n;e.$once("hook:mounted",()=>{e.$forceUpdate()})}};Gn.config.productionTip=!1,Gn.use(Ha),Gn.use(Tc),Gn.mixin(function(t,e,n=Gn){!function(t){t.locales&&Object.keys(t.locales).forEach(e=>{t.locales[e].path=e});Object.freeze(t)}(e),n.$vuepress.$set("siteData",e);const r=new(t(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((t,e)=>(e.startsWith("$")&&(t[e]=o[e].get),t),i),{computed:i}}(t=>class{setPage(t){this.__page=t}get $site(){return t}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:t={}}=this.$site;let e,n;for(const r in t)"/"===r?n=t[r]:0===this.$page.path.indexOf(r)&&(e=t[r]);return e||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:t}=this.$page.frontmatter;return"string"==typeof t&&t}get $title(){const t=this.$page,{metaTitle:e}=this.$page.frontmatter;if("string"==typeof e)return e;const n=this.$siteTitle,r=t.frontmatter.home?null:t.frontmatter.title||t.title;return n?r?r+" | "+n:n:r||"VuePress"}get $description(){const t=function(t){if(t){const e=t.filter(t=>"description"===t.name)[0];if(e)return e.content}}(this.$page.frontmatter.meta);return t||(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(t,e){for(let n=0;nn||(t.hash?!Gn.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(t.hash)}:{x:0,y:0})});!function(t){t.beforeEach((e,n,r)=>{if(Ac(t,e.path))r();else if(/(\/|\.html)$/.test(e.path))if(/\/$/.test(e.path)){const n=e.path.replace(/\/$/,"")+".html";Ac(t,n)?r(n):r()}else r();else{const n=e.path+"/",o=e.path+".html";Ac(t,o)?r(o):Ac(t,n)?r(n):r()}})}(n);const r={};try{await Promise.all($c.filter(t=>"function"==typeof t).map(e=>e({Vue:Gn,options:r,router:n,siteData:xc,isServer:t})))}catch(t){console.error(t)}return{app:new Gn(Object.assign(r,{router:n,render:t=>t("div",{attrs:{id:"app"}},[t("RouterView",{ref:"layout"}),t("div",{class:"global-ui"},Sc.map(e=>t(e)))])})),router:n}}(!1).then(({app:t,router:e})=>{e.onReady(()=>{t.$mount("#app")})})}]); \ No newline at end of file +var r=Object.freeze({}),o=Array.isArray;function i(t){return null==t}function a(t){return null!=t}function s(t){return!0===t}function c(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function u(t){return"function"==typeof t}function l(t){return null!==t&&"object"==typeof t}var p=Object.prototype.toString;function f(t){return"[object Object]"===p.call(t)}function d(t){return"[object RegExp]"===p.call(t)}function h(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function v(t){return a(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function m(t){return null==t?"":Array.isArray(t)||f(t)&&t.toString===p?JSON.stringify(t,g,2):String(t)}function g(t,e){return e&&e.__v_isRef?e.value:e}function y(t){var e=parseFloat(t);return isNaN(e)?t:e}function b(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o-1)return t.splice(r,1)}}var w=Object.prototype.hasOwnProperty;function k(t,e){return w.call(t,e)}function O(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var C=/-(\w)/g,j=O((function(t){return t.replace(C,(function(t,e){return e?e.toUpperCase():""}))})),$=O((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),E=/\B([A-Z])/g,S=O((function(t){return t.replace(E,"-$1").toLowerCase()}));var T=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function A(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function P(t,e){for(var n in e)t[n]=e[n];return t}function L(t){for(var e={},n=0;n0,Q=X&&X.indexOf("edge/")>0;X&&X.indexOf("android");var tt=X&&/iphone|ipad|ipod|ios/.test(X);X&&/chrome\/\d+/.test(X),X&&/phantomjs/.test(X);var et,nt=X&&X.match(/firefox\/(\d+)/),rt={}.watch,ot=!1;if(K)try{var it={};Object.defineProperty(it,"passive",{get:function(){ot=!0}}),window.addEventListener("test-passive",null,it)}catch(t){}var at=function(){return void 0===et&&(et=!K&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),et},st=K&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ct(t){return"function"==typeof t&&/native code/.test(t.toString())}var ut,lt="undefined"!=typeof Symbol&&ct(Symbol)&&"undefined"!=typeof Reflect&&ct(Reflect.ownKeys);ut="undefined"!=typeof Set&&ct(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var pt=null;function ft(t){void 0===t&&(t=null),t||pt&&pt._scope.off(),pt=t,t&&t._scope.on()}var dt=function(){function t(t,e,n,r,o,i,a,s){this.tag=t,this.data=e,this.children=n,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=e&&e.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(t.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),t}(),ht=function(t){void 0===t&&(t="");var e=new dt;return e.text=t,e.isComment=!0,e};function vt(t){return new dt(void 0,void 0,void 0,String(t))}function mt(t){var e=new dt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}"function"==typeof SuppressedError&&SuppressedError;var gt=0,yt=[],bt=function(){function t(){this._pending=!1,this.id=gt++,this.subs=[]}return t.prototype.addSub=function(t){this.subs.push(t)},t.prototype.removeSub=function(t){this.subs[this.subs.indexOf(t)]=null,this._pending||(this._pending=!0,yt.push(this))},t.prototype.depend=function(e){t.target&&t.target.addDep(this)},t.prototype.notify=function(t){var e=this.subs.filter((function(t){return t}));for(var n=0,r=e.length;n0&&(Xt((u=t(u,"".concat(n||"","_").concat(r)))[0])&&Xt(p)&&(f[l]=vt(p.text+u[0].text),u.shift()),f.push.apply(f,u)):c(u)?Xt(p)?f[l]=vt(p.text+u):""!==u&&f.push(vt(u)):Xt(u)&&Xt(p)?f[l]=vt(p.text+u.text):(s(e._isVList)&&a(u.tag)&&i(u.key)&&a(n)&&(u.key="__vlist".concat(n,"_").concat(r,"__")),f.push(u)));return f}(t):void 0}function Xt(t){return a(t)&&a(t.text)&&!1===t.isComment}function Zt(t,e){var n,r,i,s,c=null;if(o(t)||"string"==typeof t)for(c=new Array(t.length),n=0,r=t.length;n0,s=e?!!e.$stable:!a,c=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(s&&o&&o!==r&&c===o.$key&&!a&&!o.$hasNormal)return o;for(var u in i={},e)e[u]&&"$"!==u[0]&&(i[u]=me(t,n,u,e[u]))}else i={};for(var l in n)l in i||(i[l]=ge(n,l));return e&&Object.isExtensible(e)&&(e._normalized=i),W(i,"$stable",s),W(i,"$key",c),W(i,"$hasNormal",a),i}function me(t,e,n,r){var i=function(){var e=pt;ft(t);var n=arguments.length?r.apply(null,arguments):r({}),i=(n=n&&"object"==typeof n&&!o(n)?[n]:Kt(n))&&n[0];return ft(e),n&&(!i||1===n.length&&i.isComment&&!he(i))?void 0:n};return r.proxy&&Object.defineProperty(e,n,{get:i,enumerable:!0,configurable:!0}),i}function ge(t,e){return function(){return t[e]}}function ye(t){return{get attrs(){if(!t._attrsProxy){var e=t._attrsProxy={};W(e,"_v_attr_proxy",!0),be(e,t.$attrs,r,t,"$attrs")}return t._attrsProxy},get listeners(){t._listenersProxy||be(t._listenersProxy={},t.$listeners,r,t,"$listeners");return t._listenersProxy},get slots(){return function(t){t._slotsProxy||xe(t._slotsProxy={},t.$scopedSlots);return t._slotsProxy}(t)},emit:T(t.$emit,t),expose:function(e){e&&Object.keys(e).forEach((function(n){return Ut(t,e,n)}))}}}function be(t,e,n,r,o){var i=!1;for(var a in e)a in t?e[a]!==n[a]&&(i=!0):(i=!0,_e(t,a,r,o));for(var a in t)a in e||(i=!0,delete t[a]);return i}function _e(t,e,n,r){Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){return n[r][e]}})}function xe(t,e){for(var n in e)t[n]=e[n];for(var n in t)n in e||delete t[n]}var we=null;function ke(t,e){return(t.__esModule||lt&&"Module"===t[Symbol.toStringTag])&&(t=t.default),l(t)?e.extend(t):t}function Oe(t){if(o(t))for(var e=0;edocument.createEvent("Event").timeStamp&&(un=function(){return ln.now()})}var pn=function(t,e){if(t.post){if(!e.post)return 1}else if(e.post)return-1;return t.id-e.id};function fn(){var t,e;for(cn=un(),an=!0,en.sort(pn),sn=0;snsn&&en[n].id>t.id;)n--;en.splice(n+1,0,t)}else en.push(t);on||(on=!0,Ne(fn))}}function hn(t,e){if(t){for(var n=Object.create(null),r=lt?Reflect.ownKeys(t):Object.keys(t),o=0;o-1)if(i&&!k(o,"default"))a=!1;else if(""===a||a===S(t)){var c=In(String,o.type);(c<0||s-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!d(t)&&t.test(e)}function Zn(t,e){var n=t.cache,r=t.keys,o=t._vnode,i=t.$vnode;for(var a in n){var s=n[a];if(s){var c=s.name;c&&!e(c)&&Yn(n,a,r,o)}}i.componentOptions.children=void 0}function Yn(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,x(n,e)}!function(t){t.prototype._init=function(t){var e=this;e._uid=Hn++,e._isVue=!0,e.__v_skip=!0,e._scope=new Ft(!0),e._scope.parent=void 0,e._scope._vm=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Tn(Wn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._provided=n?n._provided:Object.create(null),t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Ke(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=fe(e._renderChildren,o),t.$scopedSlots=n?ve(t.$parent,n.data.scopedSlots,t.$slots):r,t._c=function(e,n,r,o){return Ce(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return Ce(t,e,n,r,o,!0)};var i=n&&n.data;Pt(t,"$attrs",i&&i.attrs||r,null,!0),Pt(t,"$listeners",e._parentListeners||r,null,!0)}(e),tn(e,"beforeCreate",void 0,!1),function(t){var e=hn(t.$options.inject,t);e&&(Et(!1),Object.keys(e).forEach((function(n){Pt(t,n,e[n])})),Et(!0))}(e),Nn(e),function(t){var e=t.$options.provide;if(e){var n=u(e)?e.call(t):e;if(!l(n))return;for(var r=Vt(t),o=lt?Reflect.ownKeys(n):Object.keys(n),i=0;i1?A(n):n;for(var r=A(arguments,1),o='event handler for "'.concat(t,'"'),i=0,a=n.length;iparseInt(this.max)&&Yn(t,e[0],e,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Yn(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",(function(e){Zn(t,(function(t){return Xn(e,t)}))})),this.$watch("exclude",(function(e){Zn(t,(function(t){return!Xn(e,t)}))}))},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=Oe(t),n=e&&e.componentOptions;if(n){var r=Kn(n),o=this.include,i=this.exclude;if(o&&(!r||!Xn(o,r))||i&&r&&Xn(i,r))return e;var a=this.cache,s=this.keys,c=null==e.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):e.key;a[c]?(e.componentInstance=a[c].componentInstance,x(s,c),s.push(c)):(this.vnodeToCache=e,this.keyToCache=c),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return V}};Object.defineProperty(t,"config",e),t.util={warn:kn,extend:P,mergeOptions:Tn,defineReactive:Pt},t.set=Lt,t.delete=Mt,t.nextTick=Ne,t.observable=function(t){return At(t),t},t.options=Object.create(null),B.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,P(t.options.components,tr),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=A(arguments,1);return n.unshift(this),u(t.install)?t.install.apply(t,n):u(t)&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Tn(this.options,t),this}}(t),Jn(t),function(t){B.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&f(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&u(n)&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}(t)}(Gn),Object.defineProperty(Gn.prototype,"$isServer",{get:at}),Object.defineProperty(Gn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Gn,"FunctionalRenderContext",{value:vn}),Gn.version="2.7.16";var er=b("style,class"),nr=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(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},cr=function(t){return sr(t)?t.slice(6,t.length):""},ur=function(t){return null==t||!1===t};function lr(t){for(var e=t.data,n=t,r=t;a(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=pr(r.data,e));for(;a(n=n.parent);)n&&n.data&&(e=pr(e,n.data));return function(t,e){if(a(t)||a(e))return fr(t,dr(e));return""}(e.staticClass,e.class)}function pr(t,e){return{staticClass:fr(t.staticClass,e.staticClass),class:a(t.class)?[t.class,e.class]:e.class}}function fr(t,e){return t?e?t+" "+e:t:e||""}function dr(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r-1?Dr(t,e,n):ir(e)?ur(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):rr(e)?t.setAttribute(e,function(t,e){return ur(e)||"false"===e?"false":"contenteditable"===t&&or(e)?e:"true"}(e,n)):sr(e)?ur(n)?t.removeAttributeNS(ar,cr(e)):t.setAttributeNS(ar,e,n):Dr(t,e,n)}function Dr(t,e,n){if(ur(n))t.removeAttribute(e);else{if(Z&&!Y&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var zr={create:Rr,update:Rr};function Nr(t,e){var n=e.elm,r=e.data,o=t.data;if(!(i(r.staticClass)&&i(r.class)&&(i(o)||i(o.staticClass)&&i(o.class)))){var s=lr(e),c=n._transitionClasses;a(c)&&(s=fr(s,dr(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Ur,Br={create:Nr,update:Nr};function Fr(t,e,n){var r=Ur;return function o(){var i=e.apply(null,arguments);null!==i&&Hr(t,o,n,r)}}var Vr=Ae&&!(nt&&Number(nt[1])<=53);function qr(t,e,n,r){if(Vr){var o=cn,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}Ur.addEventListener(t,e,ot?{capture:n,passive:r}:n)}function Hr(t,e,n,r){(r||Ur).removeEventListener(t,e._wrapper||e,n)}function Wr(t,e){if(!i(t.data.on)||!i(e.data.on)){var n=e.data.on||{},r=t.data.on||{};Ur=e.elm||t.elm,function(t){if(a(t.__r)){var e=Z?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}a(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(n),Wt(n,r,qr,Hr,Fr,e.context),Ur=void 0}}var Gr,Jr={create:Wr,update:Wr,destroy:function(t){return Wr(t,Or)}};function Kr(t,e){if(!i(t.data.domProps)||!i(e.data.domProps)){var n,r,o=e.elm,c=t.data.domProps||{},u=e.data.domProps||{};for(n in(a(u.__ob__)||s(u._v_attr_proxy))&&(u=e.data.domProps=P({},u)),c)n in u||(o[n]="");for(n in u){if(r=u[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===c[n])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===n&&"PROGRESS"!==o.tagName){o._value=r;var l=i(r)?"":String(r);Xr(o,l)&&(o.value=l)}else if("innerHTML"===n&&mr(o.tagName)&&i(o.innerHTML)){(Gr=Gr||document.createElement("div")).innerHTML="".concat(r,"");for(var p=Gr.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;p.firstChild;)o.appendChild(p.firstChild)}else if(r!==c[n])try{o[n]=r}catch(t){}}}}function Xr(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(a(r)){if(r.number)return y(n)!==y(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Zr={create:Kr,update:Kr},Yr=O((function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach((function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}})),e}));function Qr(t){var e=to(t.style);return t.staticStyle?P(t.staticStyle,e):e}function to(t){return Array.isArray(t)?L(t):"string"==typeof t?Yr(t):t}var eo,no=/^--/,ro=/\s*!important$/,oo=function(t,e,n){if(no.test(e))t.style.setProperty(e,n);else if(ro.test(n))t.style.setProperty(S(e),n.replace(ro,""),"important");else{var r=ao(e);if(Array.isArray(n))for(var o=0,i=n.length;o-1?e.split(uo).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" ".concat(t.getAttribute("class")||""," ");n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function po(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(uo).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" ".concat(t.getAttribute("class")||""," "),r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function fo(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&P(e,ho(t.name||"v")),P(e,t),e}return"string"==typeof t?ho(t):void 0}}var ho=O((function(t){return{enterClass:"".concat(t,"-enter"),enterToClass:"".concat(t,"-enter-to"),enterActiveClass:"".concat(t,"-enter-active"),leaveClass:"".concat(t,"-leave"),leaveToClass:"".concat(t,"-leave-to"),leaveActiveClass:"".concat(t,"-leave-active")}})),vo=K&&!Y,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 _o=K?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function xo(t){_o((function(){_o(t)}))}function wo(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),lo(t,e))}function ko(t,e){t._transitionClasses&&x(t._transitionClasses,e),po(t,e)}function Oo(t,e,n){var r=jo(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s="transition"===o?go:bo,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout((function(){c0&&(n="transition",l=a,p=i.length):"animation"===e?u>0&&(n="animation",l=u,p=c.length):p=(n=(l=Math.max(a,u))>0?a>u?"transition":"animation":null)?"transition"===n?i.length:c.length:0,{type:n,timeout:l,propCount:p,hasTransform:"transition"===n&&Co.test(r[mo+"Property"])}}function $o(t,e){for(;t.length1}function Lo(t,e){!0!==e.data.show&&So(e)}var Mo=function(t){var e,n,r={},u=t.modules,l=t.nodeOps;for(e=0;eh?_(t,i(n[g+1])?null:n[g+1].elm,n,d,g,r):d>g&&w(e,p,h)}(p,v,g,n,u):a(g)?(a(t.text)&&l.setTextContent(p,""),_(p,null,g,0,g.length-1,n)):a(v)?w(v,0,v.length-1):a(t.text)&&l.setTextContent(p,""):t.text!==e.text&&l.setTextContent(p,e.text),a(h)&&a(d=h.hook)&&a(d=d.postpatch)&&d(t,e)}}}function j(t,e,n){if(s(n)&&a(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,a.selected!==i&&(a.selected=i);else if(D(No(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function zo(t,e){return e.every((function(e){return!D(e,t)}))}function No(t){return"_value"in t?t._value:t.value}function Uo(t){t.target.composing=!0}function Bo(t){t.target.composing&&(t.target.composing=!1,Fo(t.target,"input"))}function Fo(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Vo(t){return!t.componentInstance||t.data&&t.data.transition?t:Vo(t.componentInstance._vnode)}var qo={model:Ro,show:{bind:function(t,e,n){var r=e.value,o=(n=Vo(n)).data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,So(n,(function(){t.style.display=i}))):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=Vo(n)).data&&n.data.transition?(n.data.show=!0,r?So(n,(function(){t.style.display=t.__vOriginalDisplay})):To(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},Ho={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 Wo(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Wo(Oe(e.children)):t}function Go(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var r in o)e[j(r)]=o[r];return e}function Jo(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Ko=function(t){return t.tag||he(t)},Xo=function(t){return"show"===t.name},Zo={name:"transition",props:Ho,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Ko)).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var i=Wo(o);if(!i)return o;if(this._leaving)return Jo(t,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=Go(this),u=this._vnode,l=Wo(u);if(i.data.directives&&i.data.directives.some(Xo)&&(i.data.show=!0),l&&l.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(i,l)&&!he(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var p=l.data.transition=P({},s);if("out-in"===r)return this._leaving=!0,Gt(p,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),Jo(t,o);if("in-out"===r){if(he(i))return u;var f,d=function(){f()};Gt(s,"afterEnter",d),Gt(s,"enterCancelled",d),Gt(p,"delayLeave",(function(t){f=t}))}}return o}}},Yo=P({tag:String,moveClass:String},Ho);function Qo(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function ti(t){t.data.newPos=t.elm.getBoundingClientRect()}function ei(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate(".concat(r,"px,").concat(o,"px)"),i.transitionDuration="0s"}}delete Yo.mode;var ni={Transition:Zo,TransitionGroup:{props:Yo,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Ze(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=Go(this),s=0;s-1?yr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:yr[t]=/HTMLUnknownElement/.test(e.toString())},P(Gn.options.directives,qo),P(Gn.options.components,ni),Gn.prototype.__patch__=K?Mo:M,Gn.prototype.$mount=function(t,e){return function(t,e,n){var r;t.$el=e,t.$options.render||(t.$options.render=ht),tn(t,"beforeMount"),r=function(){t._update(t._render(),n)},new He(t,r,M,{before:function(){t._isMounted&&!t._isDestroyed&&tn(t,"beforeUpdate")}},!0),n=!1;var o=t._preWatchers;if(o)for(var i=0;i=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),u=e&&e.path||"/",l=c.path?ki(c.path,u,n||o.append):u,p=function(t,e,n){void 0===e&&(e={});var r,o=n||li;try{r=o(t||"")}catch(t){r={}}for(var i in e){var a=e[i];r[i]=Array.isArray(a)?a.map(ui):ui(a)}return r}(c.query,o.query,r&&r.options.parseQuery),f=o.hash||c.hash;return f&&"#"!==f.charAt(0)&&(f="#"+f),{_normalized:!0,path:l,query:p,hash:f}}var qi,Hi=function(){},Wi={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(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),i=o.location,a=o.route,s=o.href,c={},u=n.options.linkActiveClass,l=n.options.linkExactActiveClass,p=null==u?"router-link-active":u,f=null==l?"router-link-exact-active":l,d=null==this.activeClass?p:this.activeClass,h=null==this.exactActiveClass?f:this.exactActiveClass,v=a.redirectedFrom?di(null,Vi(a.redirectedFrom),null,n):a;c[h]=yi(r,v,this.exactPath),c[d]=this.exact||this.exactPath?c[h]:function(t,e){return 0===t.path.replace(fi,"/").indexOf(e.path.replace(fi,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,v);var m=c[h]?this.ariaCurrentValue:null,g=function(t){Gi(t)&&(e.replace?n.replace(i,Hi):n.push(i,Hi))},y={click:Gi};Array.isArray(this.event)?this.event.forEach((function(t){y[t]=g})):y[this.event]=g;var b={class:c},_=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:g,isActive:c[d],isExactActive:c[h]});if(_){if(1===_.length)return _[0];if(_.length>1||!_.length)return 0===_.length?t():t("span",{},_)}if("a"===this.tag)b.on=y,b.attrs={href:s,"aria-current":m};else{var x=function t(e){var n;if(e)for(var r=0;r-1&&(s.params[f]=n.params[f]);return s.path=Fi(l.path,s.params),c(l,s,a)}if(s.path){s.params={};for(var d=0;d-1}function Oa(t,e){return ka(t)&&t._isRouter&&(null==e||t.type===e)}function Ca(t,e,n){var r=function(o){o>=t.length?n():t[o]?e(t[o],(function(){r(o+1)})):r(o+1)};r(0)}function ja(t){return function(e,n,r){var o=!1,i=0,a=null;$a(t,(function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){o=!0,i++;var c,u=Ta((function(e){var o;((o=e).__esModule||Sa&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:qi.extend(e),n.components[s]=e,--i<=0&&r()})),l=Ta((function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=ka(t)?t:new Error(e),r(a))}));try{c=t(u,l)}catch(t){l(t)}if(c)if("function"==typeof c.then)c.then(u,l);else{var p=c.component;p&&"function"==typeof p.then&&p.then(u,l)}}})),o||r()}}function $a(t,e){return Ea(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function Ea(t){return Array.prototype.concat.apply([],t)}var Sa="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Ta(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var Aa=function(t,e){this.router=t,this.base=function(t){if(!t)if(Ji){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=vi,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Pa(t,e,n,r){var o=$a(t,(function(t,r,o,i){var a=function(t,e){"function"!=typeof t&&(t=qi.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map((function(t){return n(t,r,o,i)})):n(a,r,o,i)}));return Ea(r?o.reverse():o)}function La(t,e){if(e)return function(){return t.apply(e,arguments)}}Aa.prototype.listen=function(t){this.cb=t},Aa.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},Aa.prototype.onError=function(t){this.errorCbs.push(t)},Aa.prototype.transitionTo=function(t,e,n){var r,o=this;try{r=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach((function(e){e(t)})),t}var i=this.current;this.confirmTransition(r,(function(){o.updateRoute(r),e&&e(r),o.ensureURL(),o.router.afterHooks.forEach((function(t){t&&t(r,i)})),o.ready||(o.ready=!0,o.readyCbs.forEach((function(t){t(r)})))}),(function(t){n&&n(t),t&&!o.ready&&(Oa(t,ya.redirected)&&i===vi||(o.ready=!0,o.readyErrorCbs.forEach((function(e){e(t)}))))}))},Aa.prototype.confirmTransition=function(t,e,n){var r=this,o=this.current;this.pending=t;var i,a,s=function(t){!Oa(t)&&ka(t)&&(r.errorCbs.length?r.errorCbs.forEach((function(e){e(t)})):console.error(t)),n&&n(t)},c=t.matched.length-1,u=o.matched.length-1;if(yi(t,o)&&c===u&&t.matched[c]===o.matched[u])return this.ensureURL(),t.hash&&aa(this.router,o,t,!1),s(((a=xa(i=o,t,ya.duplicated,'Avoided redundant navigation to current location: "'+i.fullPath+'".')).name="NavigationDuplicated",a));var l=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n0)){var e=this.router,n=e.options.scrollBehavior,r=va&&n;r&&this.listeners.push(ia());var o=function(){var n=t.current,o=Ra(t.base);t.current===vi&&o===t._startLocation||t.transitionTo(o,(function(t){r&&aa(e,t,n,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){ma(Oi(r.base+t.fullPath)),aa(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){ga(Oi(r.base+t.fullPath)),aa(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(Ra(this.base)!==this.current.fullPath){var e=Oi(this.base+this.current.fullPath);t?ma(e):ga(e)}},e.prototype.getCurrentLocation=function(){return Ra(this.base)},e}(Aa);function Ra(t){var e=window.location.pathname,n=e.toLowerCase(),r=t.toLowerCase();return!t||n!==r&&0!==n.indexOf(Oi(r+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Ia=function(t){function e(e,n,r){t.call(this,e,n),r&&function(t){var e=Ra(t);if(!/^\/#/.test(e))return window.location.replace(Oi(t+"/#"+e)),!0}(this.base)||Da()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router.options.scrollBehavior,n=va&&e;n&&this.listeners.push(ia());var r=function(){var e=t.current;Da()&&t.transitionTo(za(),(function(r){n&&aa(t.router,r,e,!0),va||Ba(r.fullPath)}))},o=va?"popstate":"hashchange";window.addEventListener(o,r),this.listeners.push((function(){window.removeEventListener(o,r)}))}},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Ua(t.fullPath),aa(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Ba(t.fullPath),aa(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;za()!==e&&(t?Ua(e):Ba(e))},e.prototype.getCurrentLocation=function(){return za()},e}(Aa);function Da(){var t=za();return"/"===t.charAt(0)||(Ba("/"+t),!1)}function za(){var t=window.location.href,e=t.indexOf("#");return e<0?"":t=t.slice(e+1)}function Na(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function Ua(t){va?ma(Na(t)):window.location.hash=t}function Ba(t){va?ga(Na(t)):window.location.replace(Na(t))}var Fa=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var t=e.current;e.index=n,e.updateRoute(r),e.router.afterHooks.forEach((function(e){e&&e(r,t)}))}),(function(t){Oa(t,ya.duplicated)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(Aa),Va=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Zi(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!va&&!1!==t.fallback,this.fallback&&(e="hash"),Ji||(e="abstract"),this.mode=e,e){case"history":this.history=new Ma(this,t.base);break;case"hash":this.history=new Ia(this,t.base,this.fallback);break;case"abstract":this.history=new Fa(this,t.base);break;default:0}},qa={currentRoute:{configurable:!0}};Va.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},qa.currentRoute.get=function(){return this.history&&this.history.current},Va.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var n=this.history;if(n instanceof Ma||n instanceof Ia){var r=function(t){n.setupListeners(),function(t){var r=n.current,o=e.options.scrollBehavior;va&&o&&"fullPath"in t&&aa(e,t,r,!1)}(t)};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},Va.prototype.beforeEach=function(t){return Wa(this.beforeHooks,t)},Va.prototype.beforeResolve=function(t){return Wa(this.resolveHooks,t)},Va.prototype.afterEach=function(t){return Wa(this.afterHooks,t)},Va.prototype.onReady=function(t,e){this.history.onReady(t,e)},Va.prototype.onError=function(t){this.history.onError(t)},Va.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.push(t,e,n)}));this.history.push(t,e,n)},Va.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.replace(t,e,n)}));this.history.replace(t,e,n)},Va.prototype.go=function(t){this.history.go(t)},Va.prototype.back=function(){this.go(-1)},Va.prototype.forward=function(){this.go(1)},Va.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},Va.prototype.resolve=function(t,e,n){var r=Vi(t,e=e||this.history.current,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?Oi(t+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},Va.prototype.getRoutes=function(){return this.matcher.getRoutes()},Va.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==vi&&this.history.transitionTo(this.history.getCurrentLocation())},Va.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==vi&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Va.prototype,qa);var Ha=Va;function Wa(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}Va.install=function t(e){if(!t.installed||qi!==e){t.installed=!0,qi=e;var n=function(t){return void 0!==t},r=function(t,e){var r=t.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.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(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",xi),e.component("RouterLink",Wi);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},Va.version="3.6.5",Va.isNavigationFailure=Oa,Va.NavigationFailureType=ya,Va.START_LOCATION=vi,Ji&&window.Vue&&window.Vue.use(Va);n(97);n(126),n(16);var Ga={NotFound:()=>Promise.all([n.e(0),n.e(4)]).then(n.bind(null,318)),Layout:()=>Promise.all([n.e(0),n.e(2)]).then(n.bind(null,317))},Ja={"v-05fee314":()=>n.e(5).then(n.bind(null,319)),"v-28d949b6":()=>n.e(7).then(n.bind(null,320)),"v-865cc866":()=>n.e(8).then(n.bind(null,321)),"v-ca4b458e":()=>n.e(9).then(n.bind(null,322)),"v-7942c6ac":()=>n.e(6).then(n.bind(null,323)),"v-966ddacc":()=>n.e(11).then(n.bind(null,324)),"v-3c5fb6e5":()=>n.e(10).then(n.bind(null,325)),"v-3fafbfca":()=>n.e(12).then(n.bind(null,326)),"v-1d01a3c6":()=>n.e(13).then(n.bind(null,327)),"v-059a7c3e":()=>n.e(14).then(n.bind(null,328)),"v-8f7eecb6":()=>n.e(15).then(n.bind(null,329)),"v-cf2f15f6":()=>n.e(16).then(n.bind(null,330)),"v-3b160f25":()=>n.e(17).then(n.bind(null,331)),"v-2ece97be":()=>n.e(18).then(n.bind(null,332))};function Ka(t){const e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}const Xa=/-(\w)/g,Za=Ka(t=>t.replace(Xa,(t,e)=>e?e.toUpperCase():"")),Ya=/\B([A-Z])/g,Qa=Ka(t=>t.replace(Ya,"-$1").toLowerCase()),ts=Ka(t=>t.charAt(0).toUpperCase()+t.slice(1));function es(t,e){if(!e)return;if(t(e))return t(e);return e.includes("-")?t(ts(Za(e))):t(ts(e))||t(Qa(e))}const ns=Object.assign({},Ga,Ja),rs=t=>ns[t],os=t=>Ja[t],is=t=>Ga[t],as=t=>Gn.component(t);function ss(t){return es(os,t)}function cs(t){return es(is,t)}function us(t){return es(rs,t)}function ls(t){return es(as,t)}function ps(...t){return Promise.all(t.filter(t=>t).map(async t=>{if(!ls(t)&&us(t)){const e=await us(t)();Gn.component(t,e.default)}}))}function fs(t,e){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[t]=e)}var ds=n(91),hs=n.n(ds),vs=n(92),ms=n.n(vs),gs={created(){if(this.siteMeta=this.$site.headTags.filter(([t])=>"meta"===t).map(([t,e])=>e),this.$ssrContext){const e=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(t=e)?t.map(t=>{let e="{e+=` ${n}="${ms()(t[n])}"`}),e+">"}).join("\n "):"",this.$ssrContext.canonicalLink=bs(this.$canonicalUrl)}var t},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const t=this.getMergedMetaTags();this.currentMetaTags=_s(t,this.currentMetaTags)},getMergedMetaTags(){const t=this.$page.frontmatter.meta||[];return hs()([{name:"description",content:this.$description}],t,this.siteMeta,xs)},updateCanonicalLink(){ys(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",bs(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){_s(null,this.currentMetaTags),ys()}};function ys(){const t=document.querySelector("link[rel='canonical']");t&&t.remove()}function bs(t=""){return t?``:""}function _s(t,e){if(e&&[...e].filter(t=>t.parentNode===document.head).forEach(t=>document.head.removeChild(t)),t)return t.map(t=>{const e=document.createElement("meta");return Object.keys(t).forEach(n=>{e.setAttribute(n,t[n])}),document.head.appendChild(e),e})}function xs(t){for(const e of["name","property","itemprop"])if(t.hasOwnProperty(e))return t[e]+e;return JSON.stringify(t)}var ws=n(48),ks={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:n.n(ws)()((function(){this.setActiveHash()}),300),setActiveHash(){const t=[].slice.call(document.querySelectorAll(".sidebar-link")),e=[].slice.call(document.querySelectorAll(".header-anchor")).filter(e=>t.some(t=>t.hash===e.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),r=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),o=window.innerHeight+n;for(let t=0;t=i.parentElement.offsetTop+10&&(!a||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},Os=n(24),Cs=n.n(Os),js={mounted(){Cs.a.configure({showSpinner:!1}),this.$router.beforeEach((t,e,n)=>{t.path===e.path||Gn.component(t.name)||Cs.a.start(),n()}),this.$router.afterEach(()=>{Cs.a.done(),this.isSidebarOpen=!1})}};n(239),n(240);class $s{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:t="",duration:e=3e3}){let n=document.createElement("div");n.className="message move-in",n.innerHTML=`\n \n \n \n
${t}
\n `,this.containerEl.appendChild(n),e>0&&setTimeout(()=>{this.close(n)},e)}close(t){t.className=t.className.replace("move-in",""),t.className+="move-out",t.addEventListener("animationend",()=>{t.remove()})}}var Es={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(t=>{document.querySelectorAll(t).forEach(this.generateCopyButton)})},1e3)},generateCopyButton(t){if(t.classList.contains("codecopy-enabled"))return;const e=document.createElement("i");e.className="code-copy",e.innerHTML='',e.title="Copy to clipboard",e.addEventListener("click",()=>{this.copyToClipboard(t.innerText)}),t.appendChild(e),t.classList.add("codecopy-enabled")},copyToClipboard(t){const e=document.createElement("textarea");e.value=t,e.setAttribute("readonly",""),e.style.position="absolute",e.style.left="-9999px",document.body.appendChild(e);const n=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);e.select(),document.execCommand("copy");(new $s).show({text:"复制成功",duration:1e3}),document.body.removeChild(e),n&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(n))}}};!function(t,e){void 0===e&&(e={});var n=e.insertAt;if(t&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}}("@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 Ss={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"},Ts={},As=function(t){return'
\n'.concat(t,"\n
")},Ps=function(t){return window.$VUEPRESS_DEMO_BLOCK&&void 0!==window.$VUEPRESS_DEMO_BLOCK[t]?window.$VUEPRESS_DEMO_BLOCK[t]:Ss[t]},Ls=function t(e,n,r){var o=document.createElement(e);return n&&Object.keys(n).forEach((function(t){if(t.indexOf("data"))o[t]=n[t];else{var e=t.replace("data","");o.dataset[e]=n[t]}})),r&&r.forEach((function(e){var n=e.tag,r=e.attrs,i=e.children;o.appendChild(t(n,r,i))})),o},Ms=function(t,e,n){var r,o=(r=t.querySelectorAll(".".concat(e)),Array.prototype.slice.call(r));return 1!==o.length||n?o:o[0]},Rs=function(t,e){var n,r,o=t.match(/',datatip:"JSFiddle"}}])}(u)),Ps("codepen")&&r.appendChild(function(t){var e=t.css,n=t.htmlTpl,r=t.jsTpl,o=t.jsLib,i=t.cssLib,a=JSON.stringify({css:e,html:n,js:r,js_external:o.concat(Ps("jsLib")).join(";"),css_external:i.concat(Ps("cssLib")).join(";"),layout:Ps("codepenLayout"),js_pre_processor:Ps("codepenJsProcessor"),editors:Ps("codepenEditors")});return Ls("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:'',className:"vuepress-plugin-demo-block__button",datatip:"Codepen"}}])}(u)),void 0!==a.horizontal?a.horizontal:Ps("horizontal")){t.classList.add("vuepress-plugin-demo-block__horizontal");var p=e.firstChild.cloneNode(!0);p.classList.add("vuepress-plugin-demo-block__h_code"),n.appendChild(p)}if(u.css&&function(t){if(!Ts[t]){var e=Ls("style",{innerHTML:t});document.body.appendChild(e),Ts[t]=!0}}(u.css),"react"===s)ReactDOM.render(React.createElement(u.js),o);else if("vue"===s){var f=(new(Vue.extend(u.script))).$mount();o.appendChild(f.$el)}else"vanilla"===s&&(o.innerHTML=u.html,new Function("return (function(){".concat(u.script,"})()"))());t.dataset.created="true"}})):setTimeout((function(t){zs()}),300)}function Ns(t,e,n,r){var o="1"!==t.dataset.isExpand;n.style.height=o?"".concat(e,"px"):0,o?r.classList.add("vuepress-plugin-demo-block__show-link"):r.classList.remove("vuepress-plugin-demo-block__show-link"),t.dataset.isExpand=o?"1":"0"}var Us={mounted:function(){window.$VUEPRESS_DEMO_BLOCK={jsfiddle:!1,codepen:!0,horizontal:!1},zs()},updated:function(){zs()}},Bs="auto",Fs="zoom-in",Vs="zoom-out",qs="grab",Hs="move";function Ws(t,e,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o={passive:!1};r?t.addEventListener(e,n,o):t.removeEventListener(e,n,o)}function Gs(t,e){if(t){var n=new Image;n.onload=function(){e&&e(n)},n.src=t}}function Js(t){return t.dataset.original?t.dataset.original:"A"===t.parentNode.tagName?t.parentNode.getAttribute("href"):null}function Ks(t,e,n){!function(t){var e=Xs,n=Zs;if(t.transition){var r=t.transition;delete t.transition,t[e]=r}if(t.transform){var o=t.transform;delete t.transform,t[n]=o}}(e);var r=t.style,o={};for(var i in e)n&&(o[i]=r[i]||""),r[i]=e[i];return o}var Xs="transition",Zs="transform",Ys="transform",Qs="transitionend";var tc=function(){},ec={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:tc,onClose:tc,onGrab:tc,onMove:tc,onRelease:tc,onBeforeOpen:tc,onBeforeClose:tc,onBeforeGrab:tc,onBeforeRelease:tc,onImageLoading:tc,onImageLoaded:tc},nc={init:function(t){var e,n;e=this,n=t,Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach((function(t){e[t]=e[t].bind(n)}))},click:function(t){if(t.preventDefault(),oc(t))return window.open(this.target.srcOriginal||t.currentTarget.src,"_blank");this.shown?this.released?this.close():this.release():this.open(t.currentTarget)},scroll:function(){var t=document.documentElement||document.body.parentNode||document.body,e=window.pageXOffset||t.scrollLeft,n=window.pageYOffset||t.scrollTop;null===this.lastScrollPosition&&(this.lastScrollPosition={x:e,y:n});var r=this.lastScrollPosition.x-e,o=this.lastScrollPosition.y-n,i=this.options.scrollThreshold;(Math.abs(o)>=i||Math.abs(r)>=i)&&(this.lastScrollPosition=null,this.close())},keydown:function(t){(function(t){return"Escape"===(t.key||t.code)||27===t.keyCode})(t)&&(this.released?this.close():this.release(this.close))},mousedown:function(t){if(rc(t)&&!oc(t)){t.preventDefault();var e=t.clientX,n=t.clientY;this.pressTimer=setTimeout(function(){this.grab(e,n)}.bind(this),200)}},mousemove:function(t){this.released||this.move(t.clientX,t.clientY)},mouseup:function(t){rc(t)&&!oc(t)&&(clearTimeout(this.pressTimer),this.released?this.close():this.release())},touchstart:function(t){t.preventDefault();var e=t.touches[0],n=e.clientX,r=e.clientY;this.pressTimer=setTimeout(function(){this.grab(n,r)}.bind(this),200)},touchmove:function(t){if(!this.released){var e=t.touches[0],n=e.clientX,r=e.clientY;this.move(n,r)}},touchend:function(t){(function(t){t.targetTouches.length})(t)||(clearTimeout(this.pressTimer),this.released?this.close():this.release())},clickOverlay:function(){this.close()},resizeWindow:function(){this.close()}};function rc(t){return 0===t.button}function oc(t){return t.metaKey||t.ctrlKey}var ic={init:function(t){this.el=document.createElement("div"),this.instance=t,this.parent=document.body,Ks(this.el,{position:"fixed",top:0,left:0,right:0,bottom:0,opacity:0}),this.updateStyle(t.options),Ws(this.el,"click",t.handler.clickOverlay.bind(t))},updateStyle:function(t){Ks(this.el,{zIndex:t.zIndex,backgroundColor:t.bgColor,transition:"opacity\n "+t.transitionDuration+"s\n "+t.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(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},sc=function(){function t(t,e){for(var n=0;nv||f>m)return{x:v,y:m}}return{x:f,y:f}}};function lc(){var t=document.documentElement;return{x:Math.min(t.clientWidth,window.innerWidth)/2,y:Math.min(t.clientHeight,window.innerHeight)/2}}function pc(t,e,n){["mousedown","mousemove","mouseup","touchstart","touchmove","touchend"].forEach((function(r){Ws(t,r,e[r],n)}))}var fc=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.target=Object.create(uc),this.overlay=Object.create(ic),this.handler=Object.create(nc),this.body=document.body,this.shown=!1,this.lock=!1,this.released=!0,this.lastScrollPosition=null,this.pressTimer=null,this.options=cc({},ec,e),this.overlay.init(this),this.handler.init(this)}return sc(t,[{key:"listen",value:function(t){if("string"==typeof t)for(var e=document.querySelectorAll(t),n=e.length;n--;)this.listen(e[n]);else"IMG"===t.tagName&&(t.style.cursor=Fs,Ws(t,"click",this.handler.click),this.options.preloadImage&&Gs(Js(t)));return this}},{key:"config",value:function(t){return t?(cc(this.options,t),this.overlay.updateStyle(this.options),this):this.options}},{key:"open",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.onOpen;if(!this.shown&&!this.lock){var r="string"==typeof t?document.querySelector(t):t;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),Gs(o,this.options.onImageLoaded))}this.shown=!0,this.lock=!0,this.target.zoomIn(),this.overlay.insert(),this.overlay.fadeIn(),Ws(document,"scroll",this.handler.scroll),Ws(document,"keydown",this.handler.keydown),this.options.closeOnWindowResize&&Ws(window,"resize",this.handler.resizeWindow);var i=function t(){Ws(r,Qs,t,!1),e.lock=!1,e.target.upgradeSource(),e.options.enableGrab&&pc(document,e.handler,!0),n(r)};return Ws(r,Qs,i),this}}}},{key:"close",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.onClose;if(this.shown&&!this.lock){var n=this.target.el;this.options.onBeforeClose(n),this.lock=!0,this.body.style.cursor=Bs,this.overlay.fadeOut(),this.target.zoomOut(),Ws(document,"scroll",this.handler.scroll,!1),Ws(document,"keydown",this.handler.keydown,!1),this.options.closeOnWindowResize&&Ws(window,"resize",this.handler.resizeWindow,!1);var r=function r(){Ws(n,Qs,r,!1),t.shown=!1,t.lock=!1,t.target.downgradeSource(),t.options.enableGrab&&pc(document,t.handler,!1),t.target.restoreCloseStyle(),t.overlay.remove(),e(n)};return Ws(n,Qs,r),this}}},{key:"grab",value:function(t,e){var n=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(t,e,n);var i=function t(){Ws(o,Qs,t,!1),r(o)};return Ws(o,Qs,i),this}}},{key:"move",value:function(t,e){var n=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=Hs,this.target.move(t,e,n);var o=this.target.el,i=function t(){Ws(o,Qs,t,!1),r(o)};return Ws(o,Qs,i),this}}},{key:"release",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.onRelease;if(this.shown&&!this.lock){var n=this.target.el;this.options.onBeforeRelease(n),this.lock=!0,this.body.style.cursor=Bs,this.target.restoreOpenStyle();var r=function r(){Ws(n,Qs,r,!1),t.lock=!1,t.released=!0,e(n)};return Ws(n,Qs,r),this}}}]),t}();const dc=JSON.parse('{"bgColor":"rgba(0,0,0,0.6)"}'),hc=Number("500");class vc{constructor(){this.instance=new fc(dc)}update(t=".theme-vdoing-content img:not(.no-zoom)"){"undefined"!=typeof window&&this.instance.listen(t)}updateDelay(t=".theme-vdoing-content img:not(.no-zoom)",e=hc){setTimeout(()=>this.update(t),e)}}var mc=[gs,ks,js,Es,Us,{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 t=this.getLayout();return fs("layout",t),Gn.component(t)}},methods:{getLayout(){if(this.$page.path){const t=this.$page.frontmatter.layout;return t&&(this.$vuepress.getLayoutAsyncComponent(t)||this.$vuepress.getVueComponent(t))?t:"Layout"}return"NotFound"}}},yc=n(8),bc=Object(yc.a)(gc,(function(){return(0,this._self._c)(this.layout,{tag:"component"})}),[],!1,null,null,null).exports;!function(t,e,n){switch(e){case"components":t[e]||(t[e]={}),Object.assign(t[e],n);break;case"mixins":t[e]||(t[e]=[]),t[e].push(...n);break;default:throw new Error("Unknown option name.")}}(bc,"mixins",mc);const _c=[{name:"v-05fee314",path:"/about/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-05fee314").then(n)}},{path:"/about/index.html",redirect:"/about/"},{path:"/00.目录页/00.about.html",redirect:"/about/"},{name:"v-28d949b6",path:"/ui/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-28d949b6").then(n)}},{path:"/ui/index.html",redirect:"/ui/"},{path:"/00.目录页/02.页面.html",redirect:"/ui/"},{name:"v-865cc866",path:"/technology/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-865cc866").then(n)}},{path:"/technology/index.html",redirect:"/technology/"},{path:"/00.目录页/03.技术.html",redirect:"/technology/"},{name:"v-ca4b458e",path:"/more/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-ca4b458e").then(n)}},{path:"/more/index.html",redirect:"/more/"},{path:"/00.目录页/04.更多.html",redirect:"/more/"},{name:"v-7942c6ac",path:"/web/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-7942c6ac").then(n)}},{path:"/web/index.html",redirect:"/web/"},{path:"/00.目录页/01.技术学习.html",redirect:"/web/"},{name:"v-966ddacc",path:"/pages/479a6c/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-966ddacc").then(n)}},{path:"/pages/479a6c/index.html",redirect:"/pages/479a6c/"},{path:"/02.技术学习/01.docker/01.入门.html",redirect:"/pages/479a6c/"},{name:"v-3c5fb6e5",path:"/pages/336431/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-3c5fb6e5").then(n)}},{path:"/pages/336431/index.html",redirect:"/pages/336431/"},{path:"/01.java/00.JVM/00.JVM.html",redirect:"/pages/336431/"},{name:"v-3fafbfca",path:"/pages/4d9eaa/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-3fafbfca").then(n)}},{path:"/pages/4d9eaa/index.html",redirect:"/pages/4d9eaa/"},{path:"/02.技术学习/01.docker/02.原理.html",redirect:"/pages/4d9eaa/"},{name:"v-1d01a3c6",path:"/pages/0d9ac7/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-1d01a3c6").then(n)}},{path:"/pages/0d9ac7/index.html",redirect:"/pages/0d9ac7/"},{path:"/02.技术学习/02.hbase/01.入门.html",redirect:"/pages/0d9ac7/"},{name:"v-059a7c3e",path:"/pages/67ef0c/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-059a7c3e").then(n)}},{path:"/pages/67ef0c/index.html",redirect:"/pages/67ef0c/"},{path:"/02.技术学习/02.hbase/02.原理.html",redirect:"/pages/67ef0c/"},{name:"v-8f7eecb6",path:"/archives/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-8f7eecb6").then(n)}},{path:"/archives/index.html",redirect:"/archives/"},{path:"/@pages/archivesPage.html",redirect:"/archives/"},{name:"v-cf2f15f6",path:"/categories/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-cf2f15f6").then(n)}},{path:"/categories/index.html",redirect:"/categories/"},{path:"/@pages/categoriesPage.html",redirect:"/categories/"},{name:"v-3b160f25",path:"/tags/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-3b160f25").then(n)}},{path:"/tags/index.html",redirect:"/tags/"},{path:"/@pages/tagsPage.html",redirect:"/tags/"},{name:"v-2ece97be",path:"/",component:bc,beforeEnter:(t,e,n)=>{ps("Layout","v-2ece97be").then(n)}},{path:"/index.html",redirect:"/"},{path:"*",component:bc}],xc={title:"",description:"",base:"/",headTags:[["link",{rel:"icon",href:"/img/favicon.ico"}],["meta",{name:"keywords",content:"Java,后端,技术,博客"}],["meta",{name:"theme-color",content:"#11a8cd"}]],pages:[{title:"about",frontmatter:{title:"about",date:"2024-04-08T07:17:59.000Z",permalink:"/about/",categories:["关于"],tags:[null],author:{name:"lan-dian",link:"https://github.com/lan-dian"}},regularPath:"/00.%E7%9B%AE%E5%BD%95%E9%A1%B5/00.about.html",relativePath:"00.目录页/00.about.md",key:"v-05fee314",path:"/about/",headers:[{level:2,title:"Hi there 👋",slug:"hi-there-👋"}],lastUpdated:"2024/04/08, 07:44:14",lastUpdatedTimestamp:1712562254e3},{title:"页面",frontmatter:{pageComponent:{name:"Catalogue",data:{path:"02.页面",imgUrl:"/img/ui.png",description:"html(5)/css(3),前端页面相关技术"}},title:"页面",date:"2020-03-11T21:50:54.000Z",permalink:"/ui/",sidebar:!1,article:!1,comment:!1,editLink:!1,author:{name:"xugaoyi",link:"https://github.com/xugaoyi"}},regularPath:"/00.%E7%9B%AE%E5%BD%95%E9%A1%B5/02.%E9%A1%B5%E9%9D%A2.html",relativePath:"00.目录页/02.页面.md",key:"v-28d949b6",path:"/ui/",lastUpdated:"2024/04/07, 08:43:59",lastUpdatedTimestamp:1712479439e3},{title:"技术",frontmatter:{pageComponent:{name:"Catalogue",data:{path:"03.技术",imgUrl:"/img/other.png",description:"技术文档、教程、技巧、总结等文章"}},title:"技术",date:"2020-03-11T21:50:55.000Z",permalink:"/technology/",sidebar:!1,article:!1,comment:!1,editLink:!1,author:{name:"xugaoyi",link:"https://github.com/xugaoyi"}},regularPath:"/00.%E7%9B%AE%E5%BD%95%E9%A1%B5/03.%E6%8A%80%E6%9C%AF.html",relativePath:"00.目录页/03.技术.md",key:"v-865cc866",path:"/technology/",lastUpdated:"2024/04/07, 08:43:59",lastUpdatedTimestamp:1712479439e3},{title:"更多",frontmatter:{pageComponent:{name:"Catalogue",data:{path:"04.更多",imgUrl:"/img/more.png",description:"学习、面试、在线工具等更多文章和页面"}},title:"更多",date:"2020-03-11T21:50:56.000Z",permalink:"/more/",sidebar:!1,article:!1,comment:!1,editLink:!1,author:{name:"xugaoyi",link:"https://github.com/xugaoyi"}},regularPath:"/00.%E7%9B%AE%E5%BD%95%E9%A1%B5/04.%E6%9B%B4%E5%A4%9A.html",relativePath:"00.目录页/04.更多.md",key:"v-ca4b458e",path:"/more/",lastUpdated:"2024/04/07, 08:43:59",lastUpdatedTimestamp:1712479439e3},{title:"技术学习",frontmatter:{pageComponent:{name:"Catalogue",data:{path:"02.技术学习",description:"研发常用中间件学习"}},title:"技术学习",date:"2024-04-08T15:26:53.000Z",permalink:"/web/",sidebar:!1,article:!1,comment:!1,editLink:!1,author:{name:"lan-dian",link:"https://github.com/lan-dian"}},regularPath:"/00.%E7%9B%AE%E5%BD%95%E9%A1%B5/01.%E6%8A%80%E6%9C%AF%E5%AD%A6%E4%B9%A0.html",relativePath:"00.目录页/01.技术学习.md",key:"v-7942c6ac",path:"/web/",lastUpdated:"2024/04/10, 10:37:01",lastUpdatedTimestamp:1712745421e3},{title:"入门",frontmatter:{title:"入门",date:"2024-04-08T07:24:40.000Z",permalink:"/pages/479a6c/",categories:["技术学习","docker"],tags:[null],author:{name:"lan-dian",link:"https://github.com/lan-dian"}},regularPath:"/02.%E6%8A%80%E6%9C%AF%E5%AD%A6%E4%B9%A0/01.docker/01.%E5%85%A5%E9%97%A8.html",relativePath:"02.技术学习/01.docker/01.入门.md",key:"v-966ddacc",path:"/pages/479a6c/",headers:[{level:2,title:"是什么",slug:"是什么"},{level:2,title:"怎么用",slug:"怎么用"},{level:2,title:"概念",slug:"概念"},{level:3,title:"镜像(image)",slug:"镜像-image"},{level:4,title:"分层存储",slug:"分层存储"},{level:3,title:"容器",slug:"容器"},{level:3,title:"Registry",slug:"registry"},{level:2,title:"使用",slug:"使用"},{level:3,title:"基本命令",slug:"基本命令"},{level:3,title:"数据卷(volume)",slug:"数据卷-volume"},{level:3,title:"网络",slug:"网络"},{level:2,title:"DockerFile",slug:"dockerfile"},{level:3,title:"FROM",slug:"from"},{level:3,title:"RUN",slug:"run"},{level:3,title:"COPY",slug:"copy"},{level:3,title:"CMD",slug:"cmd"},{level:3,title:"ENV",slug:"env"},{level:3,title:"AVG",slug:"avg"},{level:3,title:"例子",slug:"例子"}],lastUpdated:"2024/04/10, 10:37:01",lastUpdatedTimestamp:1712745421e3},{title:"JVM",frontmatter:{title:"JVM",date:"2024-04-08T07:17:12.000Z",permalink:"/pages/336431/",categories:["java","JVM"],tags:[null],author:{name:"lan-dian",link:"https://github.com/lan-dian"}},regularPath:"/01.java/00.JVM/00.JVM.html",relativePath:"01.java/00.JVM/00.JVM.md",key:"v-3c5fb6e5",path:"/pages/336431/",lastUpdated:"2024/04/08, 07:44:14",lastUpdatedTimestamp:1712562254e3},{title:"原理",frontmatter:{title:"原理",date:"2024-04-09T17:24:43.000Z",permalink:"/pages/4d9eaa/",categories:["技术学习","docker"],tags:[null],author:{name:"lan-dian",link:"https://github.com/lan-dian"}},regularPath:"/02.%E6%8A%80%E6%9C%AF%E5%AD%A6%E4%B9%A0/01.docker/02.%E5%8E%9F%E7%90%86.html",relativePath:"02.技术学习/01.docker/02.原理.md",key:"v-3fafbfca",path:"/pages/4d9eaa/",headers:[{level:2,title:"联合文件系统(Union File System)",slug:"联合文件系统-union-file-system"},{level:2,title:"docker run",slug:"docker-run"},{level:2,title:"网络",slug:"网络"}],lastUpdated:"2024/04/09, 09:35:35",lastUpdatedTimestamp:1712655335e3},{title:"入门",frontmatter:{title:"入门",date:"2024-04-10T18:33:46.000Z",permalink:"/pages/0d9ac7/",categories:["技术学习","hbase"],tags:[null],author:{name:"lan-dian",link:"https://github.com/lan-dian"}},regularPath:"/02.%E6%8A%80%E6%9C%AF%E5%AD%A6%E4%B9%A0/02.hbase/01.%E5%85%A5%E9%97%A8.html",relativePath:"02.技术学习/02.hbase/01.入门.md",key:"v-1d01a3c6",path:"/pages/0d9ac7/",headers:[{level:2,title:"是什么",slug:"是什么"},{level:2,title:"为什么",slug:"为什么"},{level:2,title:"概念",slug:"概念"},{level:3,title:"列式存储",slug:"列式存储"},{level:3,title:"基本概念",slug:"基本概念"},{level:2,title:"架构",slug:"架构"},{level:3,title:"HRegionServer",slug:"hregionserver"}],lastUpdated:"2024/04/10, 10:37:01",lastUpdatedTimestamp:1712745421e3},{title:"原理",frontmatter:{title:"原理",date:"2024-04-10T18:34:01.000Z",permalink:"/pages/67ef0c/",categories:["技术学习","hbase"],tags:[null],author:{name:"lan-dian",link:"https://github.com/lan-dian"}},regularPath:"/02.%E6%8A%80%E6%9C%AF%E5%AD%A6%E4%B9%A0/02.hbase/02.%E5%8E%9F%E7%90%86.html",relativePath:"02.技术学习/02.hbase/02.原理.md",key:"v-059a7c3e",path:"/pages/67ef0c/",headers:[{level:2,title:"存储引擎",slug:"存储引擎"},{level:2,title:"写流程",slug:"写流程"},{level:2,title:"读流程",slug:"读流程"},{level:3,title:"Block Cahce",slug:"block-cahce"},{level:2,title:"合并",slug:"合并"},{level:3,title:"触发时机",slug:"触发时机"},{level:2,title:"数据切分",slug:"数据切分"},{level:2,title:"Hfile结构",slug:"hfile结构"},{level:2,title:"并发控制",slug:"并发控制"},{level:2,title:"宕机恢复",slug:"宕机恢复"},{level:2,title:"高可用",slug:"高可用"}],lastUpdated:"2024/04/10, 10:37:01",lastUpdatedTimestamp:1712745421e3},{title:"归档",frontmatter:{archivesPage:!0,title:"归档",permalink:"/archives/",article:!1},regularPath:"/@pages/archivesPage.html",relativePath:"@pages/archivesPage.md",key:"v-8f7eecb6",path:"/archives/",lastUpdated:"2024/04/07, 08:43:59",lastUpdatedTimestamp:1712479439e3},{title:"分类",frontmatter:{categoriesPage:!0,title:"分类",permalink:"/categories/",article:!1},regularPath:"/@pages/categoriesPage.html",relativePath:"@pages/categoriesPage.md",key:"v-cf2f15f6",path:"/categories/",lastUpdated:"2024/04/07, 08:43:59",lastUpdatedTimestamp:1712479439e3},{title:"标签",frontmatter:{tagsPage:!0,title:"标签",permalink:"/tags/",article:!1},regularPath:"/@pages/tagsPage.html",relativePath:"@pages/tagsPage.md",key:"v-3b160f25",path:"/tags/",lastUpdated:"2024/04/07, 08:43:59",lastUpdatedTimestamp:1712479439e3},{title:"Home",frontmatter:{home:!0,heroImage:"/img/logo.png",heroText:"岚殿的博客",tagline:"Java后端技术博客,分享一些有深度的内容",actionText:"快速开始 →",actionLink:"/pages/336431/",bannerBg:"none",postList:"none",hideRightBar:!0},regularPath:"/",relativePath:"index.md",key:"v-2ece97be",path:"/",lastUpdated:"2024/04/08, 08:30:08",lastUpdatedTimestamp:1712565008e3}],themeConfig:{nav:[{text:"首页",link:"/"},{text:"Java",link:"/pages/336431/"},{text:"技术学习",link:"/web/",items:[{text:"docker",link:"/pages/479a6c/"},{text:"hbase",link:"/pages/0d9ac7/"}]},{text:"关于",link:"/about/"},{text:"索引",link:"/archives/",items:[{text:"分类",link:"/categories/"},{text:"标签",link:"/tags/"},{text:"归档",link:"/archives/"}]}],sidebarDepth:2,logo:"/img/logo.png",repo:"lan-dian",searchMaxSuggestions:10,lastUpdated:"上次更新",docsDir:"docs",editLinks:!0,editLinkText:"编辑",sidebar:{"/00.目录页/":[["00.about.md","about","/about/"],["01.技术学习.md","技术学习","/web/"],["02.页面.md","页面","/ui/"],["03.技术.md","技术","/technology/"],["04.更多.md","更多","/more/"]],catalogue:{"技术学习":"/web/","页面":"/ui/","技术":"/technology/","更多":"/more/"},"/01.java/":[{title:"JVM",collapsable:!0,children:[["00.JVM/00.JVM.md","JVM","/pages/336431/"]]}],"/02.技术学习/":[{title:"docker",collapsable:!0,children:[["01.docker/01.入门.md","入门","/pages/479a6c/"],["01.docker/02.原理.md","原理","/pages/4d9eaa/"]]},{title:"hbase",collapsable:!0,children:[["02.hbase/01.入门.md","入门","/pages/0d9ac7/"],["02.hbase/02.原理.md","原理","/pages/67ef0c/"]]}]},author:{name:"lan-dian",link:"https://github.com/lan-dian"},blogger:{avatar:"/img/logo.png",name:"岚殿"},social:{icons:[{iconClass:"icon-github",title:"GitHub",link:"https://github.com/lan-dian"}]},extendFrontmatter:{author:{name:"lan-dian",link:"https://github.com/lan-dian"}},htmlModules:{}},locales:{"/":{lang:"zh-CN",title:"岚殿的技术博客",description:"Java后端技术博客",path:"/"}}};var wc=n(93),kc=n(94),Oc=n(11);var Cc={computed:{$filterPosts(){return this.$site.pages.filter(t=>{const{frontmatter:{pageComponent:e,article:n,home:r}}=t;return!(e||!1===n||!0===r)})},$sortPosts(){return(t=this.$filterPosts).sort((t,e)=>{const n=t.frontmatter.sticky,r=e.frontmatter.sticky;return n&&r?n==r?Object(Oc.a)(t,e):n-r:n&&!r?-1:!n&&r?1:Object(Oc.a)(t,e)}),t;var t},$sortPostsByDate(){return(t=this.$filterPosts).sort((t,e)=>Object(Oc.a)(t,e)),t;var t},$groupPosts(){return function(t){const e={},n={};for(let r=0,o=t.length;r{n&&(e[n]||(e[n]=[]),e[n].push(t[r]))}),"array"===Object(Oc.n)(i)&&i.forEach(e=>{e&&(n[e]||(n[e]=[]),n[e].push(t[r]))})}return{categories:e,tags:n}}(this.$sortPosts)},$categoriesAndTags(){return function(t){const e=[],n=[];for(let n in t.categories)e.push({key:n,length:t.categories[n].length});for(let e in t.tags)n.push({key:e,length:t.tags[e].length});return{categories:e,tags:n}}(this.$groupPosts)}}};Gn.component(wc.default),Gn.component(kc.default);function jc(t){return t.toString().padStart(2,"0")}n(243);Gn.component("Badge",()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,333))),Gn.component("CodeBlock",()=>Promise.resolve().then(n.bind(null,93))),Gn.component("CodeGroup",()=>Promise.resolve().then(n.bind(null,94)));n(244);var $c=[({Vue:t,options:e,router:n,siteData:r})=>{},({Vue:t,options:e,router:n,siteData:r})=>{r.pages.map(t=>{const{frontmatter:{date:e,author:n}}=t;"string"==typeof e&&"Z"===e.charAt(e.length-1)&&(t.frontmatter.date=function(t){t instanceof Date||(t=new Date(t));return`${t.getUTCFullYear()}-${jc(t.getUTCMonth()+1)}-${jc(t.getUTCDate())} ${jc(t.getUTCHours())}:${jc(t.getUTCMinutes())}:${jc(t.getUTCSeconds())}`}(e)),n?t.author=n:r.themeConfig.author&&(t.author=r.themeConfig.author)}),t.mixin(Cc)},{},({Vue:t})=>{t.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{},({router:t})=>{"undefined"!=typeof window&&function(){var t=document.createElement("script"),e=window.location.protocol.split(":")[0];t.src="https"===e?"https://zz.bdstatic.com/linksubmit/push.js":"http://push.zhanzhang.baidu.com/push.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n)}()},({router:t})=>{"undefined"!=typeof window&&(window._hmt=window._hmt||[],function(){var t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?503f098e7e5b3a5b5d8c5fc2938af002";var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(t,e)}(),t.afterEach((function(t){_hmt.push(["_trackPageview",t.fullPath])})))}],Ec=[];class Sc extends class{constructor(){this.store=new Gn({data:{state:{}}})}$get(t){return this.store.state[t]}$set(t,e){Gn.set(this.store.state,t,e)}$emit(...t){this.store.$emit(...t)}$on(...t){this.store.$on(...t)}}{}Object.assign(Sc.prototype,{getPageAsyncComponent:ss,getLayoutAsyncComponent:cs,getAsyncComponent:us,getVueComponent:ls});var Tc={install(t){const e=new Sc;t.$vuepress=e,t.prototype.$vuepress=e}};function Ac(t,e){const n=e.toLowerCase();return t.options.routes.some(t=>t.path.toLowerCase()===n)}var Pc={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(t){const e=this.pageKey||this.$parent.$page.key;return fs("pageKey",e),Gn.component(e)||Gn.component(e,ss(e)),Gn.component(e)?t(e):t("")}},Lc={functional:!0,props:{slotKey:String,required:!0},render:(t,{props:e,slots:n})=>t("div",{class:["content__"+e.slotKey]},n()[e.slotKey])},Mc={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},Rc=(n(245),n(246),Object(yc.a)(Mc,(function(){var t=this._self._c;return t("span",[t("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"}},[t("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(" "),t("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(" "),t("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports),Ic={functional:!0,render(t,{parent:e,children:n}){if(e._isMounted)return n;e.$once("hook:mounted",()=>{e.$forceUpdate()})}};Gn.config.productionTip=!1,Gn.use(Ha),Gn.use(Tc),Gn.mixin(function(t,e,n=Gn){!function(t){t.locales&&Object.keys(t.locales).forEach(e=>{t.locales[e].path=e});Object.freeze(t)}(e),n.$vuepress.$set("siteData",e);const r=new(t(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((t,e)=>(e.startsWith("$")&&(t[e]=o[e].get),t),i),{computed:i}}(t=>class{setPage(t){this.__page=t}get $site(){return t}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:t={}}=this.$site;let e,n;for(const r in t)"/"===r?n=t[r]:0===this.$page.path.indexOf(r)&&(e=t[r]);return e||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:t}=this.$page.frontmatter;return"string"==typeof t&&t}get $title(){const t=this.$page,{metaTitle:e}=this.$page.frontmatter;if("string"==typeof e)return e;const n=this.$siteTitle,r=t.frontmatter.home?null:t.frontmatter.title||t.title;return n?r?r+" | "+n:n:r||"VuePress"}get $description(){const t=function(t){if(t){const e=t.filter(t=>"description"===t.name)[0];if(e)return e.content}}(this.$page.frontmatter.meta);return t||(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(t,e){for(let n=0;nn||(t.hash?!Gn.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(t.hash)}:{x:0,y:0})});!function(t){t.beforeEach((e,n,r)=>{if(Ac(t,e.path))r();else if(/(\/|\.html)$/.test(e.path))if(/\/$/.test(e.path)){const n=e.path.replace(/\/$/,"")+".html";Ac(t,n)?r(n):r()}else r();else{const n=e.path+"/",o=e.path+".html";Ac(t,o)?r(o):Ac(t,n)?r(n):r()}})}(n);const r={};try{await Promise.all($c.filter(t=>"function"==typeof t).map(e=>e({Vue:Gn,options:r,router:n,siteData:xc,isServer:t})))}catch(t){console.error(t)}return{app:new Gn(Object.assign(r,{router:n,render:t=>t("div",{attrs:{id:"app"}},[t("RouterView",{ref:"layout"}),t("div",{class:"global-ui"},Ec.map(e=>t(e)))])})),router:n}}(!1).then(({app:t,router:e})=>{e.onReady(()=>{t.$mount("#app")})})}]); \ No newline at end of file diff --git a/categories/index.html b/categories/index.html index 87f7e7e..b10a6be 100644 --- a/categories/index.html +++ b/categories/index.html @@ -10,16 +10,18 @@ - + -
- + diff --git a/pages/4d9eaa/index.html b/pages/4d9eaa/index.html index a6546b8..e0b38e1 100644 --- a/pages/4d9eaa/index.html +++ b/pages/4d9eaa/index.html @@ -10,25 +10,26 @@ - + -
- + diff --git a/ui/index.html b/ui/index.html index de256cb..e5f9856 100644 --- a/ui/index.html +++ b/ui/index.html @@ -10,24 +10,24 @@ - + -
- + diff --git a/web/index.html b/web/index.html index c41ff4d..c154662 100644 --- a/web/index.html +++ b/web/index.html @@ -10,28 +10,32 @@ - + -
04-10
02
+ 入门 +
04-10
03
+ 原理 +
04-09
更多文章>
- +