main
guodingfang 2 years ago
parent cc0574e72a
commit 3f984ab118

Binary file not shown.

@ -61,7 +61,7 @@
>
</div>
<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>
</li>
</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">
</div>
<div class="footer-menus">
<div class="small-font skip-a">
<span @click="onSkip('/about')">Team</span>
</div>
<div class="small-font skip-a">
<span @click="onSkip('http://jobs.foresightventures.com/')">Jobs</span>
</div>
<!-- <div class="small-font skip-a">
<span @click="onSkip('/about')">Team</span>
</div> -->
<div class="small-font skip-a">
<span @click="onSkip('/terms')">Terms of Use</span>
</div>
@ -186,6 +186,7 @@ const handleShare = (item)=> {
}
const onNavEnter = (event, item) => {
clearInterval(timer.value)
if (item && item.children.length > 0) {
const header = document.getElementById('header')
const left = header.getBoundingClientRect().left
@ -202,7 +203,7 @@ const onNavEnter = (event, item) => {
const onNavLeave = (event) => {
timer.value = setTimeout(() => {
navChildren.value.style.display = 'none'
}, 1250)
}, 750)
}
const onNavChildrenEnter = () => {
@ -210,7 +211,9 @@ const onNavChildrenEnter = () => {
}
const onNavChildrenLeave = () => {
navChildren.value.style.display = 'none'
timer.value = setTimeout(() => {
navChildren.value.style.display = 'none'
}, 250)
}
const onPopupNavItem = (item) => {
@ -218,6 +221,11 @@ const onPopupNavItem = (item) => {
havChildId.value = havChildId.value ? '' : item.id
return
}
const reg = /^(http|https)/
if (reg.test(item.link)) {
window.open(item.link)
return
}
router.push(item.link)
}

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

@ -1,6 +1,6 @@
<template>
<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">
<template #prev-text>
<van-icon name="arrow-left" />
@ -13,6 +13,7 @@
</template>
<script setup>
import { computed } from 'vue'
const props = defineProps({
page: Number,
@ -20,6 +21,16 @@ const props = defineProps({
per: Number
})
const pageNumber = computed({
get() {
return props.page
},
set(val) {
// console.log('val', val)
// emit('changePage', val)
}
})
const emit = defineEmits(['changePage'])
const checkPage = (data) => {

@ -1,6 +1,6 @@
<template>
<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">-->
<!-- <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;-->
@ -69,8 +69,10 @@ const toDetail = (id) => {
.research-img {
//width: 150px;
//height: 100px;
margin: 20px 0;
margin-right: 40px;
width: 240px;
height: 160px;
margin-bottom: 60px;
margin-right: 20px;
position: relative;
.featured {
@ -89,14 +91,13 @@ const toDetail = (id) => {
}
.img {
width: 150px;
height: 100px;
width: 100% !important;
height: 100% !important;
}
}
.research-info {
margin: 20px 0px;
width: 100%;
flex: 1;
.research-nav {
display: flex;
justify-content: space-between;
@ -105,7 +106,7 @@ const toDetail = (id) => {
font-family: "Raleway";
font-style: italic;
font-weight: bolder;
font-size: 14Px;
font-size: 14px;
line-height: 21px;
color: #00000080;
margin-right: 10px;
@ -115,7 +116,7 @@ const toDetail = (id) => {
font-family: "Raleway";
font-style: normal;
font-weight: bolder;
font-size: 14Px;
font-size: 14px;
line-height: 21px;
color: rgba(0, 0, 0, 0.25);
}
@ -150,17 +151,19 @@ const toDetail = (id) => {
font-family: "Libre Bodoni";
font-style: normal;
font-weight: 400;
font-size: 18Px;
font-size: 24px;
line-height: 24px;
text-overflow: ellipsis;
margin-top: 6px;
}
.research-content {
// height: 60px;
margin-top: 14px;
font-family: 'Raleway';
font-style: normal;
font-weight: 400;
font-size: 12Px;
font-size: 12px;
line-height: 16px;
overflow: hidden;
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 {
font-size: 14px !important;
}
.topic_item {
font-size: 12px !important;
height: 26px !important;
line-height: 26px !important;
}
.research-module {
margin-top: 36px !important;
.research-img {
width: 400Px;
height: 200Px;
flex-shrink: 0;
margin-right: 50px !important;
//margin-right: 0 !important;
.img {
width: 100%;
height: 100%;
}
width: 170px !important;
height: 106px !important;
margin-bottom: 40px !important;
}
.research-title {
margin-top: 3px !important;
font-size: 14px !important;
}
.research-content {
margin-top: 6px !important;
font-size: 12px !important;
}
}
.research-author,
.research-date {
font-size: 24Px !important;
}
.research-title {
margin-top: 12px !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;
@media (max-width: 767Px) {
.research-module {
flex-direction: column !important;
.research-img {
width: 100% !important;
height: 100% !important;
.img {
height: 190px !important;
margin-bottom: 2px !important;
}
.research-info {
width: 100% !important;
.topics {
width: 100% !important;
margin-top: 2px !important;
}
.research-content {
width: 100% !important;
}
.research-nav {
margin-top: 2px !important;
width: 100% !important;
height: 4.5rem !important;
}
}
}
.research-title {
margin: 12px 0 0 !important;
width: 327px !important;
}
}
// @media screen and (min-width: 1440Px) and (max-width: 100vw) {
.research-content {
margin: 14px 0 0 !important;
width: 327px !important;
}
// .research-module {
// .research-img {
// width: 400Px;
// height: 200Px;
// flex-shrink: 0;
// //margin-right: 0 !important;
// .img {
// width: 100%;
// height: 100%;
// }
// }
.research-info {
margin: 30px 0 !important;
width: 327px !important;
}
// }
// .research-author,
// .research-date {
// font-size: 24Px !important;
// }
.featured {
width: 80px !important;
top: 13px;
right: 0;
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>

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

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

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

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

@ -85,10 +85,10 @@ const isClickChangeAuthor = ref(true)
//
const BtnText = reactive({
topic:[
{id: -1, title: "All"},
{id: -1, title: "All"},
],
authors:[
{id: -1, name: "All"},
]
});
//
@ -211,7 +211,7 @@ const getData = () => {
params.topic_id = topicId.value
}
if (authorId.value) {
if (authorId.value && authorId.value !== -1) {
params.author_id = authorId.value
}
@ -242,6 +242,7 @@ const ContentPages = (id) => {
};
// changePage
const changePage = (data) => {
console.log('data', data)
page.value = data;
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