Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
AI推理平台
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lichunliang
AI推理平台
Commits
b80046b6
Commit
b80046b6
authored
Feb 25, 2025
by
xinzhedeai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: ip端口号
parent
a9038b00
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
21 additions
and
664 deletions
+21
-664
.env
.env
+16
-25
dist.zip
dist.zip
+0
-0
pnpm-lock.yaml
pnpm-lock.yaml
+2
-2
App.vue
src/App.vue
+0
-8
index.vue
src/views/home/index.vue
+0
-8
pie-chart-pro.vue
src/views/home/modules/pie-chart-pro.vue
+2
-2
vite.config.ts
vite.config.ts
+1
-19
vite.config.ts.timestamp-1730789706491-e80dbecbc7c07.mjs
vite.config.ts.timestamp-1730789706491-e80dbecbc7c07.mjs
+0
-300
vite.config.ts.timestamp-1740122963479-f65ffad1dbb92.mjs
vite.config.ts.timestamp-1740122963479-f65ffad1dbb92.mjs
+0
-300
No files found.
.env
View file @
b80046b6
...
...
@@ -36,7 +36,7 @@ VITE_SERVICE_LOGOUT_CODES=8888,8889
VITE_SERVICE_MODAL_LOGOUT_CODES=7777,7778
# token expired codes of backend service, when the code is received, it will refresh the token and resend the request
VITE_SERVICE_EXPIRED_TOKEN_CODES=9999,9998
VITE_SERVICE_EXPIRED_TOKEN_CODES=9999,9998
,9996
# when the route mode is static, the defined super role
VITE_STATIC_SUPER_ROLE=R_SUPER
...
...
@@ -48,36 +48,27 @@ VITE_SOURCE_MAP=N
VITE_STORAGE_PREFIX=SOY_
#
const VITE_VIDEO_URL = 'ws://192.168.1.221:9999';
#
const VITE_SERVICE_URL = 'http://192.168.1.120:9995';
#
const webSocketUrl = 'ws://192.168.1.120:9995';
#
VITE_VIDEO_URL: 视频流地址
#
VITE_SERVICE_URL: 所有服务接口地址
#
VITE_WEBSOCKET_URL: WebSocket 全局地址
# 开发环境 - 视频流地址
# VITE_VIDEO_URL=ws://192.168.1.68:9999
# # 开发环境(黄国安)
VITE_VIDEO_URL=ws://192.168.2.14:9999
VITE_SERVICE_URL=http://192.168.2.14:9998
VITE_WEBSOCKET_URL=ws://192.168.2.14:9999
# # 开发环境 - 部分服务接口地址
# VITE_SERVICE_URL=http://192.168.1.68:9996
# # 开发环境 - WebSocket 全局地址
# VITE_WEBSOCKET_URL=ws://192.168.1.68:9996
# # 华远正式环境(外网)
# VITE_VIDEO_URL=ws://220.194.146.65:9999
# VITE_SERVICE_URL=http://220.194.146.65:9996
# VITE_WEBSOCKET_URL=ws://220.194.146.65:9996
# ============================================ old
# VITE_VIDEO_URL=ws://192.168.1.68:9999
# 开发环境 - 部分服务接口地址
# VITE_SERVICE_URL=http://192.168.1.68:9996
# # 华远正式环境(内网)
# VITE_VIDEO_URL=ws://10.0.20.81:9991
# VITE_SERVICE_URL=http://10.0.20.81:9996
# VITE_WEBSOCKET_URL=ws://10.0.20.81:9991
# 开发环境 - WebSocket 全局地址
# VITE_WEBSOCKET_URL=ws://192.168.1.68:9996
# ============================================ old
# 开发环境 - 视频流地址
VITE_VIDEO_URL=ws://192.168.2.18:9999
# 开发环境 - 所有服务接口地址
VITE_SERVICE_URL=http://192.168.2.16:9998
# 开发环境 - WebSocket 全局地址
VITE_WEBSOCKET_URL=ws://192.168.2.16:9998
dist.zip
deleted
100644 → 0
View file @
a9038b00
File deleted
pnpm-lock.yaml
View file @
b80046b6
...
...
@@ -4092,7 +4092,7 @@ packages:
postcss-value-parser@4.2.0
:
resolution
:
{
integrity
:
sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
}
postcss@5.2.1
8
:
postcss@5.2.1
4
:
resolution
:
{
integrity
:
sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==
}
engines
:
{
node
:
'
>=0.12'
}
...
...
@@ -9358,7 +9358,7 @@ snapshots:
postcss-value-parser@4.2.0
:
{}
postcss@5.2.1
8
:
postcss@5.2.1
4
:
dependencies
:
chalk
:
1.1.3
js-base64
:
2.6.4
...
...
src/App.vue
View file @
b80046b6
...
...
@@ -6,14 +6,6 @@ import { useThemeStore } from './store/modules/theme';
import
{
naiveDateLocales
,
naiveLocales
}
from
'
./locales/naive
'
;
import
{
NConfigProvider
,
darkTheme
,
NButton
,
NImage
,
NSpace
,
NTag
,
useMessage
,
useNotification
,
NDropdown
,
NRow
,
NCol
,
NEllipsis
}
from
'
naive-ui
'
;
// 视频地址
// export const videdUrl = 'ws://192.168.1.221:9999';
// 固定接口地址
// export const apiUrl = 'http://192.168.1.120:9995';
// WS 地址
// export const wsUrl = 'ws://192.168.1.120:9995';
defineOptions
({
name
:
'
App
'
});
...
...
src/views/home/index.vue
View file @
b80046b6
...
...
@@ -18,14 +18,6 @@ import JSMpeg from '@cycjimmy/jsmpeg-player';
import
fullScreen
from
'
@/utils/full
'
// import { wx } from '@/index.vue'
// 服务器IP地址
// const serviceUrl = 'ws://192.168.1.140:9999';
// ws://192.168.1.221:9999
// const serviceUrl = 'ws://192.168.1.199:9999';
// const serviceUrl = 'ws://192.168.1.221:9999';
// const apiUrl = 'http://192.168.1.120:9995';
// const webSocketUrl = 'ws://192.168.1.120:9995';
const
serviceUrl
=
import
.
meta
.
env
.
VITE_VIDEO_URL
;
const
apiUrl
=
import
.
meta
.
env
.
VITE_SERVICE_URL
;
...
...
src/views/home/modules/pie-chart-pro.vue
View file @
b80046b6
...
...
@@ -14,8 +14,8 @@ const getCardData = async () => {
if
(
res
.
data
.
code
===
200
)
{
updateOptions
(
opts
=>
{
opts
.
series
[
0
].
data
=
[
{
name
:
`已启动
${
res
.
data
.
data
[
0
].
count
}
个`
,
value
:
res
.
data
.
data
[
0
].
count
},
{
name
:
`已停用
${
res
.
data
.
data
[
1
].
count
}
个`
,
value
:
res
.
data
.
data
[
1
].
count
},
{
name
:
`已启动
${
res
.
data
.
data
[
1
].
count
}
个`
,
value
:
res
.
data
.
data
[
1
].
count
},
{
name
:
`已停用
${
res
.
data
.
data
[
0
].
count
}
个`
,
value
:
res
.
data
.
data
[
0
].
count
},
];
return
opts
;
});
...
...
vite.config.ts
View file @
b80046b6
...
...
@@ -4,24 +4,6 @@ import { defineConfig, loadEnv } from 'vite';
import
{
setupVitePlugins
}
from
'
./build/plugins
'
;
import
{
createViteProxy
,
getBuildTime
}
from
'
./build/config
'
;
// export const proxyTarget = 'http://192.168.2.16:9998';
// export const proxyTarget = 'http://192.168.2.16:9998';
export
const
proxyTarget
=
'
http://192.168.2.16:9998
'
;
// export const proxyTarget = 'http://192.168.1.119:9996';
// export const proxyTarget = 'http://192.168.1.119:9996';
// 视频地址
export
const
videdUrl
=
'
ws://192.168.2.18:9999
'
;
// 固定接口地址
export
const
apiUrl
=
'
http://192.168.2.16:9998
'
;
// WS 地址
export
const
wsUrl
=
'
ws://192.168.2.18:9999
'
;
export
default
defineConfig
(
configEnv
=>
{
const
viteEnv
=
loadEnv
(
configEnv
.
mode
,
process
.
cwd
())
as
unknown
as
Env
.
ImportMeta
;
...
...
@@ -57,7 +39,7 @@ export default defineConfig(configEnv => {
// '/menus': 'http://192.168.1.102:9995/menus',
// '/menus': 'http://192.168.1.173:10000/menus'
'
/v1
'
:
{
target
:
proxyTarget
,
target
:
viteEnv
.
VITE_SERVICE_URL
,
changeOrigin
:
true
}
},
...
...
vite.config.ts.timestamp-1730789706491-e80dbecbc7c07.mjs
deleted
100644 → 0
View file @
a9038b00
// vite.config.ts
import
process3
from
"
node:process
"
;
import
{
URL
,
fileURLToPath
}
from
"
node:url
"
;
import
{
defineConfig
,
loadEnv
}
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/vite@5.3.5_@types+node@22.0.1_sass@1.77.8/node_modules/vite/dist/node/index.js
"
;
// build/plugins/index.ts
import
vue
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/@vitejs+plugin-vue@5.1.1_vite@5.3.5_@types+node@22.0.1_sass@1.77.8__vue@3.4.35_typescript@5.5.4_/node_modules/@vitejs/plugin-vue/dist/index.mjs
"
;
import
vueJsx
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/@vitejs+plugin-vue-jsx@4.0.0_vite@5.3.5_@types+node@22.0.1_sass@1.77.8__vue@3.4.35_typescript@5.5.4_/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs
"
;
import
VueDevtools
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/vite-plugin-vue-devtools@7.3.7_rollup@4.19.1_vite@5.3.5_@types+node@22.0.1_sass@1.77.8__vue@3.4.35_typescript@5.5.4_/node_modules/vite-plugin-vue-devtools/dist/vite.mjs
"
;
import
progress
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/vite-plugin-progress@0.0.7_vite@5.3.5_@types+node@22.0.1_sass@1.77.8_/node_modules/vite-plugin-progress/dist/index.mjs
"
;
// build/plugins/router.ts
import
ElegantVueRouter
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/@elegant-router+vue@0.3.8/node_modules/@elegant-router/vue/dist/vite.mjs
"
;
function
setupElegantRouter
()
{
return
ElegantVueRouter
({
layouts
:
{
base
:
"
src/layouts/base-layout/index.vue
"
,
blank
:
"
src/layouts/blank-layout/index.vue
"
},
customRoutes
:
{
names
:
[
"
exception_403
"
,
"
exception_404
"
,
"
exception_500
"
,
"
document_project
"
,
"
document_project-link
"
,
"
document_vue
"
,
"
document_vite
"
,
"
document_unocss
"
,
"
document_naive
"
,
"
document_antd
"
]
},
routePathTransformer
(
routeName
,
routePath
)
{
const
key
=
routeName
;
if
(
key
===
"
login
"
)
{
const
modules
=
[
"
pwd-login
"
,
"
code-login
"
,
"
register
"
,
"
reset-pwd
"
,
"
bind-wechat
"
];
const
moduleReg
=
modules
.
join
(
"
|
"
);
return
`/login/:module(
${
moduleReg
}
)?`
;
}
return
routePath
;
},
onRouteMetaGen
(
routeName
)
{
const
key
=
routeName
;
const
constantRoutes
=
[
"
login
"
,
"
403
"
,
"
404
"
,
"
500
"
];
const
meta
=
{
title
:
key
,
i18nKey
:
`route.
${
key
}
`
};
if
(
constantRoutes
.
includes
(
key
))
{
meta
.
constant
=
true
;
}
return
meta
;
}
});
}
// build/plugins/unocss.ts
import
process
from
"
node:process
"
;
import
path
from
"
node:path
"
;
import
unocss
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/@unocss+vite@0.61.9_rollup@4.19.1_vite@5.3.5_@types+node@22.0.1_sass@1.77.8_/node_modules/@unocss/vite/dist/index.mjs
"
;
import
presetIcons
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/@unocss+preset-icons@0.61.9/node_modules/@unocss/preset-icons/dist/index.mjs
"
;
import
{
FileSystemIconLoader
}
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/@iconify+utils@2.1.29/node_modules/@iconify/utils/lib/loader/node-loaders.mjs
"
;
function
setupUnocss
(
viteEnv
)
{
const
{
VITE_ICON_PREFIX
,
VITE_ICON_LOCAL_PREFIX
}
=
viteEnv
;
const
localIconPath
=
path
.
join
(
process
.
cwd
(),
"
src/assets/svg-icon
"
);
const
collectionName
=
VITE_ICON_LOCAL_PREFIX
.
replace
(
`
${
VITE_ICON_PREFIX
}
-`
,
""
);
return
unocss
({
presets
:
[
presetIcons
({
prefix
:
`
${
VITE_ICON_PREFIX
}
-`
,
scale
:
1
,
extraProperties
:
{
display
:
"
inline-block
"
},
collections
:
{
[
collectionName
]:
FileSystemIconLoader
(
localIconPath
,
(
svg
)
=>
svg
.
replace
(
/^<svg
\s
/
,
'
<svg width="1em" height="1em"
'
)
)
},
warn
:
true
})
]
});
}
// build/plugins/unplugin.ts
import
process2
from
"
node:process
"
;
import
path2
from
"
node:path
"
;
import
Icons
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/unplugin-icons@0.19.1_@vue+compiler-sfc@3.4.35/node_modules/unplugin-icons/dist/vite.js
"
;
import
IconsResolver
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/unplugin-icons@0.19.1_@vue+compiler-sfc@3.4.35/node_modules/unplugin-icons/dist/resolver.js
"
;
import
Components
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/unplugin-vue-components@0.27.3_@babel+parser@7.25.0_rollup@4.19.1_vue@3.4.35_typescript@5.5.4_/node_modules/unplugin-vue-components/dist/vite.js
"
;
import
{
AntDesignVueResolver
,
NaiveUiResolver
}
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/unplugin-vue-components@0.27.3_@babel+parser@7.25.0_rollup@4.19.1_vue@3.4.35_typescript@5.5.4_/node_modules/unplugin-vue-components/dist/resolvers.js
"
;
import
{
FileSystemIconLoader
as
FileSystemIconLoader2
}
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/unplugin-icons@0.19.1_@vue+compiler-sfc@3.4.35/node_modules/unplugin-icons/dist/loaders.js
"
;
import
{
createSvgIconsPlugin
}
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/vite-plugin-svg-icons@2.0.1_vite@5.3.5_@types+node@22.0.1_sass@1.77.8_/node_modules/vite-plugin-svg-icons/dist/index.mjs
"
;
function
setupUnplugin
(
viteEnv
)
{
const
{
VITE_ICON_PREFIX
,
VITE_ICON_LOCAL_PREFIX
}
=
viteEnv
;
const
localIconPath
=
path2
.
join
(
process2
.
cwd
(),
"
src/assets/svg-icon
"
);
const
collectionName
=
VITE_ICON_LOCAL_PREFIX
.
replace
(
`
${
VITE_ICON_PREFIX
}
-`
,
""
);
const
plugins
=
[
Icons
({
compiler
:
"
vue3
"
,
customCollections
:
{
[
collectionName
]:
FileSystemIconLoader2
(
localIconPath
,
(
svg
)
=>
svg
.
replace
(
/^<svg
\s
/
,
'
<svg width="1em" height="1em"
'
)
)
},
scale
:
1
,
defaultClass
:
"
inline-block
"
}),
Components
({
dts
:
"
src/typings/components.d.ts
"
,
types
:
[{
from
:
"
vue-router
"
,
names
:
[
"
RouterLink
"
,
"
RouterView
"
]
}],
resolvers
:
[
AntDesignVueResolver
({
importStyle
:
false
}),
NaiveUiResolver
(),
IconsResolver
({
customCollections
:
[
collectionName
],
componentPrefix
:
VITE_ICON_PREFIX
})
]
}),
createSvgIconsPlugin
({
iconDirs
:
[
localIconPath
],
symbolId
:
`
${
VITE_ICON_LOCAL_PREFIX
}
-[dir]-[name]`
,
inject
:
"
body-last
"
,
customDomId
:
"
__SVG_ICON_LOCAL__
"
})
];
return
plugins
;
}
// build/plugins/html.ts
function
setupHtmlPlugin
(
buildTime
)
{
const
plugin
=
{
name
:
"
html-plugin
"
,
apply
:
"
build
"
,
transformIndexHtml
(
html
)
{
return
html
.
replace
(
"
<head>
"
,
`<head>
<meta name="buildTime" content="
${
buildTime
}
">`
);
}
};
return
plugin
;
}
// build/plugins/index.ts
function
setupVitePlugins
(
viteEnv
,
buildTime
)
{
const
plugins
=
[
vue
({
script
:
{
defineModel
:
true
}
}),
vueJsx
(),
VueDevtools
(),
setupElegantRouter
(),
setupUnocss
(
viteEnv
),
...
setupUnplugin
(
viteEnv
),
progress
(),
setupHtmlPlugin
(
buildTime
)
];
return
plugins
;
}
// src/utils/service.ts
function
createServiceConfig
(
env
)
{
const
{
VITE_SERVICE_BASE_URL
,
VITE_OTHER_SERVICE_BASE_URL
}
=
env
;
let
other
=
{};
try
{
other
=
JSON
.
parse
(
VITE_OTHER_SERVICE_BASE_URL
);
}
catch
(
error
)
{
}
console
.
error
(
"
VITE_OTHER_SERVICE_BASE_URL is not a valid JSON string
"
);
const
httpConfig
=
{
baseURL
:
VITE_SERVICE_BASE_URL
,
other
};
const
otherHttpKeys
=
Object
.
keys
(
httpConfig
.
other
);
const
otherConfig
=
otherHttpKeys
.
map
((
key
)
=>
{
return
{
key
,
baseURL
:
httpConfig
.
other
[
key
],
proxyPattern
:
createProxyPattern
(
key
)
};
});
const
config
=
{
baseURL
:
httpConfig
.
baseURL
,
proxyPattern
:
createProxyPattern
(),
other
:
otherConfig
};
return
config
;
}
function
createProxyPattern
(
key
)
{
if
(
!
key
)
{
return
"
/proxy-default
"
;
}
return
`/proxy-
${
key
}
`
;
}
// build/config/proxy.ts
function
createViteProxy
(
env
,
isDev
)
{
const
isEnableHttpProxy
=
isDev
&&
env
.
VITE_HTTP_PROXY
===
"
Y
"
;
if
(
!
isEnableHttpProxy
)
return
void
0
;
const
{
baseURL
,
proxyPattern
,
other
}
=
createServiceConfig
(
env
);
const
proxy
=
createProxyItem
({
baseURL
,
proxyPattern
});
console
.
log
(
"
\
u5F53
\
u524D
\
u4EE3
\
u7406
\
u9879
\
u76EE
"
,
proxy
);
other
.
forEach
((
item
)
=>
{
Object
.
assign
(
proxy
,
createProxyItem
(
item
));
});
return
proxy
;
}
function
createProxyItem
(
item
)
{
console
.
log
(
"
createProxyItem
\
u521B
\
u5EFA
\
u4EE3
\
u7406
\
u9879
\
u76EE
"
,
item
);
const
proxy
=
{};
proxy
[
item
.
proxyPattern
]
=
{
target
:
item
.
baseURL
,
changeOrigin
:
true
,
rewrite
:
(
path3
)
=>
path3
.
replace
(
new
RegExp
(
`^
${
item
.
proxyPattern
}
`
),
""
)
};
return
proxy
;
}
// build/config/time.ts
import
dayjs
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/dayjs@1.11.12/node_modules/dayjs/dayjs.min.js
"
;
import
utc
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/dayjs@1.11.12/node_modules/dayjs/plugin/utc.js
"
;
import
timezone
from
"
file:///F:/soybean-admin-example/node_modules/.pnpm/dayjs@1.11.12/node_modules/dayjs/plugin/timezone.js
"
;
function
getBuildTime
()
{
dayjs
.
extend
(
utc
);
dayjs
.
extend
(
timezone
);
const
buildTime
=
dayjs
.
tz
(
Date
.
now
(),
"
Asia/Shanghai
"
).
format
(
"
YYYY-MM-DD HH:mm:ss
"
);
return
buildTime
;
}
// vite.config.ts
var
__vite_injected_original_import_meta_url
=
"
file:///F:/soybean-admin-example/vite.config.ts
"
;
var
proxyTarget
=
"
http://192.168.1.68:9996
"
;
var
videdUrl
=
"
ws://192.168.1.221:9999
"
;
var
apiUrl
=
"
http://192.168.1.120:9995
"
;
var
wsUrl
=
"
ws://192.168.1.120:9995
"
;
var
vite_config_default
=
defineConfig
((
configEnv
)
=>
{
const
viteEnv
=
loadEnv
(
configEnv
.
mode
,
process3
.
cwd
());
const
buildTime
=
getBuildTime
();
return
{
base
:
viteEnv
.
VITE_BASE_URL
,
resolve
:
{
alias
:
{
"
~
"
:
fileURLToPath
(
new
URL
(
"
./
"
,
__vite_injected_original_import_meta_url
)),
"
@
"
:
fileURLToPath
(
new
URL
(
"
./src
"
,
__vite_injected_original_import_meta_url
))
}
},
css
:
{
preprocessorOptions
:
{
scss
:
{
additionalData
:
`@use "./src/styles/scss/global.scss" as *;`
}
}
},
plugins
:
setupVitePlugins
(
viteEnv
,
buildTime
),
define
:
{
BUILD_TIME
:
JSON
.
stringify
(
buildTime
)
},
server
:
{
host
:
"
0.0.0.0
"
,
port
:
9527
,
open
:
true
,
// 集成别人封装的代理项 & 晶合项目的代理项
proxy
:
{
...
createViteProxy
(
viteEnv
,
configEnv
.
command
===
"
serve
"
),
// '/menus': 'http://192.168.1.102:9995/menus',
// '/menus': 'http://192.168.1.173:10000/menus'
"
/v1
"
:
{
target
:
proxyTarget
,
changeOrigin
:
true
}
},
fs
:
{
cachedChecks
:
false
}
},
preview
:
{
port
:
9725
},
build
:
{
reportCompressedSize
:
false
,
sourcemap
:
viteEnv
.
VITE_SOURCE_MAP
===
"
Y
"
,
commonjsOptions
:
{
ignoreTryCatch
:
false
}
}
};
});
export
{
apiUrl
,
vite_config_default
as
default
,
proxyTarget
,
videdUrl
,
wsUrl
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiLCAiYnVpbGQvcGx1Z2lucy9pbmRleC50cyIsICJidWlsZC9wbHVnaW5zL3JvdXRlci50cyIsICJidWlsZC9wbHVnaW5zL3Vub2Nzcy50cyIsICJidWlsZC9wbHVnaW5zL3VucGx1Z2luLnRzIiwgImJ1aWxkL3BsdWdpbnMvaHRtbC50cyIsICJzcmMvdXRpbHMvc2VydmljZS50cyIsICJidWlsZC9jb25maWcvcHJveHkudHMiLCAiYnVpbGQvY29uZmlnL3RpbWUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJGOlxcXFxzb3liZWFuLWFkbWluLWV4YW1wbGVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkY6XFxcXHNveWJlYW4tYWRtaW4tZXhhbXBsZVxcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRjovc295YmVhbi1hZG1pbi1leGFtcGxlL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCB7IFVSTCwgZmlsZVVSTFRvUGF0aCB9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCB7IGRlZmluZUNvbmZpZywgbG9hZEVudiB9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHsgc2V0dXBWaXRlUGx1Z2lucyB9IGZyb20gJy4vYnVpbGQvcGx1Z2lucyc7XG5pbXBvcnQgeyBjcmVhdGVWaXRlUHJveHksIGdldEJ1aWxkVGltZSB9IGZyb20gJy4vYnVpbGQvY29uZmlnJztcblxuZXhwb3J0IGNvbnN0IHByb3h5VGFyZ2V0ID0gJ2h0dHA6Ly8xOTIuMTY4LjEuNjg6OTk5Nic7XG4vLyBleHBvcnQgY29uc3QgcHJveHlUYXJnZXQgPSAnaHR0cDovLzE5Mi4xNjguMS4xMTk6OTk5Nic7XG5cblxuLy8gXHU4OUM2XHU5ODkxXHU1NzMwXHU1NzQwXG5leHBvcnQgY29uc3QgdmlkZWRVcmwgPSAnd3M6Ly8xOTIuMTY4LjEuMjIxOjk5OTknO1xuLy8gXHU1NkZBXHU1QjlBXHU2M0E1XHU1M0UzXHU1NzMwXHU1NzQwXG5leHBvcnQgY29uc3QgYXBpVXJsID0gJ2h0dHA6Ly8xOTIuMTY4LjEuMTIwOjk5OTUnO1xuLy8gV1MgXHU1NzMwXHU1NzQwXG5leHBvcnQgY29uc3Qgd3NVcmwgPSAnd3M6Ly8xOTIuMTY4LjEuMTIwOjk5OTUnO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZyhjb25maWdFbnYgPT4ge1xuICBjb25zdCB2aXRlRW52ID0gbG9hZEVudihjb25maWdFbnYubW9kZSwgcHJvY2Vzcy5jd2QoKSkgYXMgdW5rbm93biBhcyBFbnYuSW1wb3J0TWV0YTtcblxuICBjb25zdCBidWlsZFRpbWUgPSBnZXRCdWlsZFRpbWUoKTtcblxuICByZXR1cm4ge1xuICAgIGJhc2U6IHZpdGVFbnYuVklURV9CQVNFX1VSTCxcbiAgICByZXNvbHZlOiB7XG4gICAgICBhbGlhczoge1xuICAgICAgICAnfic6IGZpbGVVUkxUb1BhdGgobmV3IFVSTCgnLi8nLCBpbXBvcnQubWV0YS51cmwpKSxcbiAgICAgICAgJ0AnOiBmaWxlVVJMVG9QYXRoKG5ldyBVUkwoJy4vc3JjJywgaW1wb3J0Lm1ldGEudXJsKSlcbiAgICAgIH1cbiAgICB9LFxuICAgIGNzczoge1xuICAgICAgcHJlcHJvY2Vzc29yT3B0aW9uczoge1xuICAgICAgICBzY3NzOiB7XG4gICAgICAgICAgYWRkaXRpb25hbERhdGE6IGBAdXNlIFwiLi9zcmMvc3R5bGVzL3Njc3MvZ2xvYmFsLnNjc3NcIiBhcyAqO2BcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgcGx1Z2luczogc2V0dXBWaXRlUGx1Z2lucyh2aXRlRW52LCBidWlsZFRpbWUpLFxuICAgIGRlZmluZToge1xuICAgICAgQlVJTERfVElNRTogSlNPTi5zdHJpbmdpZnkoYnVpbGRUaW1lKVxuICAgIH0sXG4gICAgc2VydmVyOiB7XG4gICAgICBob3N0OiAnMC4wLjAuMCcsXG4gICAgICBwb3J0OiA5NTI3LFxuICAgICAgb3BlbjogdHJ1ZSxcbiAgICAgIC8vIFx1OTZDNlx1NjIxMFx1NTIyQlx1NEVCQVx1NUMwMVx1ODhDNVx1NzY4NFx1NEVFM1x1NzQwNlx1OTg3OSAmIFx1NjY3Nlx1NTQwOFx1OTg3OVx1NzZFRVx1NzY4NFx1NEVFM1x1NzQwNlx1OTg3OVxuICAgICAgcHJveHk6IHtcbiAgICAgICAgLi4uY3JlYXRlVml0ZVByb3h5KHZpdGVFbnYsIGNvbmZpZ0Vudi5jb21tYW5kID09PSAnc2VydmUnKSxcbiAgICAgICAgLy8gJy9tZW51cyc6ICdodHRwOi8vMTkyLjE2OC4xLjEwMjo5OTk1L21lbnVzJyxcbiAgICAgICAgLy8gJy9tZW51cyc6ICdodHRwOi8vMTkyLjE2OC4xLjE3MzoxMDAwMC9tZW51cydcbiAgICAgICAgJy92MSc6IHtcbiAgICAgICAgICB0YXJnZXQ6IHByb3h5VGFyZ2V0LFxuICAgICAgICAgIGNoYW5nZU9yaWdpbjogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZnM6IHtcbiAgICAgICAgY2FjaGVkQ2hlY2tzOiBmYWxzZVxuICAgICAgfVxuICAgIH0sXG4gICAgcHJldmlldzoge1xuICAgICAgcG9ydDogOTcyNVxuICAgIH0sXG4gICAgYnVpbGQ6IHtcbiAgICAgIHJlcG9ydENvbXByZXNzZWRTaXplOiBmYWxzZSxcbiAgICAgIHNvdXJjZW1hcDogdml0ZUVudi5WSVRFX1NPVVJDRV9NQVAgPT09ICdZJyxcbiAgICAgIGNvbW1vbmpzT3B0aW9uczoge1xuICAgICAgICBpZ25vcmVUcnlDYXRjaDogZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gIH07XG59KTtcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRjpcXFxcc295YmVhbi1hZG1pbi1leGFtcGxlXFxcXGJ1aWxkXFxcXHBsdWdpbnNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkY6XFxcXHNveWJlYW4tYWRtaW4tZXhhbXBsZVxcXFxidWlsZFxcXFxwbHVnaW5zXFxcXGluZGV4LnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9GOi9zb3liZWFuLWFkbWluLWV4YW1wbGUvYnVpbGQvcGx1Z2lucy9pbmRleC50c1wiO2ltcG9ydCB0eXBlIHsgUGx1Z2luT3B0aW9uIH0gZnJvbSAndml0ZSc7XG5pbXBvcnQgdnVlIGZyb20gJ0B2aXRlanMvcGx1Z2luLXZ1ZSc7XG5pbXBvcnQgdnVlSnN4IGZyb20gJ0B2aXRlanMvcGx1Z2luLXZ1ZS1qc3gnO1xuaW1wb3J0IFZ1ZURldnRvb2xzIGZyb20gJ3ZpdGUtcGx1Z2luLXZ1ZS1kZXZ0b29scyc7XG5pbXBvcnQgcHJvZ3Jlc3MgZnJvbSAndml0ZS1wbHVnaW4tcHJvZ3Jlc3MnO1xuaW1wb3J0IHsgc2V0dXBFbGVnYW50Um91dGVyIH0gZnJvbSAnLi9yb3V0ZXInO1xuaW1wb3J0IHsgc2V0dXBVbm9jc3MgfSBmcm9tICcuL3Vub2Nzcyc7XG5pbXBvcnQgeyBzZXR1cFVucGx1Z2luIH0gZnJvbSAnLi91bnBsdWdpbic7XG5pbXBvcnQgeyBzZXR1cEh0bWxQbHVnaW4gfSBmcm9tICcuL2h0bWwnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBWaXRlUGx1Z2lucyh2aXRlRW52OiBFbnYuSW1wb3J0TWV0YSwgYnVpbGRUaW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgcGx1Z2luczogUGx1Z2luT3B0aW9uID0gW1xuICAgIHZ1ZSh7XG4gICAgICBzY3JpcHQ6IHtcbiAgICAgICAgZGVmaW5lTW9kZWw6IHRydWVcbiAgICAgIH1cbiAgICB9KSxcbiAgICB2dWVKc3goKSxcbiAgICBWdWVEZXZ0b29scygpLFxuICAgIHNldHVwRWxlZ2FudFJvdXRlcigpLFxuICAgIHNldHVwVW5vY3NzKHZpdGVFbnYpLFxuICAgIC4uLnNldHVwVW5wbHVnaW4odml0ZUVudiksXG4gICAgcHJvZ3Jlc3MoKSxcbiAgICBzZXR1cEh0bWxQbHVnaW4oYnVpbGRUaW1lKVxuICBdO1xuXG4gIHJldHVybiBwbHVnaW5zO1xufVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJGOlxcXFxzb3liZWFuLWFkbWluLWV4YW1wbGVcXFxcYnVpbGRcXFxccGx1Z2luc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRjpcXFxcc295YmVhbi1hZG1pbi1leGFtcGxlXFxcXGJ1aWxkXFxcXHBsdWdpbnNcXFxccm91dGVyLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9GOi9zb3liZWFuLWFkbWluLWV4YW1wbGUvYnVpbGQvcGx1Z2lucy9yb3V0ZXIudHNcIjtpbXBvcnQgdHlwZSB7IFJvdXRlTWV0YSB9IGZyb20gJ3Z1ZS1yb3V0ZXInO1xuaW1wb3J0IEVsZWdhbnRWdWVSb3V0ZXIgZnJvbSAnQGVsZWdhbnQtcm91dGVyL3Z1ZS92aXRlJztcbmltcG9ydCB0eXBlIHsgUm91dGVLZXkgfSBmcm9tICdAZWxlZ2FudC1yb3V0ZXIvdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBFbGVnYW50Um91dGVyKCkge1xuICByZXR1cm4gRWxlZ2FudFZ1ZVJvdXRlcih7XG4gICAgbGF5b3V0czoge1xuICAgICAgYmFzZTogJ3NyYy9sYXlvdXRzL2Jhc2UtbGF5b3V0L2luZGV4LnZ1ZScsXG4gICAgICBibGFuazogJ3NyYy9sYXlvdXRzL2JsYW5rLWxheW91dC9pbmRleC52dWUnXG4gICAgfSxcbiAgICBjdXN0b21Sb3V0ZXM6IHtcbiAgICAgIG5hbWVzOiBbXG4gICAgICAgICdleGNlcHRpb25fNDAzJyxcbiAgICAgICAgJ2V4Y2VwdGlvbl80MDQnLFxuICAgICAgICAnZXhjZXB0aW9uXzUwMCcsXG4gICAgICAgICdkb2N1bWVudF9wcm9qZWN0JyxcbiAgICAgICAgJ2RvY3VtZW50X3Byb2plY3QtbGluaycsXG4gICAgICAgICdkb2N1bWVudF92dWUnLFxuICAgICAgICAnZG9jdW1lbnRfdml0ZScsXG4gICAgICAgICdkb2N1bWVudF91bm9jc3MnLFxuICAgICAgICAnZG9jdW1lbnRfbmFpdmUnLFxuICAgICAgICAnZG9jdW1lbnRfYW50ZCdcbiAgICAgIF1cbiAgICB9LFxuICAgIHJvdXRlUGF0aFRyYW5zZm9ybWVyKHJvdXRlTmFtZSwgcm91dGVQYXRoKSB7XG4gICAgICBjb25zdCBrZXkgPSByb3V0ZU5hbWUgYXMgUm91dGVLZXk7XG5cbiAgICAgIGlmIChrZXkgPT09ICdsb2dpbicpIHtcbiAgICAgICAgY29uc3QgbW9kdWxlczogVW5pb25LZXkuTG9naW5Nb2R1bGVbXSA9IFsncHdkLWxvZ2luJywgJ2NvZGUtbG9naW4nLCAncmVnaXN0ZXInLCAncmVzZXQtcHdkJywgJ2JpbmQtd2VjaGF0J107XG5cbiAgICAgICAgY29uc3QgbW9kdWxlUmVnID0gbW9kdWxlcy5qb2luKCd8Jyk7XG5cbiAgICAgICAgcmV0dXJuIGAvbG9naW4vOm1vZHVsZSgke21vZHVsZVJlZ30pP2A7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByb3V0ZVBhdGg7XG4gICAgfSxcbiAgICBvblJvdXRlTWV0YUdlbihyb3V0ZU5hbWUpIHtcbiAgICAgIGNvbnN0IGtleSA9IHJvdXRlTmFtZSBhcyBSb3V0ZUtleTtcblxuICAgICAgY29uc3QgY29uc3RhbnRSb3V0ZXM6IFJvdXRlS2V5W10gPSBbJ2xvZ2luJywgJzQwMycsICc0MDQnLCAnNTAwJ107XG5cbiAgICAgIGNvbnN0IG1ldGE6IFBhcnRpYWw8Um91dGVNZXRhPiA9IHtcbiAgICAgICAgdGl0bGU6IGtleSxcbiAgICAgICAgaTE4bktleTogYHJvdXRlLiR7a2V5fWAgYXMgQXBwLkkxOG4uSTE4bktleVxuICAgICAgfTtcblxuICAgICAgaWYgKGNvbnN0YW50Um91dGVzLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgbWV0YS5jb25zdGFudCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBtZXRhO1xuICAgIH1cbiAgfSk7XG59XG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkY6XFxcXHNveWJlYW4tYWRtaW4tZXhhbXBsZVxcXFxidWlsZFxcXFxwbHVnaW5zXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJGOlxcXFxzb3liZWFuLWFkbWluLWV4YW1wbGVcXFxcYnVpbGRcXFxccGx1Z2luc1xcXFx1bm9jc3MudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Y6L3NveWJlYW4tYWRtaW4tZXhhbXBsZS9idWlsZC9wbHVnaW5zL3Vub2Nzcy50c1wiO2ltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHVub2NzcyBmcm9tICdAdW5vY3NzL3ZpdGUnO1xuaW1wb3J0IHByZXNldEljb25zIGZyb20gJ0B1bm9jc3MvcHJlc2V0LWljb25zJztcbmltcG9ydCB7IEZpbGVTeXN0ZW1JY29uTG9hZGVyIH0gZnJvbSAnQGljb25pZnkvdXRpbHMvbGliL2xvYWRlci9ub2RlLWxvYWRlcnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBVbm9jc3Modml0ZUVudjogRW52LkltcG9ydE1ldGEpIHtcbiAgY29uc3QgeyBWSVRFX0lDT05fUFJFRklYLCBWSVRFX0lDT05fTE9DQUxfUFJFRklYIH0gPSB2aXRlRW52O1xuXG4gIGNvbnN0IGxvY2FsSWNvblBhdGggPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgJ3NyYy9hc3NldHMvc3ZnLWljb24nKTtcblxuICAvKiogVGhlIG5hbWUgb2YgdGhlIGxvY2FsIGljb24gY29sbGVjdGlvbiAqL1xuICBjb25zdCBjb2xsZWN0aW9uTmFtZSA9IFZJVEVfSUNPTl9MT0NBTF9QUkVGSVgucmVwbGFjZShgJHtWSVRFX0lDT05fUFJFRklYfS1gLCAnJyk7XG5cbiAgcmV0dXJuIHVub2Nzcyh7XG4gICAgcHJlc2V0czogW1xuICAgICAgcHJlc2V0SWNvbnMoe1xuICAgICAgICBwcmVmaXg6IGAke1ZJVEVfSUNPTl9QUkVGSVh9LWAsXG4gICAgICAgIHNjYWxlOiAxLFxuICAgICAgICBleHRyYVByb3BlcnRpZXM6IHtcbiAgICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJ1xuICAgICAgICB9LFxuICAgICAgICBjb2xsZWN0aW9uczoge1xuICAgICAgICAgIFtjb2xsZWN0aW9uTmFtZV06IEZpbGVTeXN0ZW1JY29uTG9hZGVyKGxvY2FsSWNvblBhdGgsIHN2ZyA9PlxuICAgICAgICAgICAgc3ZnLnJlcGxhY2UoL148c3ZnXFxzLywgJzxzdmcgd2lkdGg9XCIxZW1cIiBoZWlnaHQ9XCIxZW1cIiAnKVxuICAgICAgICAgIClcbiAgICAgICAgfSxcbiAgICAgICAgd2FybjogdHJ1ZVxuICAgICAgfSlcbiAgICBdXG4gIH0pO1xufVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJGOlxcXFxzb3liZWFuLWFkbWluLWV4YW1wbGVcXFxcYnVpbGRcXFxccGx1Z2luc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRjpcXFxcc295YmVhbi1hZG1pbi1leGFtcGxlXFxcXGJ1aWxkXFxcXHBsdWdpbnNcXFxcdW5wbHVnaW4udHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Y6L3NveWJlYW4tYWRtaW4tZXhhbXBsZS9idWlsZC9wbHVnaW5zL3VucGx1Z2luLnRzXCI7aW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgdHlwZSB7IFBsdWdpbk9wdGlvbiB9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IEljb25zIGZyb20gJ3VucGx1Z2luLWljb25zL3ZpdGUnO1xuaW1wb3J0IEljb25zUmVzb2x2ZXIgZnJvbSAndW5wbHVnaW4taWNvbnMvcmVzb2x2ZXInO1xuaW1wb3J0IENvbXBvbmVudHMgZnJvbSAndW5wbHVnaW4tdnVlLWNvbXBvbmVudHMvdml0ZSc7XG5pbXBvcnQgeyBBbnREZXNpZ25WdWVSZXNvbHZlciwgTmFpdmVVaVJlc29sdmVyIH0gZnJvbSAndW5wbHVnaW4tdnVlLWNvbXBvbmVudHMvcmVzb2x2ZXJzJztcbmltcG9ydCB7IEZpbGVTeXN0ZW1JY29uTG9hZGVyIH0gZnJvbSAndW5wbHVnaW4taWNvbnMvbG9hZGVycyc7XG5pbXBvcnQgeyBjcmVhdGVTdmdJY29uc1BsdWdpbiB9IGZyb20gJ3ZpdGUtcGx1Z2luLXN2Zy1pY29ucyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cFVucGx1Z2luKHZpdGVFbnY6IEVudi5JbXBvcnRNZXRhKSB7XG4gIGNvbnN0IHsgVklURV9JQ09OX1BSRUZJWCwgVklURV9JQ09OX0xPQ0FMX1BSRUZJWCB9ID0gdml0ZUVudjtcblxuICBjb25zdCBsb2NhbEljb25QYXRoID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksICdzcmMvYXNzZXRzL3N2Zy1pY29uJyk7XG5cbiAgLyoqIFRoZSBuYW1lIG9mIHRoZSBsb2NhbCBpY29uIGNvbGxlY3Rpb24gKi9cbiAgY29uc3QgY29sbGVjdGlvbk5hbWUgPSBWSVRFX0lDT05fTE9DQUxfUFJFRklYLnJlcGxhY2UoYCR7VklURV9JQ09OX1BSRUZJWH0tYCwgJycpO1xuXG4gIGNvbnN0IHBsdWdpbnM6IFBsdWdpbk9wdGlvbltdID0gW1xuICAgIEljb25zKHtcbiAgICAgIGNvbXBpbGVyOiAndnVlMycsXG4gICAgICBjdXN0b21Db2xsZWN0aW9uczoge1xuICAgICAgICBbY29sbGVjdGlvbk5hbWVdOiBGaWxlU3lzdGVtSWNvbkxvYWRlcihsb2NhbEljb25QYXRoLCBzdmcgPT5cbiAgICAgICAgICBzdmcucmVwbGFjZSgvXjxzdmdcXHMvLCAnPHN2ZyB3aWR0aD1cIjFlbVwiIGhlaWdodD1cIjFlbVwiICcpXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICBzY2FsZTogMSxcbiAgICAgIGRlZmF1bHRDbGFzczogJ2lubGluZS1ibG9jaydcbiAgICB9KSxcbiAgICBDb21wb25lbnRzKHtcbiAgICAgIGR0czogJ3NyYy90eXBpbmdzL2NvbXBvbmVudHMuZC50cycsXG4gICAgICB0eXBlczogW3sgZnJvbTogJ3Z1ZS1yb3V0ZXInLCBuYW1lczogWydSb3V0ZXJMaW5rJywgJ1JvdXRlclZpZXcnXSB9XSxcbiAgICAgIHJlc29sdmVyczogW1xuICAgICAgICBBbnREZXNpZ25WdWVSZXNvbHZlcih7XG4gICAgICAgICAgaW1wb3J0U3R5bGU6IGZhbHNlXG4gICAgICAgIH0pLFxuICAgICAgICBOYWl2ZVVpUmVzb2x2ZXIoKSxcbiAgICAgICAgSWNvbnNSZXNvbHZlcih7IGN1c3RvbUNvbGxlY3Rpb25zOiBbY29sbGVjdGlvbk5hbWVdLCBjb21wb25lbnRQcmVmaXg6IFZJVEVfSUNPTl9QUkVGSVggfSlcbiAgICAgIF1cbiAgICB9KSxcbiAgICBjcmVhdGVTdmdJY29uc1BsdWdpbih7XG4gICAgICBpY29uRGlyczogW2xvY2FsSWNvblBhdGhdLFxuICAgICAgc3ltYm9sSWQ6IGAke1ZJVEVfSUNPTl9MT0NBTF9QUkVGSVh9LVtkaXJdLVtuYW1lXWAsXG4gICAgICBpbmplY3Q6ICdib2R5LWxhc3QnLFxuICAgICAgY3VzdG9tRG9tSWQ6ICdfX1NWR19JQ09OX0xPQ0FMX18nXG4gICAgfSlcbiAgXTtcblxuICByZXR1cm4gcGx1Z2lucztcbn1cbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRjpcXFxcc295YmVhbi1hZG1pbi1leGFtcGxlXFxcXGJ1aWxkXFxcXHBsdWdpbnNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkY6XFxcXHNveWJlYW4tYWRtaW4tZXhhbXBsZVxcXFxidWlsZFxcXFxwbHVnaW5zXFxcXGh0bWwudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Y6L3NveWJlYW4tYWRtaW4tZXhhbXBsZS9idWlsZC9wbHVnaW5zL2h0bWwudHNcIjtpbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ3ZpdGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBIdG1sUGx1Z2luKGJ1aWxkVGltZTogc3RyaW5nKSB7XG4gIGNvbnN0IHBsdWdpbjogUGx1Z2luID0ge1xuICAgIG5hbWU6ICdodG1sLXBsdWdpbicsXG4gICAgYXBwbHk6ICdidWlsZCcsXG4gICAgdHJhbnNmb3JtSW5kZXhIdG1sKGh0bWwpIHtcbiAgICAgIHJldHVybiBodG1sLnJlcGxhY2UoJzxoZWFkPicsIGA8aGVhZD5cXG4gICAgPG1ldGEgbmFtZT1cImJ1aWxkVGltZVwiIGNvbnRlbnQ9XCIke2J1aWxkVGltZX1cIj5gKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHBsdWdpbjtcbn1cbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRjpcXFxcc295YmVhbi1hZG1pbi1leGFtcGxlXFxcXHNyY1xcXFx1dGlsc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRjpcXFxcc295YmVhbi1hZG1pbi1leGFtcGxlXFxcXHNyY1xcXFx1dGlsc1xcXFxzZXJ2aWNlLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9GOi9zb3liZWFuLWFkbWluLWV4YW1wbGUvc3JjL3V0aWxzL3NlcnZpY2UudHNcIjsvKipcbiAqIENyZWF0ZSBzZXJ2aWNlIGNvbmZpZyBieSBjdXJyZW50IGVudlxuICpcbiAqIEBwYXJhbSBlbnYgVGhlIGN1cnJlbnQgZW52XG4gKi9cblxuXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZXJ2aWNlQ29uZmlnKGVudjogRW52LkltcG9ydE1ldGEpIHtcbiAgY29uc3QgeyBWSVRFX1NFUlZJQ0VfQkFTRV9VUkwsIFZJVEVfT1RIRVJfU0VSVklDRV9CQVNFX1VSTCB9ID0gZW52O1xuXG4gIGxldCBvdGhlciA9IHt9IGFzIFJlY29yZDxBcHAuU2VydmljZS5PdGhlckJhc2VVUkxLZXksIHN0cmluZz47XG4gIHRyeSB7XG4gICAgb3RoZXIgPSBKU09OLnBhcnNlKFZJVEVfT1RIRVJfU0VSVklDRV9CQVNFX1VSTCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgfSAgICBjb25zb2xlLmVycm9yKCdWSVRFX09USEVSX1NFUlZJQ0VfQkFTRV9VUkwgaXMgbm90IGEgdmFsaWQgSlNPTiBzdHJpbmcnKTtcblxuXG4gIGNvbnN0IGh0dHBDb25maWc6IEFwcC5TZXJ2aWNlLlNpbXBsZVNlcnZpY2VDb25maWcgPSB7XG4gICAgYmFzZVVSTDogVklURV9TRVJWSUNFX0JBU0VfVVJMLFxuICAgIG90aGVyXG4gIH07XG5cbiAgY29uc3Qgb3RoZXJIdHRwS2V5cyA9IE9iamVjdC5rZXlzKGh0dHBDb25maWcub3RoZXIpIGFzIEFwcC5TZXJ2aWNlLk90aGVyQmFzZVVSTEtleVtdO1xuXG4gIGNvbnN0IG90aGVyQ29uZmlnOiBBcHAuU2VydmljZS5PdGhlclNlcnZpY2VDb25maWdJdGVtW10gPSBvdGhlckh0dHBLZXlzLm1hcChrZXkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBrZXksXG4gICAgICBiYXNlVVJMOiBodHRwQ29uZmlnLm90aGVyW2tleV0sXG4gICAgICBwcm94eVBhdHRlcm46IGNyZWF0ZVByb3h5UGF0dGVybihrZXkpXG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3QgY29uZmlnOiBBcHAuU2VydmljZS5TZXJ2aWNlQ29uZmlnID0ge1xuICAgIGJhc2VVUkw6IGh0dHBDb25maWcuYmFzZVVSTCxcbiAgICBwcm94eVBhdHRlcm46IGNyZWF0ZVByb3h5UGF0dGVybigpLFxuICAgIG90aGVyOiBvdGhlckNvbmZpZ1xuICB9O1xuXG4gIHJldHVybiBjb25maWc7XG59XG5cbi8qKlxuICogZ2V0IGJhY2tlbmQgc2VydmljZSBiYXNlIHVybFxuICpcbiAqIEBwYXJhbSBlbnYgLSB0aGUgY3VycmVudCBlbnZcbiAqIEBwYXJhbSBpc1Byb3h5IC0gaWYgdXNlIHByb3h5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXJ2aWNlQmFzZVVSTChlbnY6IEVudi5JbXBvcnRNZXRhLCBpc1Byb3h5OiBib29sZWFuKSB7XG4gIGNvbnN0IHsgYmFzZVVSTCwgb3RoZXIgfSA9IGNyZWF0ZVNlcnZpY2VDb25maWcoZW52KTtcblxuICBjb25zdCBvdGhlckJhc2VVUkwgPSB7fSBhcyBSZWNvcmQ8QXBwLlNlcnZpY2UuT3RoZXJCYXNlVVJMS2V5LCBzdHJpbmc+O1xuXG4gIG90aGVyLmZvckVhY2goaXRlbSA9PiB7XG4gICAgb3RoZXJCYXNlVVJMW2l0ZW0ua2V5XSA9IGlzUHJveHkgPyBpdGVtLnByb3h5UGF0dGVybiA6IGl0ZW0uYmFzZVVSTDtcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBiYXNlVVJMOiBpc1Byb3h5ID8gY3JlYXRlUHJveHlQYXR0ZXJuKCkgOiBiYXNlVVJMLFxuICAgIG90aGVyQmFzZVVSTFxuICB9O1xufVxuXG4vKipcbiAqIEdldCBwcm94eSBwYXR0ZXJuIG9mIGJhY2tlbmQgc2VydmljZSBiYXNlIHVybFxuICpcbiAqIEBwYXJhbSBrZXkgSWYgbm90IHNldCwgd2lsbCB1c2UgdGhlIGRlZmF1bHQga2V5XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVByb3h5UGF0dGVybihrZXk/OiBBcHAuU2VydmljZS5PdGhlckJhc2VVUkxLZXkpIHtcbiAgaWYgKCFrZXkpIHtcbiAgICByZXR1cm4gJy9wcm94eS1kZWZhdWx0JztcbiAgfVxuXG4gIHJldHVybiBgL3Byb3h5LSR7a2V5fWA7XG59XG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkY6XFxcXHNveWJlYW4tYWRtaW4tZXhhbXBsZVxcXFxidWlsZFxcXFxjb25maWdcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkY6XFxcXHNveWJlYW4tYWRtaW4tZXhhbXBsZVxcXFxidWlsZFxcXFxjb25maWdcXFxccHJveHkudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Y6L3NveWJlYW4tYWRtaW4tZXhhbXBsZS9idWlsZC9jb25maWcvcHJveHkudHNcIjtpbXBvcnQgdHlwZSB7IFByb3h5T3B0aW9ucyB9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHsgY3JlYXRlU2VydmljZUNvbmZpZyB9IGZyb20gJy4uLy4uL3NyYy91dGlscy9zZXJ2aWNlJztcblxuLyoqXG4gKiBTZXQgaHR0cCBwcm94eVxuICpcbiAqIEBwYXJhbSBlbnYgLSBUaGUgY3VycmVudCBlbnZcbiAqIEBwYXJhbSBpc0RldiAtIElzIGRldmVsb3BtZW50IGVudmlyb25tZW50XG4gKi9cblxuLy8gXHU1MjFCXHU1RUZBIFZpdGUgXHU2NzBEXHU1MkExXHU0RUUzXHU3NDA2XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVml0ZVByb3h5KGVudjogRW52LkltcG9ydE1ldGEsIGlzRGV2OiBib29sZWFuKSB7XG4gIC8vIGVudiBcdTczQUZcdTU4ODNcdTUzRDhcdTkxQ0ZcdUZGMEMgXHU2NjJGXHU0RUMwXHU0RTQ4XHU3M0FGXHU1ODgzXG5cbiAgY29uc3QgaXNFbmFibGVIdHRwUHJveHkgPSBpc0RldiAmJiBlbnYuVklURV9IVFRQX1BST1hZID09PSAnWSc7XG5cbiAgaWYgKCFpc0VuYWJsZUh0dHBQcm94eSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICBjb25zdCB7IGJhc2VVUkwsIHByb3h5UGF0dGVybiwgb3RoZXIgfSA9IGNyZWF0ZVNlcnZpY2VDb25maWcoZW52KTtcblxuICBjb25zdCBwcm94eTogUmVjb3JkPHN0cmluZywgUHJveHlPcHRpb25zPiA9IGNyZWF0ZVByb3h5SXRlbSh7IGJhc2VVUkwsIHByb3h5UGF0dGVybiB9KTtcblxuICBjb25zb2xlLmxvZygnXHU1RjUzXHU1MjREXHU0RUUzXHU3NDA2XHU5ODc5XHU3NkVFJywgcHJveHkpO1xuXG4gIG90aGVyLmZvckVhY2goaXRlbSA9PiB7XG4gICAgT2JqZWN0LmFzc2lnbihwcm94eSwgY3JlYXRlUHJveHlJdGVtKGl0ZW0pKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHByb3h5O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVQcm94eUl0ZW0oaXRlbTogQXBwLlNlcnZpY2UuU2VydmljZUNvbmZpZ0l0ZW0pIHtcbiAgY29uc29sZS5sb2coJ2NyZWF0ZVByb3h5SXRlbSBcdTUyMUJcdTVFRkFcdTRFRTNcdTc0MDZcdTk4NzlcdTc2RUUnLCBpdGVtKTtcblxuICBjb25zdCBwcm94eTogUmVjb3JkPHN0cmluZywgUHJveHlPcHRpb25zPiA9IHt9O1xuXG4gIHByb3h5W2l0ZW0ucHJveHlQYXR0ZXJuXSA9IHtcbiAgICB0YXJnZXQ6IGl0ZW0uYmFzZVVSTCxcbiAgICBjaGFuZ2VPcmlnaW46IHRydWUsXG4gICAgcmV3cml0ZTogcGF0aCA9PiBwYXRoLnJlcGxhY2UobmV3IFJlZ0V4cChgXiR7aXRlbS5wcm94eVBhdHRlcm59YCksICcnKVxuICB9O1xuXG4gIHJldHVybiBwcm94eTtcbn1cbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRjpcXFxcc295YmVhbi1hZG1pbi1leGFtcGxlXFxcXGJ1aWxkXFxcXGNvbmZpZ1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRjpcXFxcc295YmVhbi1hZG1pbi1leGFtcGxlXFxcXGJ1aWxkXFxcXGNvbmZpZ1xcXFx0aW1lLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9GOi9zb3liZWFuLWFkbWluLWV4YW1wbGUvYnVpbGQvY29uZmlnL3RpbWUudHNcIjtpbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjJztcbmltcG9ydCB0aW1lem9uZSBmcm9tICdkYXlqcy9wbHVnaW4vdGltZXpvbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QnVpbGRUaW1lKCkge1xuICBkYXlqcy5leHRlbmQodXRjKTtcbiAgZGF5anMuZXh0ZW5kKHRpbWV6b25lKTtcblxuICBjb25zdCBidWlsZFRpbWUgPSBkYXlqcy50eihEYXRlLm5vdygpLCAnQXNpYS9TaGFuZ2hhaScpLmZvcm1hdCgnWVlZWS1NTS1ERCBISDptbTpzcycpO1xuXG4gIHJldHVybiBidWlsZFRpbWU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQThQLE9BQU9BLGNBQWE7QUFDbFIsU0FBUyxLQUFLLHFCQUFxQjtBQUNuQyxTQUFTLGNBQWMsZUFBZTs7O0FDRHRDLE9BQU8sU0FBUztBQUNoQixPQUFPLFlBQVk7QUFDbkIsT0FBTyxpQkFBaUI7QUFDeEIsT0FBTyxjQUFjOzs7QUNIckIsT0FBTyxzQkFBc0I7QUFHdEIsU0FBUyxxQkFBcUI7QUFDbkMsU0FBTyxpQkFBaUI7QUFBQSxJQUN0QixTQUFTO0FBQUEsTUFDUCxNQUFNO0FBQUEsTUFDTixPQUFPO0FBQUEsSUFDVDtBQUFBLElBQ0EsY0FBYztBQUFBLE1BQ1osT0FBTztBQUFBLFFBQ0w7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBQ0EscUJBQXFCLFdBQVcsV0FBVztBQUN6QyxZQUFNLE1BQU07QUFF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SyxJQUFJLEdBQUcsZUFBZSxFQUFFLE9BQU8scUJBQXFCO0FBRXBGLFNBQU87QUFDVDs7O0FSWDJKLElBQU0sMkNBQTJDO0FBTXJNLElBQU0sY0FBYztBQUtwQixJQUFNLFdBQVc7QUFFakIsSUFBTSxTQUFTO0FBRWYsSUFBTSxRQUFRO0FBR3JCLElBQU8sc0JBQVEsYUFBYSxlQUFhO0FBQ3ZDLFFBQU0sVUFBVSxRQUFRLFVBQVUsTUFBTUMsU0FBUSxJQUFJLENBQUM7QUFFckQsUUFBTSxZQUFZLGFBQWE7QUFFL0IsU0FBTztBQUFBLElBQ0wsTUFBTSxRQUFRO0FBQUEsSUFDZCxTQUFTO0FBQUEsTUFDUCxPQUFPO0FBQUEsUUFDTCxLQUFLLGNBQWMsSUFBSSxJQUFJLE1BQU0sd0NBQWUsQ0FBQztBQUFBLFFBQ2pELEtBQUssY0FBYyxJQUFJLElBQUksU0FBUyx3Q0FBZSxDQUFDO0FBQUEsTUFDdEQ7QUFBQSxJQUNGO0FBQUEsSUFDQSxLQUFLO0FBQUEsTUFDSCxxQkFBcUI7QUFBQSxRQUNuQixNQUFNO0FBQUEsVUFDSixnQkFBZ0I7QUFBQSxRQUNsQjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsSUFDQSxTQUFTLGlCQUFpQixTQUFTLFNBQVM7QUFBQSxJQUM1QyxRQUFRO0FBQUEsTUFDTixZQUFZLEtBQUssVUFBVSxTQUFTO0FBQUEsSUFDdEM7QUFBQSxJQUNBLFFBQVE7QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQTtBQUFBLE1BRU4sT0FBTztBQUFBLFFBQ0wsR0FBRyxnQkFBZ0IsU0FBUyxVQUFVLFlBQVksT0FBTztBQUFBO0FBQUE7QUFBQSxRQUd6RCxPQUFPO0FBQUEsVUFDTCxRQUFRO0FBQUEsVUFDUixjQUFjO0FBQUEsUUFDaEI7QUFBQSxNQUNGO0FBQUEsTUFDQSxJQUFJO0FBQUEsUUFDRixjQUFjO0FBQUEsTUFDaEI7QUFBQSxJQUNGO0FBQUEsSUFDQSxTQUFTO0FBQUEsTUFDUCxNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsT0FBTztBQUFBLE1BQ0wsc0JBQXNCO0FBQUEsTUFDdEIsV0FBVyxRQUFRLG9CQUFvQjtBQUFBLE1BQ3ZDLGlCQUFpQjtBQUFBLFFBQ2YsZ0JBQWdCO0FBQUEsTUFDbEI7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGLENBQUM7IiwKICAibmFtZXMiOiBbInByb2Nlc3MiLCAicHJvY2VzcyIsICJwYXRoIiwgIkZpbGVTeXN0ZW1JY29uTG9hZGVyIiwgInBhdGgiLCAicHJvY2VzcyIsICJGaWxlU3lzdGVtSWNvbkxvYWRlciIsICJwYXRoIiwgInByb2Nlc3MiXQp9Cg==
vite.config.ts.timestamp-1740122963479-f65ffad1dbb92.mjs
deleted
100644 → 0
View file @
a9038b00
// vite.config.ts
import
process3
from
"
node:process
"
;
import
{
URL
,
fileURLToPath
}
from
"
node:url
"
;
import
{
defineConfig
,
loadEnv
}
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/vite@5.3.5_@types+node@22.0.1_sass@1.77.8/node_modules/vite/dist/node/index.js
"
;
// build/plugins/index.ts
import
vue
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/@vitejs+plugin-vue@5.1.1_vi_01300163138d99939bda63065f555de2/node_modules/@vitejs/plugin-vue/dist/index.mjs
"
;
import
vueJsx
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/@vitejs+plugin-vue-jsx@4.0._16ebef93e020e05b44527342356d5093/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs
"
;
import
VueDevtools
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/vite-plugin-vue-devtools@7._9611d6832f3ead75846d24563c89710e/node_modules/vite-plugin-vue-devtools/dist/vite.mjs
"
;
import
progress
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/vite-plugin-progress@0.0.7__184575f36ff902dcde273e93b2ab5a8e/node_modules/vite-plugin-progress/dist/index.mjs
"
;
// build/plugins/router.ts
import
ElegantVueRouter
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/@elegant-router+vue@0.3.8/node_modules/@elegant-router/vue/dist/vite.mjs
"
;
function
setupElegantRouter
()
{
return
ElegantVueRouter
({
layouts
:
{
base
:
"
src/layouts/base-layout/index.vue
"
,
blank
:
"
src/layouts/blank-layout/index.vue
"
},
customRoutes
:
{
names
:
[
"
exception_403
"
,
"
exception_404
"
,
"
exception_500
"
,
"
document_project
"
,
"
document_project-link
"
,
"
document_vue
"
,
"
document_vite
"
,
"
document_unocss
"
,
"
document_naive
"
,
"
document_antd
"
]
},
routePathTransformer
(
routeName
,
routePath
)
{
const
key
=
routeName
;
if
(
key
===
"
login
"
)
{
const
modules
=
[
"
pwd-login
"
,
"
code-login
"
,
"
register
"
,
"
reset-pwd
"
,
"
bind-wechat
"
];
const
moduleReg
=
modules
.
join
(
"
|
"
);
return
`/login/:module(
${
moduleReg
}
)?`
;
}
return
routePath
;
},
onRouteMetaGen
(
routeName
)
{
const
key
=
routeName
;
const
constantRoutes
=
[
"
login
"
,
"
403
"
,
"
404
"
,
"
500
"
];
const
meta
=
{
title
:
key
,
i18nKey
:
`route.
${
key
}
`
};
if
(
constantRoutes
.
includes
(
key
))
{
meta
.
constant
=
true
;
}
return
meta
;
}
});
}
// build/plugins/unocss.ts
import
process
from
"
node:process
"
;
import
path
from
"
node:path
"
;
import
unocss
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/@unocss+vite@0.61.9_rollup@_a3a27a356cbc6aeaa827e74c6aec9617/node_modules/@unocss/vite/dist/index.mjs
"
;
import
presetIcons
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/@unocss+preset-icons@0.61.9/node_modules/@unocss/preset-icons/dist/index.mjs
"
;
import
{
FileSystemIconLoader
}
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/@iconify+utils@2.1.29/node_modules/@iconify/utils/lib/loader/node-loaders.mjs
"
;
function
setupUnocss
(
viteEnv
)
{
const
{
VITE_ICON_PREFIX
,
VITE_ICON_LOCAL_PREFIX
}
=
viteEnv
;
const
localIconPath
=
path
.
join
(
process
.
cwd
(),
"
src/assets/svg-icon
"
);
const
collectionName
=
VITE_ICON_LOCAL_PREFIX
.
replace
(
`
${
VITE_ICON_PREFIX
}
-`
,
""
);
return
unocss
({
presets
:
[
presetIcons
({
prefix
:
`
${
VITE_ICON_PREFIX
}
-`
,
scale
:
1
,
extraProperties
:
{
display
:
"
inline-block
"
},
collections
:
{
[
collectionName
]:
FileSystemIconLoader
(
localIconPath
,
(
svg
)
=>
svg
.
replace
(
/^<svg
\s
/
,
'
<svg width="1em" height="1em"
'
)
)
},
warn
:
true
})
]
});
}
// build/plugins/unplugin.ts
import
process2
from
"
node:process
"
;
import
path2
from
"
node:path
"
;
import
Icons
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/unplugin-icons@0.19.1_@vue+compiler-sfc@3.4.35/node_modules/unplugin-icons/dist/vite.js
"
;
import
IconsResolver
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/unplugin-icons@0.19.1_@vue+compiler-sfc@3.4.35/node_modules/unplugin-icons/dist/resolver.js
"
;
import
Components
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/unplugin-vue-components@0.2_399125951f7c19759694498f84b98625/node_modules/unplugin-vue-components/dist/vite.js
"
;
import
{
AntDesignVueResolver
,
NaiveUiResolver
}
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/unplugin-vue-components@0.2_399125951f7c19759694498f84b98625/node_modules/unplugin-vue-components/dist/resolvers.js
"
;
import
{
FileSystemIconLoader
as
FileSystemIconLoader2
}
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/unplugin-icons@0.19.1_@vue+compiler-sfc@3.4.35/node_modules/unplugin-icons/dist/loaders.js
"
;
import
{
createSvgIconsPlugin
}
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/vite-plugin-svg-icons@2.0.1_74d6199eb1d71f61292914d4be54295b/node_modules/vite-plugin-svg-icons/dist/index.mjs
"
;
function
setupUnplugin
(
viteEnv
)
{
const
{
VITE_ICON_PREFIX
,
VITE_ICON_LOCAL_PREFIX
}
=
viteEnv
;
const
localIconPath
=
path2
.
join
(
process2
.
cwd
(),
"
src/assets/svg-icon
"
);
const
collectionName
=
VITE_ICON_LOCAL_PREFIX
.
replace
(
`
${
VITE_ICON_PREFIX
}
-`
,
""
);
const
plugins
=
[
Icons
({
compiler
:
"
vue3
"
,
customCollections
:
{
[
collectionName
]:
FileSystemIconLoader2
(
localIconPath
,
(
svg
)
=>
svg
.
replace
(
/^<svg
\s
/
,
'
<svg width="1em" height="1em"
'
)
)
},
scale
:
1
,
defaultClass
:
"
inline-block
"
}),
Components
({
dts
:
"
src/typings/components.d.ts
"
,
types
:
[{
from
:
"
vue-router
"
,
names
:
[
"
RouterLink
"
,
"
RouterView
"
]
}],
resolvers
:
[
AntDesignVueResolver
({
importStyle
:
false
}),
NaiveUiResolver
(),
IconsResolver
({
customCollections
:
[
collectionName
],
componentPrefix
:
VITE_ICON_PREFIX
})
]
}),
createSvgIconsPlugin
({
iconDirs
:
[
localIconPath
],
symbolId
:
`
${
VITE_ICON_LOCAL_PREFIX
}
-[dir]-[name]`
,
inject
:
"
body-last
"
,
customDomId
:
"
__SVG_ICON_LOCAL__
"
})
];
return
plugins
;
}
// build/plugins/html.ts
function
setupHtmlPlugin
(
buildTime
)
{
const
plugin
=
{
name
:
"
html-plugin
"
,
apply
:
"
build
"
,
transformIndexHtml
(
html
)
{
return
html
.
replace
(
"
<head>
"
,
`<head>
<meta name="buildTime" content="
${
buildTime
}
">`
);
}
};
return
plugin
;
}
// build/plugins/index.ts
function
setupVitePlugins
(
viteEnv
,
buildTime
)
{
const
plugins
=
[
vue
({
script
:
{
defineModel
:
true
}
}),
vueJsx
(),
VueDevtools
(),
setupElegantRouter
(),
setupUnocss
(
viteEnv
),
...
setupUnplugin
(
viteEnv
),
progress
(),
setupHtmlPlugin
(
buildTime
)
];
return
plugins
;
}
// src/utils/service.ts
function
createServiceConfig
(
env
)
{
const
{
VITE_SERVICE_BASE_URL
,
VITE_OTHER_SERVICE_BASE_URL
}
=
env
;
let
other
=
{};
try
{
other
=
JSON
.
parse
(
VITE_OTHER_SERVICE_BASE_URL
);
}
catch
(
error
)
{
}
console
.
error
(
"
VITE_OTHER_SERVICE_BASE_URL is not a valid JSON string
"
);
const
httpConfig
=
{
baseURL
:
VITE_SERVICE_BASE_URL
,
other
};
const
otherHttpKeys
=
Object
.
keys
(
httpConfig
.
other
);
const
otherConfig
=
otherHttpKeys
.
map
((
key
)
=>
{
return
{
key
,
baseURL
:
httpConfig
.
other
[
key
],
proxyPattern
:
createProxyPattern
(
key
)
};
});
const
config
=
{
baseURL
:
httpConfig
.
baseURL
,
proxyPattern
:
createProxyPattern
(),
other
:
otherConfig
};
return
config
;
}
function
createProxyPattern
(
key
)
{
if
(
!
key
)
{
return
"
/proxy-default
"
;
}
return
`/proxy-
${
key
}
`
;
}
// build/config/proxy.ts
function
createViteProxy
(
env
,
isDev
)
{
const
isEnableHttpProxy
=
isDev
&&
env
.
VITE_HTTP_PROXY
===
"
Y
"
;
if
(
!
isEnableHttpProxy
)
return
void
0
;
const
{
baseURL
,
proxyPattern
,
other
}
=
createServiceConfig
(
env
);
const
proxy
=
createProxyItem
({
baseURL
,
proxyPattern
});
console
.
log
(
"
\
u5F53
\
u524D
\
u4EE3
\
u7406
\
u9879
\
u76EE
"
,
proxy
);
other
.
forEach
((
item
)
=>
{
Object
.
assign
(
proxy
,
createProxyItem
(
item
));
});
return
proxy
;
}
function
createProxyItem
(
item
)
{
console
.
log
(
"
createProxyItem
\
u521B
\
u5EFA
\
u4EE3
\
u7406
\
u9879
\
u76EE
"
,
item
);
const
proxy
=
{};
proxy
[
item
.
proxyPattern
]
=
{
target
:
item
.
baseURL
,
changeOrigin
:
true
,
rewrite
:
(
path3
)
=>
path3
.
replace
(
new
RegExp
(
`^
${
item
.
proxyPattern
}
`
),
""
)
};
return
proxy
;
}
// build/config/time.ts
import
dayjs
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/dayjs@1.11.12/node_modules/dayjs/dayjs.min.js
"
;
import
utc
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/dayjs@1.11.12/node_modules/dayjs/plugin/utc.js
"
;
import
timezone
from
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/node_modules/.pnpm/dayjs@1.11.12/node_modules/dayjs/plugin/timezone.js
"
;
function
getBuildTime
()
{
dayjs
.
extend
(
utc
);
dayjs
.
extend
(
timezone
);
const
buildTime
=
dayjs
.
tz
(
Date
.
now
(),
"
Asia/Shanghai
"
).
format
(
"
YYYY-MM-DD HH:mm:ss
"
);
return
buildTime
;
}
// vite.config.ts
var
__vite_injected_original_import_meta_url
=
"
file:///E:/gitlabWorkspace/AI%E6%8E%A8%E7%90%86%E5%B9%B3%E5%8F%B0/AI-SYS/vite.config.ts
"
;
var
proxyTarget
=
"
http://192.168.2.16:9998
"
;
var
videdUrl
=
"
ws://192.168.2.18:9999
"
;
var
apiUrl
=
"
http://192.168.2.16:9998
"
;
var
wsUrl
=
"
ws://192.168.2.18:9999
"
;
var
vite_config_default
=
defineConfig
((
configEnv
)
=>
{
const
viteEnv
=
loadEnv
(
configEnv
.
mode
,
process3
.
cwd
());
const
buildTime
=
getBuildTime
();
return
{
base
:
viteEnv
.
VITE_BASE_URL
,
resolve
:
{
alias
:
{
"
~
"
:
fileURLToPath
(
new
URL
(
"
./
"
,
__vite_injected_original_import_meta_url
)),
"
@
"
:
fileURLToPath
(
new
URL
(
"
./src
"
,
__vite_injected_original_import_meta_url
))
}
},
css
:
{
preprocessorOptions
:
{
scss
:
{
additionalData
:
`@use "./src/styles/scss/global.scss" as *;`
}
}
},
plugins
:
setupVitePlugins
(
viteEnv
,
buildTime
),
define
:
{
BUILD_TIME
:
JSON
.
stringify
(
buildTime
)
},
server
:
{
host
:
"
0.0.0.0
"
,
port
:
9527
,
open
:
true
,
// 集成别人封装的代理项 & 晶合项目的代理项
proxy
:
{
...
createViteProxy
(
viteEnv
,
configEnv
.
command
===
"
serve
"
),
// '/menus': 'http://192.168.1.102:9995/menus',
// '/menus': 'http://192.168.1.173:10000/menus'
"
/v1
"
:
{
target
:
proxyTarget
,
changeOrigin
:
true
}
},
fs
:
{
cachedChecks
:
false
}
},
preview
:
{
port
:
9725
},
build
:
{
reportCompressedSize
:
false
,
sourcemap
:
viteEnv
.
VITE_SOURCE_MAP
===
"
Y
"
,
commonjsOptions
:
{
ignoreTryCatch
:
false
}
}
};
});
export
{
apiUrl
,
vite_config_default
as
default
,
proxyTarget
,
videdUrl
,
wsUrl
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiLCAiYnVpbGQvcGx1Z2lucy9pbmRleC50cyIsICJidWlsZC9wbHVnaW5zL3JvdXRlci50cyIsICJidWlsZC9wbHVnaW5zL3Vub2Nzcy50cyIsICJidWlsZC9wbHVnaW5zL3VucGx1Z2luLnRzIiwgImJ1aWxkL3BsdWdpbnMvaHRtbC50cyIsICJzcmMvdXRpbHMvc2VydmljZS50cyIsICJidWlsZC9jb25maWcvcHJveHkudHMiLCAiYnVpbGQvY29uZmlnL3RpbWUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJFOlxcXFxnaXRsYWJXb3Jrc3BhY2VcXFxcQUlcdTYzQThcdTc0MDZcdTVFNzNcdTUzRjBcXFxcQUktU1lTXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJFOlxcXFxnaXRsYWJXb3Jrc3BhY2VcXFxcQUlcdTYzQThcdTc0MDZcdTVFNzNcdTUzRjBcXFxcQUktU1lTXFxcXHZpdGUuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9FOi9naXRsYWJXb3Jrc3BhY2UvQUklRTYlOEUlQTglRTclOTAlODYlRTUlQjklQjMlRTUlOEYlQjAvQUktU1lTL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCB7IFVSTCwgZmlsZVVSTFRvUGF0aCB9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCB7IGRlZmluZUNvbmZpZywgbG9hZEVudiB9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHsgc2V0dXBWaXRlUGx1Z2lucyB9IGZyb20gJy4vYnVpbGQvcGx1Z2lucyc7XG5pbXBvcnQgeyBjcmVhdGVWaXRlUHJveHksIGdldEJ1aWxkVGltZSB9IGZyb20gJy4vYnVpbGQvY29uZmlnJztcblxuLy8gZXhwb3J0IGNvbnN0IHByb3h5VGFyZ2V0ID0gJ2h0dHA6Ly8xOTIuMTY4LjIuMTY6OTk5Nic7XG4vLyBleHBvcnQgY29uc3QgcHJveHlUYXJnZXQgPSAnaHR0cDovLzE5Mi4xNjguMi4xNjo5OTk4JztcbmV4cG9ydCBjb25zdCBwcm94eVRhcmdldCA9ICdodHRwOi8vMTkyLjE2OC4yLjE2Ojk5OTgnO1xuXG4vLyBleHBvcnQgY29uc3QgcHJveHlUYXJnZXQgPSAnaHR0cDovLzE5Mi4xNjguMS4xMTk6OTk5Nic7XG4vLyBleHBvcnQgY29uc3QgcHJveHlUYXJnZXQgPSAnaHR0cDovLzE5Mi4xNjguMS4xMTk6OTk5Nic7XG5cblxuLy8gXHU4OUM2XHU5ODkxXHU1NzMwXHU1NzQwXG5leHBvcnQgY29uc3QgdmlkZWRVcmwgPSAnd3M6Ly8xOTIuMTY4LjIuMTY6OTk5OSc7XG5cbi8vIFx1NTZGQVx1NUI5QVx1NjNBNVx1NTNFM1x1NTczMFx1NTc0MFxuZXhwb3J0IGNvbnN0IGFwaVVybCA9ICdodHRwOi8vMTkyLjE2OC4yLjE2Ojk5OTgnO1xuXG4vLyBXUyBcdTU3MzBcdTU3NDBcbmV4cG9ydCBjb25zdCB3c1VybCA9ICd3czovLzE5Mi4xNjguMi4xNjo5OTk5JztcblxuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoY29uZmlnRW52ID0+IHtcblxuICBjb25zdCB2aXRlRW52ID0gbG9hZEVudihjb25maWdFbnYubW9kZSwgcHJvY2Vzcy5jd2QoKSkgYXMgdW5rbm93biBhcyBFbnYuSW1wb3J0TWV0YTtcblxuICBjb25zdCBidWlsZFRpbWUgPSBnZXRCdWlsZFRpbWUoKTtcblxuICByZXR1cm4ge1xuICAgIGJhc2U6IHZpdGVFbnYuVklURV9CQVNFX1VSTCxcbiAgICByZXNvbHZlOiB7XG4gICAgICBhbGlhczoge1xuICAgICAgICAnfic6IGZpbGVVUkxUb1BhdGgobmV3IFVSTCgnLi8nLCBpbXBvcnQubWV0YS51cmwpKSxcbiAgICAgICAgJ0AnOiBmaWxlVVJMVG9QYXRoKG5ldyBVUkwoJy4vc3JjJywgaW1wb3J0Lm1ldGEudXJsKSlcbiAgICAgIH1cbiAgICB9LFxuICAgIGNzczoge1xuICAgICAgcHJlcHJvY2Vzc29yT3B0aW9uczoge1xuICAgICAgICBzY3NzOiB7XG4gICAgICAgICAgYWRkaXRpb25hbERhdGE6IGBAdXNlIFwiLi9zcmMvc3R5bGVzL3Njc3MvZ2xvYmFsLnNjc3NcIiBhcyAqO2BcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgcGx1Z2luczogc2V0dXBWaXRlUGx1Z2lucyh2aXRlRW52LCBidWlsZFRpbWUpLFxuICAgIGRlZmluZToge1xuICAgICAgQlVJTERfVElNRTogSlNPTi5zdHJpbmdpZnkoYnVpbGRUaW1lKVxuICAgIH0sXG4gICAgc2VydmVyOiB7XG4gICAgICBob3N0OiAnMC4wLjAuMCcsXG4gICAgICBwb3J0OiA5NTI3LFxuICAgICAgb3BlbjogdHJ1ZSxcbiAgICAgIC8vIFx1OTZDNlx1NjIxMFx1NTIyQlx1NEVCQVx1NUMwMVx1ODhDNVx1NzY4NFx1NEVFM1x1NzQwNlx1OTg3OSAmIFx1NjY3Nlx1NTQwOFx1OTg3OVx1NzZFRVx1NzY4NFx1NEVFM1x1NzQwNlx1OTg3OVxuICAgICAgcHJveHk6IHtcbiAgICAgICAgLi4uY3JlYXRlVml0ZVByb3h5KHZpdGVFbnYsIGNvbmZpZ0Vudi5jb21tYW5kID09PSAnc2VydmUnKSxcbiAgICAgICAgLy8gJy9tZW51cyc6ICdodHRwOi8vMTkyLjE2OC4xLjEwMjo5OTk1L21lbnVzJyxcbiAgICAgICAgLy8gJy9tZW51cyc6ICdodHRwOi8vMTkyLjE2OC4xLjE3MzoxMDAwMC9tZW51cydcbiAgICAgICAgJy92MSc6IHtcbiAgICAgICAgICB0YXJnZXQ6IHByb3h5VGFyZ2V0LFxuICAgICAgICAgIGNoYW5nZU9yaWdpbjogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZnM6IHtcbiAgICAgICAgY2FjaGVkQ2hlY2tzOiBmYWxzZVxuICAgICAgfVxuICAgIH0sXG4gICAgcHJldmlldzoge1xuICAgICAgcG9ydDogOTcyNVxuICAgIH0sXG4gICAgYnVpbGQ6IHtcbiAgICAgIHJlcG9ydENvbXByZXNzZWRTaXplOiBmYWxzZSxcbiAgICAgIHNvdXJjZW1hcDogdml0ZUVudi5WSVRFX1NPVVJDRV9NQVAgPT09ICdZJyxcbiAgICAgIGNvbW1vbmpzT3B0aW9uczoge1xuICAgICAgICBpZ25vcmVUcnlDYXRjaDogZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gIH07XG59KTtcblxuLy8gMTIzNDU2enlAXG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkU6XFxcXGdpdGxhYldvcmtzcGFjZVxcXFxBSVx1NjNBOFx1NzQwNlx1NUU3M1x1NTNGMFxcXFxBSS1TWVNcXFxcYnVpbGRcXFxccGx1Z2luc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRTpcXFxcZ2l0bGFiV29ya3NwYWNlXFxcXEFJXHU2M0E4XHU3NDA2XHU1RTczXHU1M0YwXFxcXEFJLVNZU1xcXFxidWlsZFxcXFxwbHVnaW5zXFxcXGluZGV4LnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9FOi9naXRsYWJXb3Jrc3BhY2UvQUklRTYlOEUlQTglRTclOTAlODYlRTUlQjklQjMlRTUlOEYlQjAvQUktU1lTL2J1aWxkL3BsdWdpbnMvaW5kZXgudHNcIjtpbXBvcnQgdHlwZSB7IFBsdWdpbk9wdGlvbiB9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHZ1ZSBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUnO1xuaW1wb3J0IHZ1ZUpzeCBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUtanN4JztcbmltcG9ydCBWdWVEZXZ0b29scyBmcm9tICd2aXRlLXBsdWdpbi12dWUtZGV2dG9vbHMnO1xuaW1wb3J0IHByb2dyZXNzIGZyb20gJ3ZpdGUtcGx1Z2luLXByb2dyZXNzJztcbmltcG9ydCB7IHNldHVwRWxlZ2FudFJvdXRlciB9IGZyb20gJy4vcm91dGVyJztcbmltcG9ydCB7IHNldHVwVW5vY3NzIH0gZnJvbSAnLi91bm9jc3MnO1xuaW1wb3J0IHsgc2V0dXBVbnBsdWdpbiB9IGZyb20gJy4vdW5wbHVnaW4nO1xuaW1wb3J0IHsgc2V0dXBIdG1sUGx1Z2luIH0gZnJvbSAnLi9odG1sJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldHVwVml0ZVBsdWdpbnModml0ZUVudjogRW52LkltcG9ydE1ldGEsIGJ1aWxkVGltZTogc3RyaW5nKSB7XG4gIGNvbnN0IHBsdWdpbnM6IFBsdWdpbk9wdGlvbiA9IFtcbiAgICB2dWUoe1xuICAgICAgc2NyaXB0OiB7XG4gICAgICAgIGRlZmluZU1vZGVsOiB0cnVlXG4gICAgICB9XG4gICAgfSksXG4gICAgdnVlSnN4KCksXG4gICAgVnVlRGV2dG9vbHMoKSxcbiAgICBzZXR1cEVsZWdhbnRSb3V0ZXIoKSxcbiAgICBzZXR1cFVub2Nzcyh2aXRlRW52KSxcbiAgICAuLi5zZXR1cFVucGx1Z2luKHZpdGVFbnYpLFxuICAgIHByb2dyZXNzKCksXG4gICAgc2V0dXBIdG1sUGx1Z2luKGJ1aWxkVGltZSlcbiAgXTtcblxuICByZXR1cm4gcGx1Z2lucztcbn1cbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRTpcXFxcZ2l0bGFiV29ya3NwYWNlXFxcXEFJXHU2M0E4XHU3NDA2XHU1RTczXHU1M0YwXFxcXEFJLVNZU1xcXFxidWlsZFxcXFxwbHVnaW5zXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJFOlxcXFxnaXRsYWJXb3Jrc3BhY2VcXFxcQUlcdTYzQThcdTc0MDZcdTVFNzNcdTUzRjBcXFxcQUktU1lTXFxcXGJ1aWxkXFxcXHBsdWdpbnNcXFxccm91dGVyLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9FOi9naXRsYWJXb3Jrc3BhY2UvQUklRTYlOEUlQTglRTclOTAlODYlRTUlQjklQjMlRTUlOEYlQjAvQUktU1lTL2J1aWxkL3BsdWdpbnMvcm91dGVyLnRzXCI7aW1wb3J0IHR5cGUgeyBSb3V0ZU1ldGEgfSBmcm9tICd2dWUtcm91dGVyJztcbmltcG9ydCBFbGVnYW50VnVlUm91dGVyIGZyb20gJ0BlbGVnYW50LXJvdXRlci92dWUvdml0ZSc7XG5pbXBvcnQgdHlwZSB7IFJvdXRlS2V5IH0gZnJvbSAnQGVsZWdhbnQtcm91dGVyL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldHVwRWxlZ2FudFJvdXRlcigpIHtcbiAgcmV0dXJuIEVsZWdhbnRWdWVSb3V0ZXIoe1xuICAgIGxheW91dHM6IHtcbiAgICAgIGJhc2U6ICdzcmMvbGF5b3V0cy9iYXNlLWxheW91dC9pbmRleC52dWUnLFxuICAgICAgYmxhbms6ICdzcmMvbGF5b3V0cy9ibGFuay1sYXlvdXQvaW5kZXgudnVlJ1xuICAgIH0sXG4gICAgY3VzdG9tUm91dGVzOiB7XG4gICAgICBuYW1lczogW1xuICAgICAgICAnZXhjZXB0aW9uXzQwMycsXG4gICAgICAgICdleGNlcHRpb25fNDA0JyxcbiAgICAgICAgJ2V4Y2VwdGlvbl81MDAnLFxuICAgICAgICAnZG9jdW1lbnRfcHJvamVjdCcsXG4gICAgICAgICdkb2N1bWVudF9wcm9qZWN0LWxpbmsnLFxuICAgICAgICAnZG9jdW1lbnRfdnVlJyxcbiAgICAgICAgJ2RvY3VtZW50X3ZpdGUnLFxuICAgICAgICAnZG9jdW1lbnRfdW5vY3NzJyxcbiAgICAgICAgJ2RvY3VtZW50X25haXZlJyxcbiAgICAgICAgJ2RvY3VtZW50X2FudGQnXG4gICAgICBdXG4gICAgfSxcbiAgICByb3V0ZVBhdGhUcmFuc2Zvcm1lcihyb3V0ZU5hbWUsIHJvdXRlUGF0aCkge1xuICAgICAgY29uc3Qga2V5ID0gcm91dGVOYW1lIGFzIFJvdXRlS2V5O1xuXG4gICAgICBpZiAoa2V5ID09PSAnbG9naW4nKSB7XG4gICAgICAgIGNvbnN0IG1vZHVsZXM6IFVuaW9uS2V5LkxvZ2luTW9kdWxlW10gPSBbJ3B3ZC1sb2dpbicsICdjb2RlLWxvZ2luJywgJ3JlZ2lzdGVyJywgJ3Jlc2V0LXB3ZCcsICdiaW5kLXdlY2hhdCddO1xuXG4gICAgICAgIGNvbnN0IG1vZHVsZVJlZyA9IG1vZHVsZXMuam9pbignfCcpO1xuXG4gICAgICAgIHJldHVybiBgL2xvZ2luLzptb2R1bGUoJHttb2R1bGVSZWd9KT9gO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcm91dGVQYXRoO1xuICAgIH0sXG4gICAgb25Sb3V0ZU1ldGFHZW4ocm91dGVOYW1lKSB7XG4gICAgICBjb25zdCBrZXkgPSByb3V0ZU5hbWUgYXMgUm91dGVLZXk7XG5cbiAgICAgIGNvbnN0IGNvbnN0YW50Um91dGVzOiBSb3V0ZUtleVtdID0gWydsb2dpbicsICc0MDMnLCAnNDA0JywgJzUwMCddO1xuXG4gICAgICBjb25zdCBtZXRhOiBQYXJ0aWFsPFJvdXRlTWV0YT4gPSB7XG4gICAgICAgIHRpdGxlOiBrZXksXG4gICAgICAgIGkxOG5LZXk6IGByb3V0ZS4ke2tleX1gIGFzIEFwcC5JMThuLkkxOG5LZXlcbiAgICAgIH07XG5cbiAgICAgIGlmIChjb25zdGFudFJvdXRlcy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgIG1ldGEuY29uc3RhbnQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbWV0YTtcbiAgICB9XG4gIH0pO1xufVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJFOlxcXFxnaXRsYWJXb3Jrc3BhY2VcXFxcQUlcdTYzQThcdTc0MDZcdTVFNzNcdTUzRjBcXFxcQUktU1lTXFxcXGJ1aWxkXFxcXHBsdWdpbnNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkU6XFxcXGdpdGxhYldvcmtzcGFjZVxcXFxBSVx1NjNBOFx1NzQwNlx1NUU3M1x1NTNGMFxcXFxBSS1TWVNcXFxcYnVpbGRcXFxccGx1Z2luc1xcXFx1bm9jc3MudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0U6L2dpdGxhYldvcmtzcGFjZS9BSSVFNiU4RSVBOCVFNyU5MCU4NiVFNSVCOSVCMyVFNSU4RiVCMC9BSS1TWVMvYnVpbGQvcGx1Z2lucy91bm9jc3MudHNcIjtpbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB1bm9jc3MgZnJvbSAnQHVub2Nzcy92aXRlJztcbmltcG9ydCBwcmVzZXRJY29ucyBmcm9tICdAdW5vY3NzL3ByZXNldC1pY29ucyc7XG5pbXBvcnQgeyBGaWxlU3lzdGVtSWNvbkxvYWRlciB9IGZyb20gJ0BpY29uaWZ5L3V0aWxzL2xpYi9sb2FkZXIvbm9kZS1sb2FkZXJzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldHVwVW5vY3NzKHZpdGVFbnY6IEVudi5JbXBvcnRNZXRhKSB7XG4gIGNvbnN0IHsgVklURV9JQ09OX1BSRUZJWCwgVklURV9JQ09OX0xPQ0FMX1BSRUZJWCB9ID0gdml0ZUVudjtcblxuICBjb25zdCBsb2NhbEljb25QYXRoID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksICdzcmMvYXNzZXRzL3N2Zy1pY29uJyk7XG5cbiAgLyoqIFRoZSBuYW1lIG9mIHRoZSBsb2NhbCBpY29uIGNvbGxlY3Rpb24gKi9cbiAgY29uc3QgY29sbGVjdGlvbk5hbWUgPSBWSVRFX0lDT05fTE9DQUxfUFJFRklYLnJlcGxhY2UoYCR7VklURV9JQ09OX1BSRUZJWH0tYCwgJycpO1xuXG4gIHJldHVybiB1bm9jc3Moe1xuICAgIHByZXNldHM6IFtcbiAgICAgIHByZXNldEljb25zKHtcbiAgICAgICAgcHJlZml4OiBgJHtWSVRFX0lDT05fUFJFRklYfS1gLFxuICAgICAgICBzY2FsZTogMSxcbiAgICAgICAgZXh0cmFQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaydcbiAgICAgICAgfSxcbiAgICAgICAgY29sbGVjdGlvbnM6IHtcbiAgICAgICAgICBbY29sbGVjdGlvbk5hbWVdOiBGaWxlU3lzdGVtSWNvbkxvYWRlcihsb2NhbEljb25QYXRoLCBzdmcgPT5cbiAgICAgICAgICAgIHN2Zy5yZXBsYWNlKC9ePHN2Z1xccy8sICc8c3ZnIHdpZHRoPVwiMWVtXCIgaGVpZ2h0PVwiMWVtXCIgJylcbiAgICAgICAgICApXG4gICAgICAgIH0sXG4gICAgICAgIHdhcm46IHRydWVcbiAgICAgIH0pXG4gICAgXVxuICB9KTtcbn1cbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRTpcXFxcZ2l0bGFiV29ya3NwYWNlXFxcXEFJXHU2M0E4XHU3NDA2XHU1RTczXHU1M0YwXFxcXEFJLVNZU1xcXFxidWlsZFxcXFxwbHVnaW5zXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJFOlxcXFxnaXRsYWJXb3Jrc3BhY2VcXFxcQUlcdTYzQThcdTc0MDZcdTVFNzNcdTUzRjBcXFxcQUktU1lTXFxcXGJ1aWxkXFxcXHBsdWdpbnNcXFxcdW5wbHVnaW4udHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0U6L2dpdGxhYldvcmtzcGFjZS9BSSVFNiU4RSVBOCVFNyU5MCU4NiVFNSVCOSVCMyVFNSU4RiVCMC9BSS1TWVMvYnVpbGQvcGx1Z2lucy91bnBsdWdpbi50c1wiO2ltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5PcHRpb24gfSBmcm9tICd2aXRlJztcbmltcG9ydCBJY29ucyBmcm9tICd1bnBsdWdpbi1pY29ucy92aXRlJztcbmltcG9ydCBJY29uc1Jlc29sdmVyIGZyb20gJ3VucGx1Z2luLWljb25zL3Jlc29sdmVyJztcbmltcG9ydCBDb21wb25lbnRzIGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3ZpdGUnO1xuaW1wb3J0IHsgQW50RGVzaWduVnVlUmVzb2x2ZXIsIE5haXZlVWlSZXNvbHZlciB9IGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3Jlc29sdmVycyc7XG5pbXBvcnQgeyBGaWxlU3lzdGVtSWNvbkxvYWRlciB9IGZyb20gJ3VucGx1Z2luLWljb25zL2xvYWRlcnMnO1xuaW1wb3J0IHsgY3JlYXRlU3ZnSWNvbnNQbHVnaW4gfSBmcm9tICd2aXRlLXBsdWdpbi1zdmctaWNvbnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBVbnBsdWdpbih2aXRlRW52OiBFbnYuSW1wb3J0TWV0YSkge1xuICBjb25zdCB7IFZJVEVfSUNPTl9QUkVGSVgsIFZJVEVfSUNPTl9MT0NBTF9QUkVGSVggfSA9IHZpdGVFbnY7XG5cbiAgY29uc3QgbG9jYWxJY29uUGF0aCA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnc3JjL2Fzc2V0cy9zdmctaWNvbicpO1xuXG4gIC8qKiBUaGUgbmFtZSBvZiB0aGUgbG9jYWwgaWNvbiBjb2xsZWN0aW9uICovXG4gIGNvbnN0IGNvbGxlY3Rpb25OYW1lID0gVklURV9JQ09OX0xPQ0FMX1BSRUZJWC5yZXBsYWNlKGAke1ZJVEVfSUNPTl9QUkVGSVh9LWAsICcnKTtcblxuICBjb25zdCBwbHVnaW5zOiBQbHVnaW5PcHRpb25bXSA9IFtcbiAgICBJY29ucyh7XG4gICAgICBjb21waWxlcjogJ3Z1ZTMnLFxuICAgICAgY3VzdG9tQ29sbGVjdGlvbnM6IHtcbiAgICAgICAgW2NvbGxlY3Rpb25OYW1lXTogRmlsZVN5c3RlbUljb25Mb2FkZXIobG9jYWxJY29uUGF0aCwgc3ZnID0+XG4gICAgICAgICAgc3ZnLnJlcGxhY2UoL148c3ZnXFxzLywgJzxzdmcgd2lkdGg9XCIxZW1cIiBoZWlnaHQ9XCIxZW1cIiAnKVxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgc2NhbGU6IDEsXG4gICAgICBkZWZhdWx0Q2xhc3M6ICdpbmxpbmUtYmxvY2snXG4gICAgfSksXG4gICAgQ29tcG9uZW50cyh7XG4gICAgICBkdHM6ICdzcmMvdHlwaW5ncy9jb21wb25lbnRzLmQudHMnLFxuICAgICAgdHlwZXM6IFt7IGZyb206ICd2dWUtcm91dGVyJywgbmFtZXM6IFsnUm91dGVyTGluaycsICdSb3V0ZXJWaWV3J10gfV0sXG4gICAgICByZXNvbHZlcnM6IFtcbiAgICAgICAgQW50RGVzaWduVnVlUmVzb2x2ZXIoe1xuICAgICAgICAgIGltcG9ydFN0eWxlOiBmYWxzZVxuICAgICAgICB9KSxcbiAgICAgICAgTmFpdmVVaVJlc29sdmVyKCksXG4gICAgICAgIEljb25zUmVzb2x2ZXIoeyBjdXN0b21Db2xsZWN0aW9uczogW2NvbGxlY3Rpb25OYW1lXSwgY29tcG9uZW50UHJlZml4OiBWSVRFX0lDT05fUFJFRklYIH0pXG4gICAgICBdXG4gICAgfSksXG4gICAgY3JlYXRlU3ZnSWNvbnNQbHVnaW4oe1xuICAgICAgaWNvbkRpcnM6IFtsb2NhbEljb25QYXRoXSxcbiAgICAgIHN5bWJvbElkOiBgJHtWSVRFX0lDT05fTE9DQUxfUFJFRklYfS1bZGlyXS1bbmFtZV1gLFxuICAgICAgaW5qZWN0OiAnYm9keS1sYXN0JyxcbiAgICAgIGN1c3RvbURvbUlkOiAnX19TVkdfSUNPTl9MT0NBTF9fJ1xuICAgIH0pXG4gIF07XG5cbiAgcmV0dXJuIHBsdWdpbnM7XG59XG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkU6XFxcXGdpdGxhYldvcmtzcGFjZVxcXFxBSVx1NjNBOFx1NzQwNlx1NUU3M1x1NTNGMFxcXFxBSS1TWVNcXFxcYnVpbGRcXFxccGx1Z2luc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRTpcXFxcZ2l0bGFiV29ya3NwYWNlXFxcXEFJXHU2M0E4XHU3NDA2XHU1RTczXHU1M0YwXFxcXEFJLVNZU1xcXFxidWlsZFxcXFxwbHVnaW5zXFxcXGh0bWwudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0U6L2dpdGxhYldvcmtzcGFjZS9BSSVFNiU4RSVBOCVFNyU5MCU4NiVFNSVCOSVCMyVFNSU4RiVCMC9BSS1TWVMvYnVpbGQvcGx1Z2lucy9odG1sLnRzXCI7aW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tICd2aXRlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldHVwSHRtbFBsdWdpbihidWlsZFRpbWU6IHN0cmluZykge1xuICBjb25zdCBwbHVnaW46IFBsdWdpbiA9IHtcbiAgICBuYW1lOiAnaHRtbC1wbHVnaW4nLFxuICAgIGFwcGx5OiAnYnVpbGQnLFxuICAgIHRyYW5zZm9ybUluZGV4SHRtbChodG1sKSB7XG4gICAgICByZXR1cm4gaHRtbC5yZXBsYWNlKCc8aGVhZD4nLCBgPGhlYWQ+XFxuICAgIDxtZXRhIG5hbWU9XCJidWlsZFRpbWVcIiBjb250ZW50PVwiJHtidWlsZFRpbWV9XCI+YCk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBwbHVnaW47XG59XG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkU6XFxcXGdpdGxhYldvcmtzcGFjZVxcXFxBSVx1NjNBOFx1NzQwNlx1NUU3M1x1NTNGMFxcXFxBSS1TWVNcXFxcc3JjXFxcXHV0aWxzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJFOlxcXFxnaXRsYWJXb3Jrc3BhY2VcXFxcQUlcdTYzQThcdTc0MDZcdTVFNzNcdTUzRjBcXFxcQUktU1lTXFxcXHNyY1xcXFx1dGlsc1xcXFxzZXJ2aWNlLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9FOi9naXRsYWJXb3Jrc3BhY2UvQUklRTYlOEUlQTglRTclOTAlODYlRTUlQjklQjMlRTUlOEYlQjAvQUktU1lTL3NyYy91dGlscy9zZXJ2aWNlLnRzXCI7LyoqXG4gKiBDcmVhdGUgc2VydmljZSBjb25maWcgYnkgY3VycmVudCBlbnZcbiAqXG4gKiBAcGFyYW0gZW52IFRoZSBjdXJyZW50IGVudlxuICovXG5cblxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VydmljZUNvbmZpZyhlbnY6IEVudi5JbXBvcnRNZXRhKSB7XG4gIGNvbnN0IHsgVklURV9TRVJWSUNFX0JBU0VfVVJMLCBWSVRFX09USEVSX1NFUlZJQ0VfQkFTRV9VUkwgfSA9IGVudjtcblxuICBsZXQgb3RoZXIgPSB7fSBhcyBSZWNvcmQ8QXBwLlNlcnZpY2UuT3RoZXJCYXNlVVJMS2V5LCBzdHJpbmc+O1xuICB0cnkge1xuICAgIG90aGVyID0gSlNPTi5wYXJzZShWSVRFX09USEVSX1NFUlZJQ0VfQkFTRV9VUkwpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gIH0gICAgY29uc29sZS5lcnJvcignVklURV9PVEhFUl9TRVJWSUNFX0JBU0VfVVJMIGlzIG5vdCBhIHZhbGlkIEpTT04gc3RyaW5nJyk7XG5cblxuICBjb25zdCBodHRwQ29uZmlnOiBBcHAuU2VydmljZS5TaW1wbGVTZXJ2aWNlQ29uZmlnID0ge1xuICAgIGJhc2VVUkw6IFZJVEVfU0VSVklDRV9CQVNFX1VSTCxcbiAgICBvdGhlclxuICB9O1xuXG4gIGNvbnN0IG90aGVySHR0cEtleXMgPSBPYmplY3Qua2V5cyhodHRwQ29uZmlnLm90aGVyKSBhcyBBcHAuU2VydmljZS5PdGhlckJhc2VVUkxLZXlbXTtcblxuICBjb25zdCBvdGhlckNvbmZpZzogQXBwLlNlcnZpY2UuT3RoZXJTZXJ2aWNlQ29uZmlnSXRlbVtdID0gb3RoZXJIdHRwS2V5cy5tYXAoa2V5ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAga2V5LFxuICAgICAgYmFzZVVSTDogaHR0cENvbmZpZy5vdGhlcltrZXldLFxuICAgICAgcHJveHlQYXR0ZXJuOiBjcmVhdGVQcm94eVBhdHRlcm4oa2V5KVxuICAgIH07XG4gIH0pO1xuXG4gIGNvbnN0IGNvbmZpZzogQXBwLlNlcnZpY2UuU2VydmljZUNvbmZpZyA9IHtcbiAgICBiYXNlVVJMOiBodHRwQ29uZmlnLmJhc2VVUkwsXG4gICAgcHJveHlQYXR0ZXJuOiBjcmVhdGVQcm94eVBhdHRlcm4oKSxcbiAgICBvdGhlcjogb3RoZXJDb25maWdcbiAgfTtcblxuICByZXR1cm4gY29uZmlnO1xufVxuXG4vKipcbiAqIGdldCBiYWNrZW5kIHNlcnZpY2UgYmFzZSB1cmxcbiAqXG4gKiBAcGFyYW0gZW52IC0gdGhlIGN1cnJlbnQgZW52XG4gKiBAcGFyYW0gaXNQcm94eSAtIGlmIHVzZSBwcm94eVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VydmljZUJhc2VVUkwoZW52OiBFbnYuSW1wb3J0TWV0YSwgaXNQcm94eTogYm9vbGVhbikge1xuICBjb25zdCB7IGJhc2VVUkwsIG90aGVyIH0gPSBjcmVhdGVTZXJ2aWNlQ29uZmlnKGVudik7XG5cbiAgY29uc3Qgb3RoZXJCYXNlVVJMID0ge30gYXMgUmVjb3JkPEFwcC5TZXJ2aWNlLk90aGVyQmFzZVVSTEtleSwgc3RyaW5nPjtcblxuICBvdGhlci5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgIG90aGVyQmFzZVVSTFtpdGVtLmtleV0gPSBpc1Byb3h5ID8gaXRlbS5wcm94eVBhdHRlcm4gOiBpdGVtLmJhc2VVUkw7XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgYmFzZVVSTDogaXNQcm94eSA/IGNyZWF0ZVByb3h5UGF0dGVybigpIDogYmFzZVVSTCxcbiAgICBvdGhlckJhc2VVUkxcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgcHJveHkgcGF0dGVybiBvZiBiYWNrZW5kIHNlcnZpY2UgYmFzZSB1cmxcbiAqXG4gKiBAcGFyYW0ga2V5IElmIG5vdCBzZXQsIHdpbGwgdXNlIHRoZSBkZWZhdWx0IGtleVxuICovXG5mdW5jdGlvbiBjcmVhdGVQcm94eVBhdHRlcm4oa2V5PzogQXBwLlNlcnZpY2UuT3RoZXJCYXNlVVJMS2V5KSB7XG4gIGlmICgha2V5KSB7XG4gICAgcmV0dXJuICcvcHJveHktZGVmYXVsdCc7XG4gIH1cblxuICByZXR1cm4gYC9wcm94eS0ke2tleX1gO1xufVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJFOlxcXFxnaXRsYWJXb3Jrc3BhY2VcXFxcQUlcdTYzQThcdTc0MDZcdTVFNzNcdTUzRjBcXFxcQUktU1lTXFxcXGJ1aWxkXFxcXGNvbmZpZ1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRTpcXFxcZ2l0bGFiV29ya3NwYWNlXFxcXEFJXHU2M0E4XHU3NDA2XHU1RTczXHU1M0YwXFxcXEFJLVNZU1xcXFxidWlsZFxcXFxjb25maWdcXFxccHJveHkudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0U6L2dpdGxhYldvcmtzcGFjZS9BSSVFNiU4RSVBOCVFNyU5MCU4NiVFNSVCOSVCMyVFNSU4RiVCMC9BSS1TWVMvYnVpbGQvY29uZmlnL3Byb3h5LnRzXCI7aW1wb3J0IHR5cGUgeyBQcm94eU9wdGlvbnMgfSBmcm9tICd2aXRlJztcbmltcG9ydCB7IGNyZWF0ZVNlcnZpY2VDb25maWcgfSBmcm9tICcuLi8uLi9zcmMvdXRpbHMvc2VydmljZSc7XG5cbi8qKlxuICogU2V0IGh0dHAgcHJveHlcbiAqXG4gKiBAcGFyYW0gZW52IC0gVGhlIGN1cnJlbnQgZW52XG4gKiBAcGFyYW0gaXNEZXYgLSBJcyBkZXZlbG9wbWVudCBlbnZpcm9ubWVudFxuICovXG5cbi8vIFx1NTIxQlx1NUVGQSBWaXRlIFx1NjcwRFx1NTJBMVx1NEVFM1x1NzQwNlxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVZpdGVQcm94eShlbnY6IEVudi5JbXBvcnRNZXRhLCBpc0RldjogYm9vbGVhbikge1xuICAvLyBlbnYgXHU3M0FGXHU1ODgzXHU1M0Q4XHU5MUNGXHVGRjBDIFx1NjYyRlx1NEVDMFx1NEU0OFx1NzNBRlx1NTg4M1xuXG4gIGNvbnN0IGlzRW5hYmxlSHR0cFByb3h5ID0gaXNEZXYgJiYgZW52LlZJVEVfSFRUUF9QUk9YWSA9PT0gJ1knO1xuXG4gIGlmICghaXNFbmFibGVIdHRwUHJveHkpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgeyBiYXNlVVJMLCBwcm94eVBhdHRlcm4sIG90aGVyIH0gPSBjcmVhdGVTZXJ2aWNlQ29uZmlnKGVudik7XG5cbiAgY29uc3QgcHJveHk6IFJlY29yZDxzdHJpbmcsIFByb3h5T3B0aW9ucz4gPSBjcmVhdGVQcm94eUl0ZW0oeyBiYXNlVVJMLCBwcm94eVBhdHRlcm4gfSk7XG5cbiAgY29uc29sZS5sb2coJ1x1NUY1M1x1NTI0RFx1NEVFM1x1NzQwNlx1OTg3OVx1NzZFRScsIHByb3h5KTtcblxuICBvdGhlci5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgIE9iamVjdC5hc3NpZ24ocHJveHksIGNyZWF0ZVByb3h5SXRlbShpdGVtKSk7XG4gIH0pO1xuXG4gIHJldHVybiBwcm94eTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlUHJveHlJdGVtKGl0ZW06IEFwcC5TZXJ2aWNlLlNlcnZpY2VDb25maWdJdGVtKSB7XG4gIGNvbnNvbGUubG9nKCdjcmVhdGVQcm94eUl0ZW0gXHU1MjFCXHU1RUZBXHU0RUUzXHU3NDA2XHU5ODc5XHU3NkVFJywgaXRlbSk7XG5cbiAgY29uc3QgcHJveHk6IFJlY29yZDxzdHJpbmcsIFByb3h5T3B0aW9ucz4gPSB7fTtcblxuICBwcm94eVtpdGVtLnByb3h5UGF0dGVybl0gPSB7XG4gICAgdGFyZ2V0OiBpdGVtLmJhc2VVUkwsXG4gICAgY2hhbmdlT3JpZ2luOiB0cnVlLFxuICAgIHJld3JpdGU6IHBhdGggPT4gcGF0aC5yZXBsYWNlKG5ldyBSZWdFeHAoYF4ke2l0ZW0ucHJveHlQYXR0ZXJufWApLCAnJylcbiAgfTtcblxuICByZXR1cm4gcHJveHk7XG59XG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkU6XFxcXGdpdGxhYldvcmtzcGFjZVxcXFxBSVx1NjNBOFx1NzQwNlx1NUU3M1x1NTNGMFxcXFxBSS1TWVNcXFxcYnVpbGRcXFxcY29uZmlnXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJFOlxcXFxnaXRsYWJXb3Jrc3BhY2VcXFxcQUlcdTYzQThcdTc0MDZcdTVFNzNcdTUzRjBcXFxcQUktU1lTXFxcXGJ1aWxkXFxcXGNvbmZpZ1xcXFx0aW1lLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9FOi9naXRsYWJXb3Jrc3BhY2UvQUklRTYlOEUlQTglRTclOTAlODYlRTUlQjklQjMlRTUlOEYlQjAvQUktU1lTL2J1aWxkL2NvbmZpZy90aW1lLnRzXCI7aW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XG5pbXBvcnQgdGltZXpvbmUgZnJvbSAnZGF5anMvcGx1Z2luL3RpbWV6b25lJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJ1aWxkVGltZSgpIHtcbiAgZGF5anMuZXh0ZW5kKHV0Yyk7XG4gIGRheWpzLmV4dGVuZCh0aW1lem9uZSk7XG5cbiAgY29uc3QgYnVpbGRUaW1lID0gZGF5anMudHooRGF0ZS5ub3coKSwgJ0FzaWEvU2hhbmdoYWknKS5mb3JtYXQoJ1lZWVktTU0tREQgSEg6bW06c3MnKTtcblxuICByZXR1cm4gYnVpbGRUaW1lO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUEwVCxPQUFPQSxjQUFhO0FBQzlVLFNBQVMsS0FBSyxxQkFBcUI7QUFDbkMsU0FBUyxjQUFjLGVBQWU7OztBQ0R0QyxPQUFPLFNBQVM7QUFDaEIsT0FBTyxZQUFZO0FBQ25CLE9BQU8saUJBQWlCO0FBQ3hCLE9BQU8sY0FBYzs7O0FDSHJCLE9BQU8sc0JBQXNCO0FBR3RCLFNBQVMscUJBQXFCO0FBQ25DLFNBQU8saUJBQWlCO0FBQUEsSUFDdEIsU0FBUztBQUFBLE1BQ1AsTUFBTTtBQUFBLE1BQ04sT0FBTztBQUFBLElBQ1Q7QUFBQSxJQUNBLGNBQWM7QUFBQSxNQUNaLE9BQU87QUFBQSxRQUNMO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxJQUNBLHFCQUFxQixXQUFXLFdBQVc7QUFDekMsWUFBTSxNQUFNO0FBRVosVUFBSSxRQUFRLFNBQVM7QUFDbkIsY0FBTSxVQUFrQyxDQUFDLGFBQWEsY0FBYyxZQUFZLGFBQWEsYUFBYTtBQUUxRyxjQUFNLFlBQVksUUFBUSxLQUFLLEdBQUc7QUFFbEMsZUFBTyxrQkFBa0IsU0FBUztBQUFBLE1BQ3BDO0FBRUEsYUFBTztBQUFBLElBQ1Q7QUFBQSxJQUNBLGVBQWUsV0FBVztBQUN4QixZQUFNLE1BQU07QUFFWixZQUFNLGlCQUE2QixDQUFDLFNBQVMsT0FBTyxPQUFPLEtBQUs7QUFFaEUsWUFBTSxPQUEyQjtBQUFBLFFBQy9CLE9BQU87QUFBQSxRQUNQLFNBQVMsU0FBUyxHQUFHO0FBQUEsTUFDdkI7QUFFQSxVQUFJLGVBQWUsU0FBUyxHQUFHLEdBQUc7QUFDaEMsYUFBSyxXQUFXO0FBQUEsTUFDbEI7QUFFQSxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0YsQ0FBQztBQUNIOzs7QUN0RDhWLE9BQU8sYUFBYTtBQUNsWCxPQUFPLFVBQVU7QUFDakIsT0FBTyxZQUFZO0FBQ25CLE9BQU8saUJBQWlCO0FBQ3hCLFNBQVMsNEJBQTRCO0FBRTlCLFNBQVMsWUFBWSxTQUF5QjtBQUNuRCxRQUFNLEVBQUUsa0JBQWtCLHVCQUF1QixJQUFJO0FBRXJELFFBQU0sZ0JBQWdCLEtBQUssS0FBSyxRQUFRLElBQUksR0FBRyxxQkFBcUI7QUFHcEUsUUFBTSxpQkFBaUIsdUJBQXVCLFFBQVEsR0FBRyxnQkFBZ0IsS0FBSyxFQUFFO0FBRWhGLFNBQU8sT0FBTztBQUFBLElBQ1osU0FBUztBQUFBLE1BQ1AsWUFBWTtBQUFBLFFBQ1YsUUFBUSxHQUFHLGdCQUFnQjtBQUFBLFFBQzNCLE9BQU87QUFBQSxRQUNQLGlCQUFpQjtBQUFBLFVBQ2YsU0FBUztBQUFBLFFBQ1g7QUFBQSxRQUNBLGFBQWE7QUFBQSxVQUNYLENBQUMsY0FBYyxHQUFHO0FBQUEsWUFBcUI7QUFBQSxZQUFlLFNBQ3BELElBQUksUUFBUSxXQUFXLGdDQUFnQztBQUFBLFVBQ3pEO0FBQUEsUUFDRjtBQUFBLFFBQ0EsTUFBTTtBQUFBLE1BQ1IsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGLENBQUM7QUFDSDs7O0FDL0JrVyxPQUFPQyxjQUFhO0FBQ3RYLE9BQU9DLFdBQVU7QUFFakIsT0FBTyxXQUFXO0FBQ2xCLE9BQU8sbUJBQW1CO0FBQzFCLE9BQU8sZ0JBQWdCO0FBQ3ZCLFNBQVMsc0JBQXNCLHVCQUF1QjtBQUN0RCxTQUFTLHdCQUFBQyw2QkFBNEI7QUFDckMsU0FBUyw0QkFBNEI7QUFFOUIsU0FBUyxjQUFjLFNBQXlCO0FBQ3JELFFBQU0sRUFBRSxrQkFBa0IsdUJBQXVCLElBQUk7QUFFckQsUUFBTSxnQkFBZ0JDLE1BQUssS0FBS0MsU0FBUSxJQUFJLEdBQUcscUJBQXFCO0FBR3BFLFFBQU0saUJBQWlCLHVCQUF1QixRQUFRLEdBQUcsZ0JBQWdCLEtBQUssRUFBRTtBQUVoRixRQUFNLFVBQTBCO0FBQUEsSUFDOUIsTUFBTTtBQUFBLE1BQ0osVUFBVTtBQUFBLE1BQ1YsbUJBQW1CO0FBQUEsUUFDakIsQ0FBQyxjQUFjLEdBQUdDO0FBQUEsVUFBcUI7QUFBQSxVQUFlLFNBQ3BELElBQUksUUFBUSxXQUFXLGdDQUFnQztBQUFBLFFBQ3pEO0FBQUEsTUFDRjtBQUFBLE1BQ0EsT0FBTztBQUFBLE1BQ1AsY0FBYztBQUFBLElBQ2hCLENBQUM7QUFBQSxJQUNELFdBQVc7QUFBQSxNQUNULEtBQUs7QUFBQSxNQUNMLE9BQU8sQ0FBQyxFQUFFLE1BQU0sY0FBYyxPQUFPLENBQUMsY0FBYyxZQUFZLEVBQUUsQ0FBQztBQUFBLE1BQ25FLFdBQVc7QUFBQSxRQUNULHFCQUFxQjtBQUFBLFVBQ25CLGFBQWE7QUFBQSxRQUNmLENBQUM7QUFBQSxRQUNELGdCQUFnQjtBQUFBLFFBQ2hCLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQyxjQUFjLEdBQUcsaUJBQWlCLGlCQUFpQixDQUFDO0FBQUEsTUFDMUY7QUFBQSxJQUNGLENBQUM7QUFBQSxJQUNELHFCQUFxQjtBQUFBLE1BQ25CLFVBQVUsQ0FBQyxhQUFhO0FBQUEsTUFDeEIsVUFBVSxHQUFHLHNCQUFzQjtBQUFBLE1BQ25DLFFBQVE7QUFBQSxNQUNSLGFBQWE7QUFBQSxJQUNmLENBQUM7QUFBQSxFQUNIO0FBRUEsU0FBTztBQUNUOzs7QUMvQ08sU0FBUyxnQkFBZ0IsV0FBbUI7QUFDakQsUUFBTSxTQUFpQjtBQUFBLElBQ3JCLE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxJQUNQLG1CQUFtQixNQUFNO0FBQ3ZCLGFBQU8sS0FBSyxRQUFRLFVBQVU7QUFBQSxzQ0FBK0MsU0FBUyxJQUFJO0FBQUEsSUFDNUY7QUFBQSxFQUNGO0FBRUEsU0FBTztBQUNUOzs7QUpGTyxTQUFTLGlCQUFpQixTQUF5QixXQUFtQjtBQUMzRSxRQUFNLFVBQXdCO0FBQUEsSUFDNUIsSUFBSTtBQUFBLE1BQ0YsUUFBUTtBQUFBLFFBQ04sYUFBYTtBQUFBLE1BQ2Y7QUFBQSxJQUNGLENBQUM7QUFBQSxJQUNELE9BQU87QUFBQSxJQUNQLFlBQVk7QUFBQSxJQUNaLG1CQUFtQjtBQUFBLElBQ25CLFlBQVksT0FBTztBQUFBLElBQ25CLEdBQUcsY0FBYyxPQUFPO0FBQUEsSUFDeEIsU0FBUztBQUFBLElBQ1QsZ0JBQWdCLFNBQVM7QUFBQSxFQUMzQjtBQUVBLFNBQU87QUFDVDs7O0FLbkJPLFNBQVMsb0JBQW9CLEtBQXFCO0FBQ3ZELFFBQU0sRUFBRSx1QkFBdUIsNEJBQTRCLElBQUk7QUFFL0QsTUFBSSxRQUFRLENBQUM7QUFDYixNQUFJO0FBQ0YsWUFBUSxLQUFLLE1BQU0sMkJBQTJCO0FBQUEsRUFDaEQsU0FBUyxPQUFPO0FBQUEsRUFFaEI7QUFBSyxVQUFRLE1BQU0sd0RBQXdEO0FBRzNFLFFBQU0sYUFBOEM7QUFBQSxJQUNsRCxTQUFTO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFFQSxRQUFNLGdCQUFnQixPQUFPLEtBQUssV0FBVyxLQUFLO0FBRWxELFFBQU0sY0FBb0QsY0FBYyxJQUFJLFNBQU87QUFDakYsV0FBTztBQUFBLE1BQ0w7QUFBQSxNQUNBLFNBQVMsV0FBVyxNQUFNLEdBQUc7QUFBQSxNQUM3QixjQUFjLG1CQUFtQixHQUFHO0FBQUEsSUFDdEM7QUFBQSxFQUNGLENBQUM7QUFFRCxRQUFNLFNBQW9DO0FBQUEsSUFDeEMsU0FBUyxXQUFXO0FBQUEsSUFDcEIsY0FBYyxtQkFBbUI7QUFBQSxJQUNqQyxPQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU87QUFDVDtBQTRCQSxTQUFTLG1CQUFtQixLQUFtQztBQUM3RCxNQUFJLENBQUMsS0FBSztBQUNSLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTyxVQUFVLEdBQUc7QUFDdEI7OztBQ2hFTyxTQUFTLGdCQUFnQixLQUFxQixPQUFnQjtBQUduRSxRQUFNLG9CQUFvQixTQUFTLElBQUksb0JBQW9CO0FBRTNELE1BQUksQ0FBQyxrQkFBbUIsUUFBTztBQUUvQixRQUFNLEVBQUUsU0FBUyxjQUFjLE1BQU0sSUFBSSxvQkFBb0IsR0FBRztBQUVoRSxRQUFNLFFBQXNDLGdCQUFnQixFQUFFLFNBQVMsYUFBYSxDQUFDO0FBRXJGLFVBQVEsSUFBSSx3Q0FBVSxLQUFLO0FBRTNCLFFBQU0sUUFBUSxVQUFRO0FBQ3BCLFdBQU8sT0FBTyxPQUFPLGdCQUFnQixJQUFJLENBQUM7QUFBQSxFQUM1QyxDQUFDO0FBRUQsU0FBTztBQUNUO0FBRUEsU0FBUyxnQkFBZ0IsTUFBcUM7QUFDNUQsVUFBUSxJQUFJLHdEQUEwQixJQUFJO0FBRTFDLFFBQU0sUUFBc0MsQ0FBQztBQUU3QyxRQUFNLEtBQUssWUFBWSxJQUFJO0FBQUEsSUFDekIsUUFBUSxLQUFLO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxTQUFTLENBQUFDLFVBQVFBLE1BQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxLQUFLLFlBQVksRUFBRSxHQUFHLEVBQUU7QUFBQSxFQUN2RTtBQUVBLFNBQU87QUFDVDs7O0FDM0N1VixPQUFPLFdBQVc7QUFDelcsT0FBTyxTQUFTO0FBQ2hCLE9BQU8sY0FBYztBQUVkLFNBQVMsZUFBZTtBQUM3QixRQUFNLE9BQU8sR0FBRztBQUNoQixRQUFNLE9BQU8sUUFBUTtBQUVyQixRQUFNLFlBQVksTUFBTSxHQUFHLEtBQUssSUFBSSxHQUFHLGVBQWUsRUFBRSxPQUFPLHFCQUFxQjtBQUVwRixTQUFPO0FBQ1Q7OztBUlgrSyxJQUFNLDJDQUEyQztBQVF6TixJQUFNLGNBQWM7QUFPcEIsSUFBTSxXQUFXO0FBR2pCLElBQU0sU0FBUztBQUdmLElBQU0sUUFBUTtBQUdyQixJQUFPLHNCQUFRLGFBQWEsZUFBYTtBQUV2QyxRQUFNLFVBQVUsUUFBUSxVQUFVLE1BQU1DLFNBQVEsSUFBSSxDQUFDO0FBRXJELFFBQU0sWUFBWSxhQUFhO0FBRS9CLFNBQU87QUFBQSxJQUNMLE1BQU0sUUFBUTtBQUFBLElBQ2QsU0FBUztBQUFBLE1BQ1AsT0FBTztBQUFBLFFBQ0wsS0FBSyxjQUFjLElBQUksSUFBSSxNQUFNLHdDQUFlLENBQUM7QUFBQSxRQUNqRCxLQUFLLGNBQWMsSUFBSSxJQUFJLFNBQVMsd0NBQWUsQ0FBQztBQUFBLE1BQ3REO0FBQUEsSUFDRjtBQUFBLElBQ0EsS0FBSztBQUFBLE1BQ0gscUJBQXFCO0FBQUEsUUFDbkIsTUFBTTtBQUFBLFVBQ0osZ0JBQWdCO0FBQUEsUUFDbEI7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBQ0EsU0FBUyxpQkFBaUIsU0FBUyxTQUFTO0FBQUEsSUFDNUMsUUFBUTtBQUFBLE1BQ04sWUFBWSxLQUFLLFVBQVUsU0FBUztBQUFBLElBQ3RDO0FBQUEsSUFDQSxRQUFRO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUE7QUFBQSxNQUVOLE9BQU87QUFBQSxRQUNMLEdBQUcsZ0JBQWdCLFNBQVMsVUFBVSxZQUFZLE9BQU87QUFBQTtBQUFBO0FBQUEsUUFHekQsT0FBTztBQUFBLFVBQ0wsUUFBUTtBQUFBLFVBQ1IsY0FBYztBQUFBLFFBQ2hCO0FBQUEsTUFDRjtBQUFBLE1BQ0EsSUFBSTtBQUFBLFFBQ0YsY0FBYztBQUFBLE1BQ2hCO0FBQUEsSUFDRjtBQUFBLElBQ0EsU0FBUztBQUFBLE1BQ1AsTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBLE9BQU87QUFBQSxNQUNMLHNCQUFzQjtBQUFBLE1BQ3RCLFdBQVcsUUFBUSxvQkFBb0I7QUFBQSxNQUN2QyxpQkFBaUI7QUFBQSxRQUNmLGdCQUFnQjtBQUFBLE1BQ2xCO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogWyJwcm9jZXNzIiwgInByb2Nlc3MiLCAicGF0aCIsICJGaWxlU3lzdGVtSWNvbkxvYWRlciIsICJwYXRoIiwgInByb2Nlc3MiLCAiRmlsZVN5c3RlbUljb25Mb2FkZXIiLCAicGF0aCIsICJwcm9jZXNzIl0KfQo=
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment