main
guodingfang 2 years ago
parent cc0574e72a
commit 3f984ab118

Binary file not shown.

@ -61,7 +61,7 @@
> >
</div> </div>
<div class="popup-nav-children-list" v-if="havChildId === item.id"> <div class="popup-nav-children-list" v-if="havChildId === item.id">
<div v-for="cItem in item.children" :key="cItem.id" class="popup-nav-children-item-title" @click="onPopupNavItem(item)">{{ cItem.title }}</div> <div v-for="cItem in item.children" :key="cItem.id" class="popup-nav-children-item-title" @click="onPopupNavItem(cItem)">{{ cItem.title }}</div>
</div> </div>
</li> </li>
</ul> </ul>
@ -81,12 +81,12 @@
<img style="cursor:pointer;" :src="item.image" v-for="(item, index) in shareList" @click="handleShare(item)" alt="The image cannot be displayed properly"> <img style="cursor:pointer;" :src="item.image" v-for="(item, index) in shareList" @click="handleShare(item)" alt="The image cannot be displayed properly">
</div> </div>
<div class="footer-menus"> <div class="footer-menus">
<div class="small-font skip-a">
<span @click="onSkip('/about')">Team</span>
</div>
<div class="small-font skip-a"> <div class="small-font skip-a">
<span @click="onSkip('http://jobs.foresightventures.com/')">Jobs</span> <span @click="onSkip('http://jobs.foresightventures.com/')">Jobs</span>
</div> </div>
<!-- <div class="small-font skip-a">
<span @click="onSkip('/about')">Team</span>
</div> -->
<div class="small-font skip-a"> <div class="small-font skip-a">
<span @click="onSkip('/terms')">Terms of Use</span> <span @click="onSkip('/terms')">Terms of Use</span>
</div> </div>
@ -186,6 +186,7 @@ const handleShare = (item)=> {
} }
const onNavEnter = (event, item) => { const onNavEnter = (event, item) => {
clearInterval(timer.value)
if (item && item.children.length > 0) { if (item && item.children.length > 0) {
const header = document.getElementById('header') const header = document.getElementById('header')
const left = header.getBoundingClientRect().left const left = header.getBoundingClientRect().left
@ -202,7 +203,7 @@ const onNavEnter = (event, item) => {
const onNavLeave = (event) => { const onNavLeave = (event) => {
timer.value = setTimeout(() => { timer.value = setTimeout(() => {
navChildren.value.style.display = 'none' navChildren.value.style.display = 'none'
}, 1250) }, 750)
} }
const onNavChildrenEnter = () => { const onNavChildrenEnter = () => {
@ -210,7 +211,9 @@ const onNavChildrenEnter = () => {
} }
const onNavChildrenLeave = () => { const onNavChildrenLeave = () => {
timer.value = setTimeout(() => {
navChildren.value.style.display = 'none' navChildren.value.style.display = 'none'
}, 250)
} }
const onPopupNavItem = (item) => { const onPopupNavItem = (item) => {
@ -218,6 +221,11 @@ const onPopupNavItem = (item) => {
havChildId.value = havChildId.value ? '' : item.id havChildId.value = havChildId.value ? '' : item.id
return return
} }
const reg = /^(http|https)/
if (reg.test(item.link)) {
window.open(item.link)
return
}
router.push(item.link) router.push(item.link)
} }

@ -38,6 +38,9 @@ const props = defineProps({
<style lang="scss" scoped> <style lang="scss" scoped>
.member { .member {
align-self: flex-start;
display: flex;
flex-direction: column;
width: calc(100vw / 8); width: calc(100vw / 8);
margin: 0 10px; margin: 0 10px;
margin-bottom: 48px; margin-bottom: 48px;
@ -157,6 +160,7 @@ const props = defineProps({
@media screen and (max-width: 958Px) and (min-width: 431Px) { @media screen and (max-width: 958Px) and (min-width: 431Px) {
width: calc(100vw / 6) !important; width: calc(100vw / 6) !important;
.avatar { .avatar {
width: 70px; width: 70px;
height: 70px; height: 70px;
@ -177,7 +181,7 @@ const props = defineProps({
@media screen and (max-width:431Px) and (min-width: 0Px) { @media screen and (max-width:431Px) and (min-width: 0Px) {
width: 93px !important; width: 93px !important;
margin: 48px 0 0; margin: 48px 5px 5px;
.member-name { .member-name {
font-size: 14px; font-size: 14px;

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<van-pagination class="page-com" v-model="page" :total-items="total" :items-per-page="per" force-ellipses <van-pagination class="page-com" v-model="pageNumber" :total-items="total" :items-per-page="per" force-ellipses
@change="checkPage"> @change="checkPage">
<template #prev-text> <template #prev-text>
<van-icon name="arrow-left" /> <van-icon name="arrow-left" />
@ -13,6 +13,7 @@
</template> </template>
<script setup> <script setup>
import { computed } from 'vue'
const props = defineProps({ const props = defineProps({
page: Number, page: Number,
@ -20,6 +21,16 @@ const props = defineProps({
per: Number per: Number
}) })
const pageNumber = computed({
get() {
return props.page
},
set(val) {
// console.log('val', val)
// emit('changePage', val)
}
})
const emit = defineEmits(['changePage']) const emit = defineEmits(['changePage'])
const checkPage = (data) => { const checkPage = (data) => {

@ -1,6 +1,6 @@
<template> <template>
<div class="research-module flex" @click="toDetail(data.id)"> <div class="research-module flex" @click="toDetail(data.id)">
<div class="research-img" v-show="!(isSma && type === 'searchResult')"> <div class="research-img">
<!-- <template v-if="isMid">--> <!-- <template v-if="isMid">-->
<!-- <div :style="`background: url(${data.cover_image}) no-repeat center/cover content-box; margin-bottom: 10px;`" class="img" alt="The image cannot be displayed properly" />--> <!-- <div :style="`background: url(${data.cover_image}) no-repeat center/cover content-box; margin-bottom: 10px;`" class="img" alt="The image cannot be displayed properly" />-->
<!--&lt;!&ndash; <div :style="`background: url(/uploads/20221118/4e49a28329e187226d9305445aca0931.png) no-repeat center/100% 100% content-box`" class="img" alt="The image cannot be displayed properly" />&ndash;&gt;--> <!--&lt;!&ndash; <div :style="`background: url(/uploads/20221118/4e49a28329e187226d9305445aca0931.png) no-repeat center/100% 100% content-box`" class="img" alt="The image cannot be displayed properly" />&ndash;&gt;-->
@ -69,8 +69,10 @@ const toDetail = (id) => {
.research-img { .research-img {
//width: 150px; //width: 150px;
//height: 100px; //height: 100px;
margin: 20px 0; width: 240px;
margin-right: 40px; height: 160px;
margin-bottom: 60px;
margin-right: 20px;
position: relative; position: relative;
.featured { .featured {
@ -89,14 +91,13 @@ const toDetail = (id) => {
} }
.img { .img {
width: 150px; width: 100% !important;
height: 100px; height: 100% !important;
} }
} }
.research-info { .research-info {
margin: 20px 0px; flex: 1;
width: 100%;
.research-nav { .research-nav {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@ -105,7 +106,7 @@ const toDetail = (id) => {
font-family: "Raleway"; font-family: "Raleway";
font-style: italic; font-style: italic;
font-weight: bolder; font-weight: bolder;
font-size: 14Px; font-size: 14px;
line-height: 21px; line-height: 21px;
color: #00000080; color: #00000080;
margin-right: 10px; margin-right: 10px;
@ -115,7 +116,7 @@ const toDetail = (id) => {
font-family: "Raleway"; font-family: "Raleway";
font-style: normal; font-style: normal;
font-weight: bolder; font-weight: bolder;
font-size: 14Px; font-size: 14px;
line-height: 21px; line-height: 21px;
color: rgba(0, 0, 0, 0.25); color: rgba(0, 0, 0, 0.25);
} }
@ -150,17 +151,19 @@ const toDetail = (id) => {
font-family: "Libre Bodoni"; font-family: "Libre Bodoni";
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
font-size: 18Px; font-size: 24px;
line-height: 24px; line-height: 24px;
text-overflow: ellipsis; text-overflow: ellipsis;
margin-top: 6px;
} }
.research-content { .research-content {
// height: 60px; // height: 60px;
margin-top: 14px;
font-family: 'Raleway'; font-family: 'Raleway';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
font-size: 12Px; font-size: 12px;
line-height: 16px; line-height: 16px;
overflow: hidden; overflow: hidden;
color: #000000bf; color: #000000bf;
@ -175,84 +178,137 @@ const toDetail = (id) => {
} }
} }
@media screen and (min-width: 1440Px) and (max-width: 100vw) { @media (max-width: 1280Px) {
.research-author {
.research-module { font-size: 14px !important;
.research-img {
width: 400Px;
height: 200Px;
flex-shrink: 0;
margin-right: 50px !important;
//margin-right: 0 !important;
.img {
width: 100%;
height: 100%;
}
} }
.topic_item {
font-size: 12px !important;
height: 26px !important;
line-height: 26px !important;
} }
.research-author, .research-module {
.research-date { margin-top: 36px !important;
font-size: 24Px !important; .research-img {
width: 170px !important;
height: 106px !important;
margin-bottom: 40px !important;
} }
.research-title { .research-title {
margin-top: 12px !important; margin-top: 3px !important;
font-size: 24px !important; font-size: 14px !important;
} }
.research-content { .research-content {
margin-top: 14px !important; margin-top: 6px !important;
font-size: 16Px !important; font-size: 12px !important;
line-height: 24Px !important;
-webkit-line-clamp: 4 !important;
} }
.featured {
width: 60px;
top: 13px;
font-size: 14Px;
line-height: 14px;
} }
} }
@media screen and (min-width: 0Px) and (max-width: 431Px) {
.research-module {
display: block;
// width: 353Px !important;
@media (max-width: 767Px) {
.research-module {
flex-direction: column !important;
.research-img { .research-img {
width: 100% !important; width: 100% !important;
height: 100% !important; height: 190px !important;
margin-bottom: 2px !important;
.img { }
.research-info {
width: 100% !important;
.topics {
width: 100% !important; width: 100% !important;
height: 4.5rem !important; margin-top: 2px !important;
} }
.research-content {
width: 100% !important;
} }
.research-nav {
margin-top: 2px !important;
width: 100% !important;
} }
.research-title {
margin: 12px 0 0 !important;
width: 327px !important;
} }
.research-content {
margin: 14px 0 0 !important;
width: 327px !important;
} }
}
// @media screen and (min-width: 1440Px) and (max-width: 100vw) {
.research-info { // .research-module {
margin: 30px 0 !important; // .research-img {
width: 327px !important; // width: 400Px;
} // height: 200Px;
// flex-shrink: 0;
// //margin-right: 0 !important;
// .img {
// width: 100%;
// height: 100%;
// }
// }
.featured { // }
width: 80px !important; // .research-author,
top: 13px; // .research-date {
right: 0; // font-size: 24Px !important;
font-size: 12Px; // }
line-height: 22px !important;
} // .research-title {
} // margin-top: 6px !important;
// font-size: 24px !important;
// }
// .research-content {
// margin-top: 14px !important;
// font-size: 16Px !important;
// line-height: 24Px !important;
// -webkit-line-clamp: 4 !important;
// }
// .featured {
// width: 60px;
// top: 13px;
// font-size: 14Px;
// line-height: 14px;
// }
// }
// @media screen and (min-width: 0Px) and (max-width: 431Px) {
// .research-module {
// display: block;
// // width: 353Px !important;
// .research-img {
// width: 100% !important;
// height: 100% !important;
// .img {
// width: 100% !important;
// height: 4.5rem !important;
// }
// }
// }
// .research-title {
// margin: 12px 0 0 !important;
// width: 327px !important;
// }
// .research-content {
// margin: 14px 0 0 !important;
// width: 327px !important;
// }
// .research-info {
// margin: 30px 0 !important;
// width: 327px !important;
// }
// .featured {
// width: 80px !important;
// top: 13px;
// right: 0;
// font-size: 12Px;
// line-height: 22px !important;
// }
// }
</style> </style>

@ -1,4 +1,4 @@
import {createRouter, createWebHashHistory, createWebHistory} from 'vue-router' import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router'
const routes = [ const routes = [
{ {

@ -1,20 +1,21 @@
import {useRoute} from "vue-router"; import { useRoute } from "vue-router";
import {reactive} from "vue"; import { reactive } from "vue";
import {getNavInfoApi} from "../api/manage.js"; import { getNavInfoApi } from "../api/manage.js";
import {useStore} from "vuex"; import { useStore } from "vuex";
export default function useTitleInfo(){ export default function useTitleInfo() {
const route = useRoute() const route = useRoute()
const store = useStore() const store = useStore()
const titleInfo = reactive({ const titleInfo = reactive({
title:'', title: '',
subTitle:'' subTitle: ''
}) })
console.log(route, store) console.log(route, store)
const getTitle = ()=>{ const getTitle = () => {
getNavInfoApi({ getNavInfoApi({
title: store.getters.navList.find(it=> it.link === route.path)?.title ?? '' title: store.getters.navList.find(it => it.link === route.path)?.title ?? ''
}).then(res=>{ }).then(res => {
console.log('res', res)
if (res.data) { if (res.data) {
titleInfo.title = res.data.title; titleInfo.title = res.data.title;
titleInfo.subTitle = res.data.description; titleInfo.subTitle = res.data.description;

@ -2,13 +2,13 @@
<div class="about"> <div class="about">
<div class="container"> <div class="container">
<!-- 标题 title --> <!-- 标题 title -->
<BigTitleComVue :bigTitle="titleInfo.title" /> <BigTitleComVue bigTitle="About" text-align="left" />
<div class="about-foresight"> <div class="about-foresight">
<!-- <LineTitleComVue :msg="'About Foresight'" />--> <!-- <LineTitleComVue :msg="'About Foresight'" />-->
<div class="about-foresight-content" v-html="aboutDesc.content" /> <div class="about-foresight-content" v-html="aboutDesc.content" />
</div> </div>
<!-- 分类标题 sideTitle --> <!-- 分类标题 sideTitle -->
<LineTitleComVue :msg="'Team'" /> <BigTitleComVue bigTitle="Team" text-align="left" />
<!-- <div class="s_title">Team</div> --> <!-- <div class="s_title">Team</div> -->
<!-- 团队成员 team members --> <!-- 团队成员 team members -->
<div class="members"> <div class="members">
@ -20,7 +20,8 @@
<div class="touch"> <div class="touch">
<div class="container"> <div class="container">
<div class="block"></div> <div class="block"></div>
<LineTitleComVue :msg="'Get in Touch'" /> <BigTitleComVue bigTitle="Get in Touch" text-align="left" />
<div class="touch-list">
<div :key="item" v-for="item in Object.keys(get_in_touch)" class="touch-email"> <div :key="item" v-for="item in Object.keys(get_in_touch)" class="touch-email">
<div class="touch-email-title"> <div class="touch-email-title">
{{ item }} {{ item }}
@ -31,6 +32,7 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</div> </div>
</template> </template>
@ -38,10 +40,10 @@
import BigTitleComVue from '../components/BigTitleCom.vue'; import BigTitleComVue from '../components/BigTitleCom.vue';
import LineTitleComVue from '../components/LineTitleCom.vue'; import LineTitleComVue from '../components/LineTitleCom.vue';
import MembersComVue from '../components/MembersCom.vue'; import MembersComVue from '../components/MembersCom.vue';
import {onMounted, reactive, ref} from "vue"; import { onMounted, reactive, ref, computed } from "vue";
import {getConfigApi, getNavData, getNavInfoApi, getPageApi, getTeamApi} from "../api/manage.js"; import { getConfigApi, getNavData, getNavInfoApi, getPageApi, getTeamApi } from "../api/manage.js";
import {useStore} from "vuex"; import { useStore } from "vuex";
import {useRoute} from "vue-router"; import { useRoute } from "vue-router";
import useTitleInfo from "../utils/useTitleInfo.js"; import useTitleInfo from "../utils/useTitleInfo.js";
const titleInfo = useTitleInfo() const titleInfo = useTitleInfo()
const get_in_touch = ref({ const get_in_touch = ref({
@ -115,23 +117,20 @@ const teamData = [
] ]
*/ */
const getData = () => {
getTeamApi().then(res => {
const getData = ()=>{
getTeamApi().then(res=>{
teamData.value = res.data teamData.value = res.data
}) })
getConfigApi({ key: 'get_in_touch' }).then(res => {
getConfigApi({key: 'get_in_touch'}).then(res=>{
get_in_touch.value = res.data; get_in_touch.value = res.data;
}) })
getPageApi({title:'About Foresight'}).then(res=>{ getPageApi({ title: 'About Foresight' }).then(res => {
aboutDesc.value = res.data aboutDesc.value = res.data
}) })
} }
onMounted(()=>{ onMounted(() => {
getData() getData()
}) })
</script> </script>
@ -141,8 +140,8 @@ onMounted(()=>{
padding: 28px 0 0; padding: 28px 0 0;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; // justify-content: space-between;
margin: 0 -10px; margin: 0 auto;
@media screen and (min-width:1440Px) and (max-width: 100vw) { @media screen and (min-width:1440Px) and (max-width: 100vw) {
margin: 0 -20px; margin: 0 -20px;
@ -165,9 +164,47 @@ onMounted(()=>{
display: none; display: none;
} }
.touch-list {
display: flex;
margin-bottom: 80px;
}
@media (max-width: 1280Px) {
.touch-list {
flex-direction: column;
margin-bottom: 0px;
.touch-email {
margin-bottom: 20px;
}
}
}
@media (max-width: 767Px) {
.touch-list {
flex-direction: column;
margin-bottom: 0px;
.touch-email {
width: 100%;
.touch-email-title {}
.touch-email-content {
font-size: 14px !important;
}
}
}
}
.touch-email { .touch-email {
margin-top: 24px; background: #EFEFEF;
margin-bottom: 10px; margin-right: 14px;
padding: 20px 26px;
width: 360px;
box-sizing: border-box;
// margin-top: 24px;
// margin-bottom: 10px;
.touch-email-title { .touch-email-title {
font-family: 'Libre Bodoni'; font-family: 'Libre Bodoni';
@ -220,6 +257,7 @@ onMounted(()=>{
.about-foresight { .about-foresight {
margin-bottom: 40px !important; margin-bottom: 40px !important;
.block { .block {
height: 44px; height: 44px;
} }
@ -232,7 +270,7 @@ onMounted(()=>{
font-weight: 400; font-weight: 400;
font-size: 14Px; font-size: 14Px;
line-height: 16px; line-height: 16px;
color: rgba(0, 0, 0, 0.5); color: rgba(0, 0, 0, 1);
@media screen and (min-width:1440Px) and (max-width: 100vw) { @media screen and (min-width:1440Px) and (max-width: 100vw) {
font-size: 16Px; font-size: 16Px;
@ -270,7 +308,8 @@ onMounted(()=>{
} }
} }
} }
.s_title{
.s_title {
font-family: 'Cinzel'; font-family: 'Cinzel';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
@ -280,10 +319,12 @@ onMounted(()=>{
color: rgba(0, 0, 0, 0.25); color: rgba(0, 0, 0, 0.25);
margin-top: 50Px; margin-top: 50Px;
@media screen and (min-width:1440Px) and (max-width: 100vw) { @media screen and (min-width:1440Px) and (max-width: 100vw) {
font-size: 24px !important; font-size: 24px !important;
} }
@media (max-width: 431Px){
@media (max-width: 431Px) {
margin-top: 36Px; margin-top: 36Px;
} }
} }

@ -99,6 +99,10 @@ const getData = () => {
recommendList.value = res.data.data recommendList.value = res.data.data
} }
}) })
nextTick(() => {
const content = document.getElementsByClassName('view-content')
content[0].scrollTop = 0;
})
} }
const getNewsData = () => { const getNewsData = () => {
clickNewsApi({news_id: contentId.value}).then(async res => { clickNewsApi({news_id: contentId.value}).then(async res => {
@ -167,7 +171,6 @@ const toDetail = (item)=> {
onMounted(() => { onMounted(() => {
if (articleType.value === 'news') { if (articleType.value === 'news') {
getNewsData() getNewsData()
}else { }else {
getData() getData()
@ -364,6 +367,7 @@ body {
.title { .title {
font-size: 28px; font-size: 28px;
line-height: 44px;
} }
.author { .author {

@ -88,7 +88,7 @@ const BtnText = reactive({
{id: -1, title: "All"}, {id: -1, title: "All"},
], ],
authors:[ authors:[
{id: -1, name: "All"},
] ]
}); });
// //
@ -211,7 +211,7 @@ const getData = () => {
params.topic_id = topicId.value params.topic_id = topicId.value
} }
if (authorId.value) { if (authorId.value && authorId.value !== -1) {
params.author_id = authorId.value params.author_id = authorId.value
} }
@ -242,6 +242,7 @@ const ContentPages = (id) => {
}; };
// changePage // changePage
const changePage = (data) => { const changePage = (data) => {
console.log('data', data)
page.value = data; page.value = data;
getData(); getData();
}; };

@ -0,0 +1,53 @@
// vite.config.js
import { defineConfig, loadEnv } from "file:///D:/work/project/foresightVertures/node_modules/vite/dist/node/index.js";
import vue from "file:///D:/work/project/foresightVertures/node_modules/@vitejs/plugin-vue/dist/index.mjs";
import Components from "file:///D:/work/project/foresightVertures/node_modules/unplugin-vue-components/dist/vite.mjs";
import { VantResolver } from "file:///D:/work/project/foresightVertures/node_modules/unplugin-vue-components/dist/resolvers.mjs";
var vite_config_default = defineConfig(({ mode }) => {
const { VITE_API_URL, VITE_DOMAIN_URL, VITE_IMG_API_URL, VITE_IMG_DOMAIN_URL } = loadEnv(mode, process.cwd());
console.log("VITE_IMG_API_URL>>>>", VITE_IMG_DOMAIN_URL);
return {
plugins: [
vue(),
Components({
resolvers: [VantResolver()]
})
],
resolve: {
alias: {
"@": "/src"
}
},
server: {
host: true,
proxy: {
[VITE_API_URL]: {
target: VITE_DOMAIN_URL,
changeOrigin: true,
ws: true,
rewrite: (path) => path.replace(new RegExp(`^${VITE_API_URL}`), "")
},
[VITE_IMG_API_URL]: {
target: VITE_IMG_DOMAIN_URL,
changeOrigin: true,
ws: true,
rewrite: (path) => path.replace(new RegExp(`^${VITE_IMG_API_URL}`), "")
}
},
hmr: {
overlay: false
}
},
build: {
rollupOptions: {
external: [
"element-plus"
]
}
}
};
});
export {
vite_config_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcuanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJEOlxcXFx3b3JrXFxcXHByb2plY3RcXFxcZm9yZXNpZ2h0VmVydHVyZXNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkQ6XFxcXHdvcmtcXFxccHJvamVjdFxcXFxmb3Jlc2lnaHRWZXJ0dXJlc1xcXFx2aXRlLmNvbmZpZy5qc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRDovd29yay9wcm9qZWN0L2ZvcmVzaWdodFZlcnR1cmVzL3ZpdGUuY29uZmlnLmpzXCI7aW1wb3J0IHsgZGVmaW5lQ29uZmlnLCBsb2FkRW52IH0gZnJvbSAndml0ZSdcbmltcG9ydCB2dWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJ1xuaW1wb3J0IENvbXBvbmVudHMgZnJvbSAndW5wbHVnaW4tdnVlLWNvbXBvbmVudHMvdml0ZSdcbmltcG9ydCB7IFZhbnRSZXNvbHZlciB9IGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3Jlc29sdmVycydcblxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cblxuLyoqXG4gKiBAdHlwZSB7aW1wb3J0KCd2aXRlJykuVXNlckNvbmZpZ31cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKCh7IG1vZGUgfSkgPT4ge1xuICBjb25zdCB7IFZJVEVfQVBJX1VSTCwgVklURV9ET01BSU5fVVJMLCBWSVRFX0lNR19BUElfVVJMLCBWSVRFX0lNR19ET01BSU5fVVJMIH0gPSBsb2FkRW52KG1vZGUsIHByb2Nlc3MuY3dkKCkpXG4gIGNvbnNvbGUubG9nKFwiVklURV9JTUdfQVBJX1VSTD4+Pj5cIiwgVklURV9JTUdfRE9NQUlOX1VSTCk7XG4gIHJldHVybiB7XG4gICAgcGx1Z2luczogW1xuICAgICAgdnVlKCksXG4gICAgICBDb21wb25lbnRzKHtcbiAgICAgICAgcmVzb2x2ZXJzOiBbVmFudFJlc29sdmVyKCldXG4gICAgICB9KVxuICAgIF0sXG4gICAgcmVzb2x2ZToge1xuICAgICAgLy8gXHU5MTREXHU3RjZFXHU4REVGXHU1Rjg0XHU1MjJCXHU1NDBEXG4gICAgICBhbGlhczoge1xuICAgICAgICAnQCc6ICcvc3JjJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBzZXJ2ZXI6IHtcbiAgICAgIGhvc3Q6IHRydWUsXG4gICAgICBwcm94eToge1xuICAgICAgICBbVklURV9BUElfVVJMXToge1xuICAgICAgICAgIHRhcmdldDogVklURV9ET01BSU5fVVJMLFxuICAgICAgICAgIGNoYW5nZU9yaWdpbjogdHJ1ZSxcbiAgICAgICAgICB3czogdHJ1ZSxcbiAgICAgICAgICByZXdyaXRlOiBwYXRoID0+IHBhdGgucmVwbGFjZShuZXcgUmVnRXhwKGBeJHtWSVRFX0FQSV9VUkx9YCksICcnKSxcbiAgICAgICAgfSxcbiAgICAgICAgW1ZJVEVfSU1HX0FQSV9VUkxdOiB7XG4gICAgICAgICAgdGFyZ2V0OiBWSVRFX0lNR19ET01BSU5fVVJMLFxuICAgICAgICAgIGNoYW5nZU9yaWdpbjogdHJ1ZSxcbiAgICAgICAgICB3czogdHJ1ZSxcbiAgICAgICAgICByZXdyaXRlOiBwYXRoID0+IHBhdGgucmVwbGFjZShuZXcgUmVnRXhwKGBeJHtWSVRFX0lNR19BUElfVVJMfWApLCAnJyksXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBobXI6IHtcbiAgICAgICAgb3ZlcmxheTogZmFsc2VcbiAgICAgIH1cbiAgICB9LFxuICAgIGJ1aWxkOiB7XG4gICAgICByb2xsdXBPcHRpb25zOiB7XG4gICAgICAgIGV4dGVybmFsOiBbXG4gICAgICAgICAgXCJlbGVtZW50LXBsdXNcIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfVxuICB9XG59KVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUE2UixTQUFTLGNBQWMsZUFBZTtBQUNuVSxPQUFPLFNBQVM7QUFDaEIsT0FBTyxnQkFBZ0I7QUFDdkIsU0FBUyxvQkFBb0I7QUFPN0IsSUFBTyxzQkFBUSxhQUFhLENBQUMsRUFBRSxLQUFLLE1BQU07QUFDeEMsUUFBTSxFQUFFLGNBQWMsaUJBQWlCLGtCQUFrQixvQkFBb0IsSUFBSSxRQUFRLE1BQU0sUUFBUSxJQUFJLENBQUM7QUFDNUcsVUFBUSxJQUFJLHdCQUF3QixtQkFBbUI7QUFDdkQsU0FBTztBQUFBLElBQ0wsU0FBUztBQUFBLE1BQ1AsSUFBSTtBQUFBLE1BQ0osV0FBVztBQUFBLFFBQ1QsV0FBVyxDQUFDLGFBQWEsQ0FBQztBQUFBLE1BQzVCLENBQUM7QUFBQSxJQUNIO0FBQUEsSUFDQSxTQUFTO0FBQUEsTUFFUCxPQUFPO0FBQUEsUUFDTCxLQUFLO0FBQUEsTUFDUDtBQUFBLElBQ0Y7QUFBQSxJQUNBLFFBQVE7QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE9BQU87QUFBQSxRQUNMLENBQUMsZUFBZTtBQUFBLFVBQ2QsUUFBUTtBQUFBLFVBQ1IsY0FBYztBQUFBLFVBQ2QsSUFBSTtBQUFBLFVBQ0osU0FBUyxVQUFRLEtBQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxjQUFjLEdBQUcsRUFBRTtBQUFBLFFBQ2xFO0FBQUEsUUFDQSxDQUFDLG1CQUFtQjtBQUFBLFVBQ2xCLFFBQVE7QUFBQSxVQUNSLGNBQWM7QUFBQSxVQUNkLElBQUk7QUFBQSxVQUNKLFNBQVMsVUFBUSxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksa0JBQWtCLEdBQUcsRUFBRTtBQUFBLFFBQ3RFO0FBQUEsTUFDRjtBQUFBLE1BQ0EsS0FBSztBQUFBLFFBQ0gsU0FBUztBQUFBLE1BQ1g7QUFBQSxJQUNGO0FBQUEsSUFDQSxPQUFPO0FBQUEsTUFDTCxlQUFlO0FBQUEsUUFDYixVQUFVO0FBQUEsVUFDUjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo=
Loading…
Cancel
Save