178 lines
21 KiB
JavaScript
178 lines
21 KiB
JavaScript
// vite.config.ts
|
|
import vue from "file:///E:/softstoneFile/ry-das/ui/dasadmin/node_modules/@vitejs/plugin-vue/dist/index.mjs";
|
|
import { resolve } from "path";
|
|
import { loadEnv } from "file:///E:/softstoneFile/ry-das/ui/dasadmin/node_modules/vite/dist/node/index.js";
|
|
|
|
// src/utils/vite.ts
|
|
var customHotUpdate = () => {
|
|
const closeHmr = /* @__PURE__ */ new Map();
|
|
return {
|
|
name: "vite-plugin-custom-hot-update",
|
|
configureServer(server) {
|
|
server.ws.on("custom:close-hot", (data) => {
|
|
closeHmr.set(data.type, true);
|
|
server.watcher.removeAllListeners("add");
|
|
server.watcher.removeAllListeners("unlink");
|
|
});
|
|
server.ws.on("custom:open-hot", (data) => {
|
|
closeHmr.set(data.type, false);
|
|
server.watcher.on("add", () => {
|
|
server.restart();
|
|
});
|
|
server.watcher.on("unlink", () => {
|
|
server.restart();
|
|
});
|
|
});
|
|
server.ws.on("custom:reload-hot", () => {
|
|
server.restart();
|
|
});
|
|
},
|
|
handleHotUpdate() {
|
|
const closeHmrs = Array.from(closeHmr.values());
|
|
let closeHmrsBool = false;
|
|
for (const key in closeHmrs) {
|
|
closeHmrsBool = closeHmrsBool || closeHmrs[key];
|
|
}
|
|
if (closeHmrsBool)
|
|
return [];
|
|
}
|
|
};
|
|
};
|
|
|
|
// src/components/icon/svg/index.ts
|
|
import { readFileSync, readdirSync } from "fs";
|
|
var idPerfix = "";
|
|
var iconNames = [];
|
|
var svgTitle = /<svg([^>+].*?)>/;
|
|
var clearHeightWidth = /(width|height)="([^>+].*?)"/g;
|
|
var hasViewBox = /(viewBox="[^>+].*?")/g;
|
|
var clearReturn = /(\r)|(\n)/g;
|
|
var clearFill = /(fill="[^>+].*?")/g;
|
|
function findSvgFile(dir) {
|
|
const svgRes = [];
|
|
const dirents = readdirSync(dir, {
|
|
withFileTypes: true
|
|
});
|
|
for (const dirent of dirents) {
|
|
iconNames.push(`${idPerfix}-${dirent.name.replace(".svg", "")}`);
|
|
if (dirent.isDirectory()) {
|
|
svgRes.push(...findSvgFile(dir + dirent.name + "/"));
|
|
} else {
|
|
const svg = readFileSync(dir + dirent.name).toString().replace(clearReturn, "").replace(clearFill, 'fill=""').replace(svgTitle, ($1, $2) => {
|
|
let width = 0;
|
|
let height = 0;
|
|
let content = $2.replace(clearHeightWidth, (s1, s2, s3) => {
|
|
if (s2 === "width") {
|
|
width = s3;
|
|
} else if (s2 === "height") {
|
|
height = s3;
|
|
}
|
|
return "";
|
|
});
|
|
if (!hasViewBox.test($2)) {
|
|
content += `viewBox="0 0 ${width} ${height}"`;
|
|
}
|
|
return `<symbol id="${idPerfix}-${dirent.name.replace(".svg", "")}" ${content}>`;
|
|
}).replace("</svg>", "</symbol>");
|
|
svgRes.push(svg);
|
|
}
|
|
}
|
|
return svgRes;
|
|
}
|
|
var svgBuilder = (path, perfix = "local") => {
|
|
if (path === "")
|
|
return;
|
|
idPerfix = perfix;
|
|
const res = findSvgFile(path);
|
|
return {
|
|
name: "svg-transform",
|
|
transformIndexHtml(html) {
|
|
return html.replace(
|
|
"<body>",
|
|
`
|
|
<body>
|
|
<svg id="local-icon" data-icon-name="${iconNames.join(
|
|
","
|
|
)}" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="position: absolute; width: 0; height: 0">
|
|
${res.join("")}
|
|
</svg>
|
|
`
|
|
);
|
|
}
|
|
};
|
|
};
|
|
|
|
// vite.config.ts
|
|
var __vite_injected_original_dirname = "E:\\softstoneFile\\ry-das\\ui\\dasadmin";
|
|
var pathResolve = (dir) => {
|
|
return resolve(__vite_injected_original_dirname, ".", dir);
|
|
};
|
|
var viteConfig = ({ mode }) => {
|
|
const { VITE_PORT, VITE_OPEN, VITE_BASE_PATH, VITE_OUT_DIR, VITE_APP_PROXY } = loadEnv(mode, process.cwd());
|
|
const alias = {
|
|
"/@": pathResolve("./src/"),
|
|
assets: pathResolve("./src/assets"),
|
|
"vue-i18n": "vue-i18n/dist/vue-i18n.cjs.js"
|
|
};
|
|
const createProxy = (proxyList) => {
|
|
const ret = {};
|
|
if (proxyList) {
|
|
proxyList = JSON.parse(proxyList);
|
|
for (const [prefix, target] of proxyList) {
|
|
ret[prefix] = {
|
|
target,
|
|
changeOrigin: true,
|
|
rewrite: (path) => path.replace(new RegExp(`^${prefix}`), "")
|
|
};
|
|
}
|
|
}
|
|
return ret;
|
|
};
|
|
return {
|
|
plugins: [vue(), svgBuilder("./src/assets/icons/"), customHotUpdate()],
|
|
root: process.cwd(),
|
|
resolve: { alias },
|
|
base: VITE_BASE_PATH,
|
|
server: {
|
|
port: parseInt(VITE_PORT),
|
|
open: VITE_OPEN != "false",
|
|
proxy: {
|
|
...createProxy(VITE_APP_PROXY)
|
|
}
|
|
},
|
|
build: {
|
|
cssCodeSplit: false,
|
|
sourcemap: false,
|
|
outDir: VITE_OUT_DIR,
|
|
emptyOutDir: true,
|
|
chunkSizeWarningLimit: 1500,
|
|
terserOptions: {
|
|
compress: {
|
|
keep_infinity: true,
|
|
// Used to delete console in production environment
|
|
drop_console: true,
|
|
drop_debugger: true
|
|
},
|
|
output: {
|
|
comments: true
|
|
// 去掉注释内容
|
|
}
|
|
},
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks: {
|
|
// 分包配置,配置完成自动按需加载
|
|
vue: ["vue", "vue-router", "pinia", "vue-i18n", "element-plus"],
|
|
echarts: ["echarts"]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
};
|
|
var vite_config_default = viteConfig;
|
|
export {
|
|
vite_config_default as default
|
|
};
|
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiLCAic3JjL3V0aWxzL3ZpdGUudHMiLCAic3JjL2NvbXBvbmVudHMvaWNvbi9zdmcvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJFOlxcXFxzb2Z0c3RvbmVGaWxlXFxcXHJ5LWRhc1xcXFx1aVxcXFxkYXNhZG1pblwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRTpcXFxcc29mdHN0b25lRmlsZVxcXFxyeS1kYXNcXFxcdWlcXFxcZGFzYWRtaW5cXFxcdml0ZS5jb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0U6L3NvZnRzdG9uZUZpbGUvcnktZGFzL3VpL2Rhc2FkbWluL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHZ1ZSBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUnXHJcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoJ1xyXG5pbXBvcnQgeyBsb2FkRW52IH0gZnJvbSAndml0ZSdcclxuaW1wb3J0IHR5cGUgeyBVc2VyQ29uZmlnLCBDb25maWdFbnYsIFByb3h5T3B0aW9ucyB9IGZyb20gJ3ZpdGUnXHJcbmltcG9ydCB7IGlzUHJvZCwgY3VzdG9tSG90VXBkYXRlIH0gZnJvbSAnL0AvdXRpbHMvdml0ZSdcclxuaW1wb3J0IHsgc3ZnQnVpbGRlciB9IGZyb20gJy9AL2NvbXBvbmVudHMvaWNvbi9zdmcvaW5kZXgnXHJcblxyXG5jb25zdCBwYXRoUmVzb2x2ZSA9IChkaXI6IHN0cmluZyk6IGFueSA9PiB7XHJcbiAgICByZXR1cm4gcmVzb2x2ZShfX2Rpcm5hbWUsICcuJywgZGlyKVxyXG59XHJcblxyXG4vLyBodHRwczovL3ZpdGVqcy5jbi9jb25maWcvXHJcbmNvbnN0IHZpdGVDb25maWcgPSAoeyBtb2RlIH06IENvbmZpZ0Vudik6IFVzZXJDb25maWcgPT4ge1xyXG4gICAgY29uc3QgeyBWSVRFX1BPUlQsIFZJVEVfT1BFTiwgVklURV9CQVNFX1BBVEgsIFZJVEVfT1VUX0RJUiwgVklURV9BUFBfUFJPWFkgfSA9IGxvYWRFbnYobW9kZSwgcHJvY2Vzcy5jd2QoKSlcclxuXHJcbiAgICBjb25zdCBhbGlhczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcclxuICAgICAgICAnL0AnOiBwYXRoUmVzb2x2ZSgnLi9zcmMvJyksXHJcbiAgICAgICAgYXNzZXRzOiBwYXRoUmVzb2x2ZSgnLi9zcmMvYXNzZXRzJyksXHJcbiAgICAgICAgJ3Z1ZS1pMThuJzogJ3Z1ZS1pMThuL2Rpc3QvdnVlLWkxOG4uY2pzLmpzJyxcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjcmVhdGVQcm94eSA9IChwcm94eUxpc3Q6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJldCA9IHt9IGFzIFJlY29yZDxzdHJpbmcsIFByb3h5T3B0aW9ucz5cclxuICAgICAgICBpZiAocHJveHlMaXN0KSB7XHJcbiAgICAgICAgICAgIHByb3h5TGlzdCA9IEpTT04ucGFyc2UocHJveHlMaXN0KVxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtwcmVmaXgsIHRhcmdldF0gb2YgcHJveHlMaXN0KSB7XHJcbiAgICAgICAgICAgICAgICByZXRbcHJlZml4XSA9IHtcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IHRhcmdldCxcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VPcmlnaW46IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmV3cml0ZTogKHBhdGgpID0+IHBhdGgucmVwbGFjZShuZXcgUmVnRXhwKGBeJHtwcmVmaXh9YCksICcnKSxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJldFxyXG4gICAgfVxyXG5cclxuICAgIC8vIGxldCBwcm94eTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgUHJveHlPcHRpb25zPiA9IHt9XHJcbiAgICAvLyBpZiAoVklURV9QUk9YWV9VUkwpIHtcclxuICAgIC8vICAgICBwcm94eSA9IHtcclxuICAgIC8vICAgICAgICAgJy8nOiB7XHJcbiAgICAvLyAgICAgICAgICAgICB0YXJnZXQ6IFZJVEVfUFJPWFlfVVJMLFxyXG4gICAgLy8gICAgICAgICAgICAgY2hhbmdlT3JpZ2luOiB0cnVlLFxyXG4gICAgLy8gICAgICAgICB9LFxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHBsdWdpbnM6IFt2dWUoKSwgc3ZnQnVpbGRlcignLi9zcmMvYXNzZXRzL2ljb25zLycpLCBjdXN0b21Ib3RVcGRhdGUoKV0sXHJcbiAgICAgICAgcm9vdDogcHJvY2Vzcy5jd2QoKSxcclxuICAgICAgICByZXNvbHZlOiB7IGFsaWFzIH0sXHJcbiAgICAgICAgYmFzZTogVklURV9CQVNFX1BBVEgsXHJcbiAgICAgICAgc2VydmVyOiB7XHJcbiAgICAgICAgICAgIHBvcnQ6IHBhcnNlSW50KFZJVEVfUE9SVCksXHJcbiAgICAgICAgICAgIG9wZW46IFZJVEVfT1BFTiAhPSAnZmFsc2UnLFxyXG4gICAgICAgICAgICBwcm94eToge1xyXG4gICAgICAgICAgICAgICAgLi4uY3JlYXRlUHJveHkoVklURV9BUFBfUFJPWFkpLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYnVpbGQ6IHtcclxuICAgICAgICAgICAgY3NzQ29kZVNwbGl0OiBmYWxzZSxcclxuICAgICAgICAgICAgc291cmNlbWFwOiBmYWxzZSxcclxuICAgICAgICAgICAgb3V0RGlyOiBWSVRFX09VVF9ESVIsXHJcbiAgICAgICAgICAgIGVtcHR5T3V0RGlyOiB0cnVlLFxyXG4gICAgICAgICAgICBjaHVua1NpemVXYXJuaW5nTGltaXQ6IDE1MDAsXHJcbiAgICAgICAgICAgIHRlcnNlck9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgIGNvbXByZXNzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAga2VlcF9pbmZpbml0eTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAvLyBVc2VkIHRvIGRlbGV0ZSBjb25zb2xlIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRcclxuICAgICAgICAgICAgICAgICAgICBkcm9wX2NvbnNvbGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZHJvcF9kZWJ1Z2dlcjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBvdXRwdXQ6IHtcclxuICAgICAgICAgICAgICAgICAgICBjb21tZW50czogdHJ1ZSwgLy8gXHU1M0JCXHU2Mzg5XHU2Q0U4XHU5MUNBXHU1MTg1XHU1QkI5XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICByb2xsdXBPcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICBvdXRwdXQ6IHtcclxuICAgICAgICAgICAgICAgICAgICBtYW51YWxDaHVua3M6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gXHU1MjA2XHU1MzA1XHU5MTREXHU3RjZFXHVGRjBDXHU5MTREXHU3RjZFXHU1QjhDXHU2MjEwXHU4MUVBXHU1MkE4XHU2MzA5XHU5NzAwXHU1MkEwXHU4RjdEXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZTogWyd2dWUnLCAndnVlLXJvdXRlcicsICdwaW5pYScsICd2dWUtaTE4bicsICdlbGVtZW50LXBsdXMnXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWNoYXJ0czogWydlY2hhcnRzJ10sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgdml0ZUNvbmZpZ1xyXG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkU6XFxcXHNvZnRzdG9uZUZpbGVcXFxccnktZGFzXFxcXHVpXFxcXGRhc2FkbWluXFxcXHNyY1xcXFx1dGlsc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRTpcXFxcc29mdHN0b25lRmlsZVxcXFxyeS1kYXNcXFxcdWlcXFxcZGFzYWRtaW5cXFxcc3JjXFxcXHV0aWxzXFxcXHZpdGUudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0U6L3NvZnRzdG9uZUZpbGUvcnktZGFzL3VpL2Rhc2FkbWluL3NyYy91dGlscy92aXRlLnRzXCI7aW1wb3J0IHsgUGx1Z2luIH0gZnJvbSAndml0ZSdcclxuXHJcbi8qKlxyXG4gKiBcdTY2MkZcdTU0MjZcdTU3MjhcdTVGMDBcdTUzRDFcdTczQUZcdTU4ODNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0Rldihtb2RlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBtb2RlID09PSAnZGV2ZWxvcG1lbnQnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBcdTY2MkZcdTU0MjZcdTU3MjhcdTc1MUZcdTRFQTdcdTczQUZcdTU4ODNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc1Byb2QobW9kZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gbW9kZSA9PT0gJ3Byb2R1Y3Rpb24nXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBcdTgxRUFcdTVCOUFcdTRFNDlcdTcwRURcdTY2RjRcdTY1QjBcdTU5MDRcdTc0MDZcdTYzRDJcdTRFRjZcclxuICovXHJcbmV4cG9ydCBjb25zdCBjdXN0b21Ib3RVcGRhdGUgPSAoKTogUGx1Z2luID0+IHtcclxuICAgIGNvbnN0IGNsb3NlSG1yID0gbmV3IE1hcDxzdHJpbmcsIGJvb2xlYW4+KClcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIG5hbWU6ICd2aXRlLXBsdWdpbi1jdXN0b20taG90LXVwZGF0ZScsXHJcbiAgICAgICAgY29uZmlndXJlU2VydmVyKHNlcnZlcikge1xyXG4gICAgICAgICAgICBzZXJ2ZXIud3Mub24oJ2N1c3RvbTpjbG9zZS1ob3QnLCAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2xvc2VIbXIuc2V0KGRhdGEudHlwZSwgdHJ1ZSlcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBcdTUxNzNcdTk1RURcdTY1ODdcdTRFRjZcdTZERkJcdTUyQTBcdTU0OENcdTUyMjBcdTk2NjRcdTc2ODRcdTc2RDFcdTU0MkNcclxuICAgICAgICAgICAgICAgIHNlcnZlci53YXRjaGVyLnJlbW92ZUFsbExpc3RlbmVycygnYWRkJylcclxuICAgICAgICAgICAgICAgIHNlcnZlci53YXRjaGVyLnJlbW92ZUFsbExpc3RlbmVycygndW5saW5rJylcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgc2VydmVyLndzLm9uKCdjdXN0b206b3Blbi1ob3QnLCAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2xvc2VIbXIuc2V0KGRhdGEudHlwZSwgZmFsc2UpXHJcblxyXG4gICAgICAgICAgICAgICAgc2VydmVyLndhdGNoZXIub24oJ2FkZCcsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVzdGFydCgpXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgc2VydmVyLndhdGNoZXIub24oJ3VubGluaycsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVzdGFydCgpXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICBzZXJ2ZXIud3Mub24oJ2N1c3RvbTpyZWxvYWQtaG90JywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc2VydmVyLnJlc3RhcnQoKVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaGFuZGxlSG90VXBkYXRlKCkge1xyXG4gICAgICAgICAgICBjb25zdCBjbG9zZUhtcnMgPSBBcnJheS5mcm9tKGNsb3NlSG1yLnZhbHVlcygpKVxyXG4gICAgICAgICAgICBsZXQgY2xvc2VIbXJzQm9vbCA9IGZhbHNlXHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGNsb3NlSG1ycykge1xyXG4gICAgICAgICAgICAgICAgY2xvc2VIbXJzQm9vbCA9IGNsb3NlSG1yc0Jvb2wgfHwgY2xvc2VIbXJzW2tleV1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoY2xvc2VIbXJzQm9vbCkgcmV0dXJuIFtdXHJcbiAgICAgICAgfSxcclxuICAgIH1cclxufVxyXG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkU6XFxcXHNvZnRzdG9uZUZpbGVcXFxccnktZGFzXFxcXHVpXFxcXGRhc2FkbWluXFxcXHNyY1xcXFxjb21wb25lbnRzXFxcXGljb25cXFxcc3ZnXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJFOlxcXFxzb2Z0c3RvbmVGaWxlXFxcXHJ5LWRhc1xcXFx1aVxcXFxkYXNhZG1pblxcXFxzcmNcXFxcY29tcG9uZW50c1xcXFxpY29uXFxcXHN2Z1xcXFxpbmRleC50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRTovc29mdHN0b25lRmlsZS9yeS1kYXMvdWkvZGFzYWRtaW4vc3JjL2NvbXBvbmVudHMvaWNvbi9zdmcvaW5kZXgudHNcIjtpbXBvcnQgeyByZWFkRmlsZVN5bmMsIHJlYWRkaXJTeW5jIH0gZnJvbSAnZnMnXHJcblxyXG5sZXQgaWRQZXJmaXggPSAnJ1xyXG5jb25zdCBpY29uTmFtZXM6IHN0cmluZ1tdID0gW11cclxuY29uc3Qgc3ZnVGl0bGUgPSAvPHN2ZyhbXj4rXS4qPyk+L1xyXG5jb25zdCBjbGVhckhlaWdodFdpZHRoID0gLyh3aWR0aHxoZWlnaHQpPVwiKFtePitdLio/KVwiL2dcclxuY29uc3QgaGFzVmlld0JveCA9IC8odmlld0JveD1cIltePitdLio/XCIpL2dcclxuY29uc3QgY2xlYXJSZXR1cm4gPSAvKFxccil8KFxcbikvZ1xyXG4vLyBcdTZFMDVcdTc0MDYgc3ZnIFx1NzY4NCBmaWxsXHJcbmNvbnN0IGNsZWFyRmlsbCA9IC8oZmlsbD1cIltePitdLio/XCIpL2dcclxuXHJcbmZ1bmN0aW9uIGZpbmRTdmdGaWxlKGRpcjogc3RyaW5nKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3Qgc3ZnUmVzID0gW11cclxuICAgIGNvbnN0IGRpcmVudHMgPSByZWFkZGlyU3luYyhkaXIsIHtcclxuICAgICAgICB3aXRoRmlsZVR5cGVzOiB0cnVlLFxyXG4gICAgfSlcclxuICAgIGZvciAoY29uc3QgZGlyZW50IG9mIGRpcmVudHMpIHtcclxuICAgICAgICBpY29uTmFtZXMucHVzaChgJHtpZFBlcmZpeH0tJHtkaXJlbnQubmFtZS5yZXBsYWNlKCcuc3ZnJywgJycpfWApXHJcbiAgICAgICAgaWYgKGRpcmVudC5pc0RpcmVjdG9yeSgpKSB7XHJcbiAgICAgICAgICAgIHN2Z1Jlcy5wdXNoKC4uLmZpbmRTdmdGaWxlKGRpciArIGRpcmVudC5uYW1lICsgJy8nKSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBzdmcgPSByZWFkRmlsZVN5bmMoZGlyICsgZGlyZW50Lm5hbWUpXHJcbiAgICAgICAgICAgICAgICAudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoY2xlYXJSZXR1cm4sICcnKVxyXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoY2xlYXJGaWxsLCAnZmlsbD1cIlwiJylcclxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKHN2Z1RpdGxlLCAoJDEsICQyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHdpZHRoID0gMFxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBoZWlnaHQgPSAwXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbnRlbnQgPSAkMi5yZXBsYWNlKGNsZWFySGVpZ2h0V2lkdGgsIChzMTogc3RyaW5nLCBzMjogc3RyaW5nLCBzMzogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzMiA9PT0gJ3dpZHRoJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBzM1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHMyID09PSAnaGVpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0ID0gczNcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJydcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghaGFzVmlld0JveC50ZXN0KCQyKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50ICs9IGB2aWV3Qm94PVwiMCAwICR7d2lkdGh9ICR7aGVpZ2h0fVwiYFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDxzeW1ib2wgaWQ9XCIke2lkUGVyZml4fS0ke2RpcmVudC5uYW1lLnJlcGxhY2UoJy5zdmcnLCAnJyl9XCIgJHtjb250ZW50fT5gXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoJzwvc3ZnPicsICc8L3N5bWJvbD4nKVxyXG4gICAgICAgICAgICBzdmdSZXMucHVzaChzdmcpXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN2Z1Jlc1xyXG59XHJcblxyXG5leHBvcnQgY29uc3Qgc3ZnQnVpbGRlciA9IChwYXRoOiBzdHJpbmcsIHBlcmZpeCA9ICdsb2NhbCcpID0+IHtcclxuICAgIGlmIChwYXRoID09PSAnJykgcmV0dXJuXHJcbiAgICBpZFBlcmZpeCA9IHBlcmZpeFxyXG4gICAgY29uc3QgcmVzID0gZmluZFN2Z0ZpbGUocGF0aClcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTogJ3N2Zy10cmFuc2Zvcm0nLFxyXG4gICAgICAgIHRyYW5zZm9ybUluZGV4SHRtbChodG1sOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgICAgICAgICAgcmV0dXJuIGh0bWwucmVwbGFjZShcclxuICAgICAgICAgICAgICAgICc8Ym9keT4nLFxyXG4gICAgICAgICAgICAgICAgYFxyXG4gICAgICAgICAgICAgICAgPGJvZHk+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIGlkPVwibG9jYWwtaWNvblwiIGRhdGEtaWNvbi1uYW1lPVwiJHtpY29uTmFtZXMuam9pbihcclxuICAgICAgICAgICAgICAgICAgICAnLCdcclxuICAgICAgICAgICAgICAgICl9XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMDsgaGVpZ2h0OiAwXCI+XHJcbiAgICAgICAgICAgICAgICAke3Jlcy5qb2luKCcnKX1cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgYFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC8qIGVzbGludC1lbmFibGUgKi9cclxuICAgICAgICB9LFxyXG4gICAgfVxyXG59XHJcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBcVMsT0FBTyxTQUFTO0FBQ3JULFNBQVMsZUFBZTtBQUN4QixTQUFTLGVBQWU7OztBQ2lCakIsSUFBTSxrQkFBa0IsTUFBYztBQUN6QyxRQUFNLFdBQVcsb0JBQUksSUFBcUI7QUFFMUMsU0FBTztBQUFBLElBQ0gsTUFBTTtBQUFBLElBQ04sZ0JBQWdCLFFBQVE7QUFDcEIsYUFBTyxHQUFHLEdBQUcsb0JBQW9CLENBQUMsU0FBUztBQUN2QyxpQkFBUyxJQUFJLEtBQUssTUFBTSxJQUFJO0FBRzVCLGVBQU8sUUFBUSxtQkFBbUIsS0FBSztBQUN2QyxlQUFPLFFBQVEsbUJBQW1CLFFBQVE7QUFBQSxNQUM5QyxDQUFDO0FBQ0QsYUFBTyxHQUFHLEdBQUcsbUJBQW1CLENBQUMsU0FBUztBQUN0QyxpQkFBUyxJQUFJLEtBQUssTUFBTSxLQUFLO0FBRTdCLGVBQU8sUUFBUSxHQUFHLE9BQU8sTUFBTTtBQUMzQixpQkFBTyxRQUFRO0FBQUEsUUFDbkIsQ0FBQztBQUNELGVBQU8sUUFBUSxHQUFHLFVBQVUsTUFBTTtBQUM5QixpQkFBTyxRQUFRO0FBQUEsUUFDbkIsQ0FBQztBQUFBLE1BQ0wsQ0FBQztBQUNELGFBQU8sR0FBRyxHQUFHLHFCQUFxQixNQUFNO0FBQ3BDLGVBQU8sUUFBUTtBQUFBLE1BQ25CLENBQUM7QUFBQSxJQUNMO0FBQUEsSUFDQSxrQkFBa0I7QUFDZCxZQUFNLFlBQVksTUFBTSxLQUFLLFNBQVMsT0FBTyxDQUFDO0FBQzlDLFVBQUksZ0JBQWdCO0FBQ3BCLGlCQUFXLE9BQU8sV0FBVztBQUN6Qix3QkFBZ0IsaUJBQWlCLFVBQVUsR0FBRztBQUFBLE1BQ2xEO0FBQ0EsVUFBSTtBQUFlLGVBQU8sQ0FBQztBQUFBLElBQy9CO0FBQUEsRUFDSjtBQUNKOzs7QUN2RHlXLFNBQVMsY0FBYyxtQkFBbUI7QUFFblosSUFBSSxXQUFXO0FBQ2YsSUFBTSxZQUFzQixDQUFDO0FBQzdCLElBQU0sV0FBVztBQUNqQixJQUFNLG1CQUFtQjtBQUN6QixJQUFNLGFBQWE7QUFDbkIsSUFBTSxjQUFjO0FBRXBCLElBQU0sWUFBWTtBQUVsQixTQUFTLFlBQVksS0FBdUI7QUFDeEMsUUFBTSxTQUFTLENBQUM7QUFDaEIsUUFBTSxVQUFVLFlBQVksS0FBSztBQUFBLElBQzdCLGVBQWU7QUFBQSxFQUNuQixDQUFDO0FBQ0QsYUFBVyxVQUFVLFNBQVM7QUFDMUIsY0FBVSxLQUFLLEdBQUcsUUFBUSxJQUFJLE9BQU8sS0FBSyxRQUFRLFFBQVEsRUFBRSxDQUFDLEVBQUU7QUFDL0QsUUFBSSxPQUFPLFlBQVksR0FBRztBQUN0QixhQUFPLEtBQUssR0FBRyxZQUFZLE1BQU0sT0FBTyxPQUFPLEdBQUcsQ0FBQztBQUFBLElBQ3ZELE9BQU87QUFDSCxZQUFNLE1BQU0sYUFBYSxNQUFNLE9BQU8sSUFBSSxFQUNyQyxTQUFTLEVBQ1QsUUFBUSxhQUFhLEVBQUUsRUFDdkIsUUFBUSxXQUFXLFNBQVMsRUFDNUIsUUFBUSxVQUFVLENBQUMsSUFBSSxPQUFPO0FBQzNCLFlBQUksUUFBUTtBQUNaLFlBQUksU0FBUztBQUNiLFlBQUksVUFBVSxHQUFHLFFBQVEsa0JBQWtCLENBQUMsSUFBWSxJQUFZLE9BQWU7QUFDL0UsY0FBSSxPQUFPLFNBQVM7QUFDaEIsb0JBQVE7QUFBQSxVQUNaLFdBQVcsT0FBTyxVQUFVO0FBQ3hCLHFCQUFTO0FBQUEsVUFDYjtBQUNBLGlCQUFPO0FBQUEsUUFDWCxDQUFDO0FBQ0QsWUFBSSxDQUFDLFdBQVcsS0FBSyxFQUFFLEdBQUc7QUFDdEIscUJBQVcsZ0JBQWdCLEtBQUssSUFBSSxNQUFNO0FBQUEsUUFDOUM7QUFDQSxlQUFPLGVBQWUsUUFBUSxJQUFJLE9BQU8sS0FBSyxRQUFRLFFBQVEsRUFBRSxDQUFDLEtBQUssT0FBTztBQUFBLE1BQ2pGLENBQUMsRUFDQSxRQUFRLFVBQVUsV0FBVztBQUNsQyxhQUFPLEtBQUssR0FBRztBQUFBLElBQ25CO0FBQUEsRUFDSjtBQUNBLFNBQU87QUFDWDtBQUVPLElBQU0sYUFBYSxDQUFDLE1BQWMsU0FBUyxZQUFZO0FBQzFELE1BQUksU0FBUztBQUFJO0FBQ2pCLGFBQVc7QUFDWCxRQUFNLE1BQU0sWUFBWSxJQUFJO0FBQzVCLFNBQU87QUFBQSxJQUNILE1BQU07QUFBQSxJQUNOLG1CQUFtQixNQUFjO0FBRTdCLGFBQU8sS0FBSztBQUFBLFFBQ1I7QUFBQSxRQUNBO0FBQUE7QUFBQSx1REFFdUMsVUFBVTtBQUFBLFVBQzdDO0FBQUEsUUFDSixDQUFDO0FBQUEsa0JBQ0MsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUFBO0FBQUE7QUFBQSxNQUdsQjtBQUFBLElBRUo7QUFBQSxFQUNKO0FBQ0o7OztBRnRFQSxJQUFNLG1DQUFtQztBQU96QyxJQUFNLGNBQWMsQ0FBQyxRQUFxQjtBQUN0QyxTQUFPLFFBQVEsa0NBQVcsS0FBSyxHQUFHO0FBQ3RDO0FBR0EsSUFBTSxhQUFhLENBQUMsRUFBRSxLQUFLLE1BQTZCO0FBQ3BELFFBQU0sRUFBRSxXQUFXLFdBQVcsZ0JBQWdCLGNBQWMsZUFBZSxJQUFJLFFBQVEsTUFBTSxRQUFRLElBQUksQ0FBQztBQUUxRyxRQUFNLFFBQWdDO0FBQUEsSUFDbEMsTUFBTSxZQUFZLFFBQVE7QUFBQSxJQUMxQixRQUFRLFlBQVksY0FBYztBQUFBLElBQ2xDLFlBQVk7QUFBQSxFQUNoQjtBQUVBLFFBQU0sY0FBYyxDQUFDLGNBQW1CO0FBQ3BDLFVBQU0sTUFBTSxDQUFDO0FBQ2IsUUFBSSxXQUFXO0FBQ1gsa0JBQVksS0FBSyxNQUFNLFNBQVM7QUFDaEMsaUJBQVcsQ0FBQyxRQUFRLE1BQU0sS0FBSyxXQUFXO0FBQ3RDLFlBQUksTUFBTSxJQUFJO0FBQUEsVUFDVjtBQUFBLFVBQ0EsY0FBYztBQUFBLFVBQ2QsU0FBUyxDQUFDLFNBQVMsS0FBSyxRQUFRLElBQUksT0FBTyxJQUFJLE1BQU0sRUFBRSxHQUFHLEVBQUU7QUFBQSxRQUNoRTtBQUFBLE1BQ0o7QUFBQSxJQUNKO0FBRUEsV0FBTztBQUFBLEVBQ1g7QUFZQSxTQUFPO0FBQUEsSUFDSCxTQUFTLENBQUMsSUFBSSxHQUFHLFdBQVcscUJBQXFCLEdBQUcsZ0JBQWdCLENBQUM7QUFBQSxJQUNyRSxNQUFNLFFBQVEsSUFBSTtBQUFBLElBQ2xCLFNBQVMsRUFBRSxNQUFNO0FBQUEsSUFDakIsTUFBTTtBQUFBLElBQ04sUUFBUTtBQUFBLE1BQ0osTUFBTSxTQUFTLFNBQVM7QUFBQSxNQUN4QixNQUFNLGFBQWE7QUFBQSxNQUNuQixPQUFPO0FBQUEsUUFDSCxHQUFHLFlBQVksY0FBYztBQUFBLE1BQ2pDO0FBQUEsSUFDSjtBQUFBLElBQ0EsT0FBTztBQUFBLE1BQ0gsY0FBYztBQUFBLE1BQ2QsV0FBVztBQUFBLE1BQ1gsUUFBUTtBQUFBLE1BQ1IsYUFBYTtBQUFBLE1BQ2IsdUJBQXVCO0FBQUEsTUFDdkIsZUFBZTtBQUFBLFFBQ1gsVUFBVTtBQUFBLFVBQ04sZUFBZTtBQUFBO0FBQUEsVUFFZixjQUFjO0FBQUEsVUFDZCxlQUFlO0FBQUEsUUFDbkI7QUFBQSxRQUNBLFFBQVE7QUFBQSxVQUNKLFVBQVU7QUFBQTtBQUFBLFFBQ2Q7QUFBQSxNQUNKO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDWCxRQUFRO0FBQUEsVUFDSixjQUFjO0FBQUE7QUFBQSxZQUVWLEtBQUssQ0FBQyxPQUFPLGNBQWMsU0FBUyxZQUFZLGNBQWM7QUFBQSxZQUM5RCxTQUFTLENBQUMsU0FBUztBQUFBLFVBQ3ZCO0FBQUEsUUFDSjtBQUFBLE1BQ0o7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUNKO0FBRUEsSUFBTyxzQkFBUTsiLAogICJuYW1lcyI6IFtdCn0K
|