vue-layout-gitcode 1.5.35 → 1.5.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,10 @@
1
1
  import { defineComponent, inject, createElementBlock, openBlock, Fragment, createElementVNode, toDisplayString, createVNode, unref, renderList, withDirectives, createBlock, ref, watch, onMounted, createCommentVNode } from "vue";
2
2
  import "vue-devui-lal/icon";
3
3
  import "vue-devui-lal/icon/style.css";
4
- import { h as headRequest, R as REPO_MODULE, a as i18n, G as GIcon, v as vElementExposure, b as REPO_EVENT, _ as _export_sfc, c as REPO_TYPE, e as extractRepoInfoWithURL } from "./index-CHa5wjmB.js";
4
+ import { h as headRequest, R as REPO_MODULE, a as i18n, G as GIcon, v as vElementExposure, b as REPO_EVENT, _ as _export_sfc, c as REPO_TYPE, e as extractRepoInfoWithURL } from "./index-CsxT-DMO.js";
5
5
  import "lodash/debounce";
6
- import { u as useReportRepo, S as SearchRepoCard, f as formatNameSpace } from "./index-CScU2Cue.js";
7
- import "./transWebUrl-C1jarjWM.js";
6
+ import { u as useReportRepo, S as SearchRepoCard, f as formatNameSpace } from "./index-BJgnU_lD.js";
7
+ import "./transWebUrl-CmLBHHCK.js";
8
8
  import "vue-devui-lal/tooltip";
9
9
  import "vue-devui-lal/tooltip/style.css";
10
10
  import "vue-router";
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, inject, useSlots, ref, computed, createBlock, openBlock, unref, withCtx, createElementVNode, normalizeClass, createElementBlock, createTextVNode, createCommentVNode, toDisplayString, renderSlot } from "vue";
2
- import { w as ThemeType, x as currentTheme, g as LANG_ZH, y as LANG_EN, z as getLocaleLang, G as GIcon, A as emitEvent, B as isHttps, b as REPO_EVENT, _ as _export_sfc } from "./index-CHa5wjmB.js";
2
+ import { w as ThemeType, x as currentTheme, g as LANG_ZH, y as LANG_EN, z as getLocaleLang, G as GIcon, A as emitEvent, B as isHttps, b as REPO_EVENT, _ as _export_sfc } from "./index-CsxT-DMO.js";
3
3
  import { useRouter } from "vue-router";
4
4
  import { Popover } from "vue-devui-lal/popover";
5
5
  import "vue-devui-lal/popover/style.css";
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, inject, ref, reactive, watch, computed, createElementBlock, openBlock, createCommentVNode, createBlock, withDirectives, Fragment, createElementVNode, createVNode, toDisplayString, unref, withModifiers, normalizeClass, withCtx, renderList, createTextVNode, vShow } from "vue";
2
- import { a as i18n, G as GIcon, C as _sfc_main$1, D as loadAsideData, s as setLoginTriggerSource, d as useRequestReport, F as asideRequest, _ as _export_sfc } from "./index-CHa5wjmB.js";
2
+ import { a as i18n, G as GIcon, C as _sfc_main$1, D as loadAsideData, s as setLoginTriggerSource, d as useRequestReport, F as asideRequest, _ as _export_sfc } from "./index-CsxT-DMO.js";
3
3
  import { useRouter } from "vue-router";
4
- import { t as transWebUrl } from "./transWebUrl-C1jarjWM.js";
4
+ import { t as transWebUrl } from "./transWebUrl-CmLBHHCK.js";
5
5
  import { Select, Option } from "vue-devui-lal/select";
6
6
  import { Input } from "vue-devui-lal/input";
7
7
  import { Skeleton } from "vue-devui-lal/skeleton";
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, inject, ref, reactive, computed, watch, createElementBlock, openBlock, createElementVNode, createVNode, createBlock, createCommentVNode, withDirectives, toDisplayString, unref, withModifiers, normalizeClass, withCtx, Fragment, renderList, createTextVNode, vShow } from "vue";
2
- import { a as i18n, G as GIcon, s as setLoginTriggerSource, d as useRequestReport, _ as _export_sfc } from "./index-CHa5wjmB.js";
2
+ import { a as i18n, G as GIcon, s as setLoginTriggerSource, d as useRequestReport, _ as _export_sfc } from "./index-CsxT-DMO.js";
3
3
  import { useRouter } from "vue-router";
4
- import { t as transWebUrl } from "./transWebUrl-C1jarjWM.js";
4
+ import { t as transWebUrl } from "./transWebUrl-CmLBHHCK.js";
5
5
  import { Input } from "vue-devui-lal/input";
6
6
  import { Skeleton } from "vue-devui-lal/skeleton";
7
7
  import { MenuItem } from "vue-devui-lal/menu";
@@ -1,5 +1,5 @@
1
1
  import { ref, inject, computed, withDirectives, createElementBlock, openBlock, createElementVNode, toDisplayString, unref, Fragment, renderList, createVNode, vShow } from "vue";
2
- import { a as i18n, h as headRequest, G as GIcon, r as reqCatch } from "./index-CHa5wjmB.js";
2
+ import { a as i18n, h as headRequest, G as GIcon, r as reqCatch } from "./index-CsxT-DMO.js";
3
3
  import { useRoute, useRouter } from "vue-router";
4
4
  import "vue-devui-lal/icon";
5
5
  import "vue-devui-lal/icon/style.css";
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, computed, createElementBlock, openBlock, createCommentVNode, Fragment, renderList, normalizeClass, createElementVNode, createVNode, toDisplayString, withModifiers } from "vue";
2
- import { a as i18n, G as GIcon, _ as _export_sfc } from "./index-CHa5wjmB.js";
2
+ import { a as i18n, G as GIcon, _ as _export_sfc } from "./index-CsxT-DMO.js";
3
3
  import "vue-devui-lal/icon";
4
4
  import "vue-devui-lal/icon/style.css";
5
5
  const _hoisted_1 = { class: "history-list" };
@@ -52,7 +52,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
52
52
  icon: "gt-plane-issues",
53
53
  hoverIcon: "gt-plane-issues-red"
54
54
  },
55
- pull: {
55
+ pullrequest: {
56
56
  text: "Pull requests",
57
57
  icon: "gt-plane-pullRequest",
58
58
  hoverIcon: "gt-plane-pullRequest-red"
@@ -66,6 +66,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
66
66
  text: t("gitCodeLayout.header.user"),
67
67
  icon: "gt-plane-user",
68
68
  hoverIcon: "gt-plane-user-red"
69
+ },
70
+ tag: {
71
+ text: t("gitCodeLayout.header.tags"),
72
+ icon: "gt-plane-topics",
73
+ hoverIcon: "gt-plane-topics-red"
74
+ },
75
+ topic: {
76
+ text: t("gitCodeLayout.header.topic"),
77
+ icon: "gt-plane-topic",
78
+ hoverIcon: "gt-plane-topic-red"
69
79
  }
70
80
  };
71
81
  return typeMap[item.type] || typeMap["repo"];
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, createElementBlock, openBlock, createElementVNode, withDirectives, toDisplayString, withModifiers, createVNode, vShow } from "vue";
2
- import { G as GIcon, _ as _export_sfc } from "./index-CHa5wjmB.js";
2
+ import { G as GIcon, _ as _export_sfc } from "./index-CsxT-DMO.js";
3
3
  import "vue-devui-lal/icon";
4
4
  import "vue-devui-lal/icon/style.css";
5
5
  const _hoisted_1 = { class: "ellipsis" };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, inject, ref, onMounted, createElementBlock, openBlock, createElementVNode, toDisplayString, unref, Fragment, renderList, createBlock, createVNode, withCtx } from "vue";
2
- import { u as useReportRepo, S as SearchRepoCard } from "./index-CScU2Cue.js";
3
- import { a as i18n, h as headRequest, R as REPO_MODULE, b as REPO_EVENT, l as localStorage, _ as _export_sfc } from "./index-CHa5wjmB.js";
2
+ import { u as useReportRepo, S as SearchRepoCard } from "./index-BJgnU_lD.js";
3
+ import { a as i18n, h as headRequest, R as REPO_MODULE, b as REPO_EVENT, l as localStorage, _ as _export_sfc } from "./index-CsxT-DMO.js";
4
4
  import { Row, Col } from "vue-devui-lal/grid";
5
5
  import { SkeletonItem } from "vue-devui-lal/skeleton";
6
6
  import "vue-devui-lal/grid/style.css";
@@ -64,9 +64,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
64
64
  hover: "",
65
65
  hideTopicTags: "",
66
66
  onReport: (evt) => handleReport(item, index, evt),
67
- cardType: "repo",
67
+ cardType: (item == null ? void 0 : item.repo_type) || "repo",
68
68
  "url-params": { source_module: "today_trending" }
69
- }, null, 8, ["info", "onReport"]);
69
+ }, null, 8, ["info", "onReport", "cardType"]);
70
70
  }), 128))
71
71
  ])) : (openBlock(), createElementBlock("div", _hoisted_4, [
72
72
  (openBlock(), createElementBlock(Fragment, null, renderList(5, (item) => {
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, createElementBlock, openBlock, Fragment, renderList, createElementVNode, createVNode, createCommentVNode, toDisplayString, unref } from "vue";
2
- import { a as i18n, G as GIcon, _ as _export_sfc } from "./index-CHa5wjmB.js";
2
+ import { a as i18n, G as GIcon, _ as _export_sfc } from "./index-CsxT-DMO.js";
3
3
  import "vue-devui-lal/icon";
4
4
  import "vue-devui-lal/icon/style.css";
5
5
  const _hoisted_1 = ["onClick"];
@@ -1,5 +1,5 @@
1
1
  import { inject, ref, watch, withDirectives, createElementBlock, openBlock, createElementVNode, toDisplayString, unref, Fragment, renderList, createVNode, vShow } from "vue";
2
- import { a as i18n, h as headRequest, G as GIcon } from "./index-CHa5wjmB.js";
2
+ import { a as i18n, h as headRequest, G as GIcon } from "./index-CsxT-DMO.js";
3
3
  import "vue-devui-lal/icon";
4
4
  import "vue-devui-lal/icon/style.css";
5
5
  const _hoisted_1 = { class: "px-[8px] history-list-project pl-[8px]" };
@@ -1,7 +1,7 @@
1
1
  import { ref, watchEffect, defineComponent, toDisplayString, unref, inject, createElementBlock, openBlock, normalizeClass, createElementVNode, withModifiers, withDirectives, vShow, createVNode, computed, createCommentVNode, normalizeStyle, createTextVNode, onMounted, onUnmounted, Fragment, createBlock, renderList, withCtx, reactive } from "vue";
2
2
  import debounce from "lodash/debounce";
3
- import { t as transferNumber, G as GIcon, s as setLoginTriggerSource, d as useRequestReport, r as reqCatch, h as headRequest, _ as _export_sfc, a as i18n, T as TOPIC_TYPE, f as useTimeFormat, L as LANG_KEY, g as LANG_ZH, j as usePageResize, k as isGstarRepo, m as _sfc_main$9, n as isIncubationRepo, o as highlightWords, p as _frEventTrack, E as EVENT_NAME, c as REPO_TYPE, e as extractRepoInfoWithURL } from "./index-CHa5wjmB.js";
4
- import { t as transWebUrl } from "./transWebUrl-C1jarjWM.js";
3
+ import { t as transferNumber, G as GIcon, s as setLoginTriggerSource, d as useRequestReport, r as reqCatch, h as headRequest, _ as _export_sfc, a as i18n, T as TOPIC_TYPE, f as useTimeFormat, L as LANG_KEY, g as LANG_ZH, j as usePageResize, k as isGstarRepo, m as _sfc_main$9, n as isIncubationRepo, o as highlightWords, p as _frEventTrack, E as EVENT_NAME, c as REPO_TYPE, e as extractRepoInfoWithURL } from "./index-CsxT-DMO.js";
4
+ import { t as transWebUrl } from "./transWebUrl-CmLBHHCK.js";
5
5
  import { useRouter } from "vue-router";
6
6
  import { Row, Col } from "vue-devui-lal/grid";
7
7
  import { Skeleton, SkeletonItem } from "vue-devui-lal/skeleton";
@@ -7637,6 +7637,8 @@ const gitCodeLayout$1 = {
7637
7637
  repo: "项目",
7638
7638
  org: "组织",
7639
7639
  user: "用户",
7640
+ tags: "标签",
7641
+ topic: "热门主题",
7640
7642
  recentlyVisited: "最近访问",
7641
7643
  platformSearch: "全平台搜索:",
7642
7644
  workbench: "工作台",
@@ -7928,6 +7930,8 @@ const gitCodeLayout = {
7928
7930
  repo: "Repositories",
7929
7931
  org: "Organizations",
7930
7932
  user: "Users",
7933
+ tags: "Tags",
7934
+ topic: "Hot topics",
7931
7935
  recentlyVisited: "Recent Visits",
7932
7936
  platformSearch: "Full Platform Search",
7933
7937
  workbench: "Dashboard",
@@ -14569,6 +14573,7 @@ var RouteNameEnum = /* @__PURE__ */ ((RouteNameEnum2) => {
14569
14573
  RouteNameEnum2["WORK_MANAGEMENT"] = "work-management";
14570
14574
  RouteNameEnum2["COMPETITION_RANKING"] = "ranking";
14571
14575
  RouteNameEnum2["AI_THEME"] = "theme";
14576
+ RouteNameEnum2["AI_COLLECTIONS"] = "collections";
14572
14577
  return RouteNameEnum2;
14573
14578
  })(RouteNameEnum || {});
14574
14579
  const _hoisted_1$u = {
@@ -14714,16 +14719,26 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
14714
14719
  repoType: RepoType.spaces
14715
14720
  },
14716
14721
  {
14717
- label: "专区",
14718
- id: aiThemeMenuId,
14719
- icon: "gt-a-Property1Default7",
14720
- activeIcon: "gt-a-Property1red6",
14721
- whiteIcon: "gt-a-Property1white",
14722
- to: "/theme",
14723
- url: `${layoutConfig2.VITE_AI_HOST}/theme`,
14724
- menueKey: RouteNameEnum.AI_THEME,
14725
- repoType: "theme"
14722
+ label: "合集",
14723
+ icon: "gt-a-plane-ModelArea-black",
14724
+ activeIcon: "gt-a-plane-ModelArea-red",
14725
+ whiteIcon: "gt-a-plane-ModelArea",
14726
+ to: "/collections",
14727
+ url: `${layoutConfig2.VITE_AI_HOST}/collections`,
14728
+ menueKey: RouteNameEnum.AI_COLLECTIONS,
14729
+ repoType: "collections"
14726
14730
  },
14731
+ // {
14732
+ // label: '专区',
14733
+ // id: aiThemeMenuId,
14734
+ // icon: 'gt-a-Property1Default7',
14735
+ // activeIcon: 'gt-a-Property1red6',
14736
+ // whiteIcon: 'gt-a-Property1white',
14737
+ // to: '/theme',
14738
+ // url: `${layoutConfig.VITE_AI_HOST}/theme`,
14739
+ // menueKey: RouteNameEnum.AI_THEME,
14740
+ // repoType: 'theme'
14741
+ // },
14727
14742
  {
14728
14743
  label: "大赛",
14729
14744
  icon: "gt-a-plane-GrowthCenter1",
@@ -17099,13 +17114,13 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
17099
17114
  var _a;
17100
17115
  const layoutConfig2 = useLayoutConfig();
17101
17116
  const { t: $t } = i18n.global;
17102
- const ProjectSearch = defineAsyncComponent(() => import("./ProjectSearch-B_ouVNCr.js"));
17103
- const UserSearch = defineAsyncComponent(() => import("./UserSearch-BHOkE2tr.js"));
17104
- const GloabarSearch = defineAsyncComponent(() => import("./GloabarSearch-DDI7DDBs.js"));
17105
- const SearchHistoryList = defineAsyncComponent(() => import("./SearchHistoryList-B_7baeO8.js"));
17106
- const SearchScopeList = defineAsyncComponent(() => import("./SearchScopeList-CP0nuyOk.js"));
17107
- const SearchPrefixTag = defineAsyncComponent(() => import("./SearchPrefixTag-DL6yOTrL.js"));
17108
- const SearchRecommed = defineAsyncComponent(() => import("./SearchRecommed-BgCSECGS.js"));
17117
+ const ProjectSearch = defineAsyncComponent(() => import("./ProjectSearch-BIekXXsA.js"));
17118
+ const UserSearch = defineAsyncComponent(() => import("./UserSearch-Cxngfhck.js"));
17119
+ const GloabarSearch = defineAsyncComponent(() => import("./GloabarSearch-BpQWINeS.js"));
17120
+ const SearchHistoryList = defineAsyncComponent(() => import("./SearchHistoryList-DbKxz1Zi.js"));
17121
+ const SearchScopeList = defineAsyncComponent(() => import("./SearchScopeList-Bhp6xsiS.js"));
17122
+ const SearchPrefixTag = defineAsyncComponent(() => import("./SearchPrefixTag-Cz5VxjY3.js"));
17123
+ const SearchRecommed = defineAsyncComponent(() => import("./SearchRecommed-2FgQf6Lh.js"));
17109
17124
  const props = __props;
17110
17125
  const repoInfo = inject("repoInfo");
17111
17126
  const orgInfo = inject("orgInfo");
@@ -17715,7 +17730,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
17715
17730
  }
17716
17731
  });
17717
17732
  const Search = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-gitcode-layout-lib"]]);
17718
- const NoticeModal = defineAsyncComponent(() => import("./notice-CYWyJPRL.js"));
17733
+ const NoticeModal = defineAsyncComponent(() => import("./notice-DQtYqQFV.js"));
17719
17734
  function clearNotice() {
17720
17735
  if (localStorage$2.getItem("validator_email")) {
17721
17736
  localStorage$2.removeItem("validator_email");
@@ -18186,7 +18201,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
18186
18201
  }
18187
18202
  });
18188
18203
  const GitCodeHeader = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-gitcode-layout-lib"]]);
18189
- const useConfigSide = (request) => {
18204
+ const useConfigSide = (request, sceneValue) => {
18190
18205
  const API = asideRequest(request);
18191
18206
  const route = useRoute();
18192
18207
  const sideLoading = ref(false);
@@ -18220,7 +18235,15 @@ const useConfigSide = (request) => {
18220
18235
  ];
18221
18236
  });
18222
18237
  const judgeIsShowAssetMenus = (data) => {
18223
- return data.filter((item) => item.area === 1).length === 0;
18238
+ return data.filter((item) => {
18239
+ if (item.area === 1) {
18240
+ if (item.select_scene && item.select_scene.length > 0) {
18241
+ return item.select_scene.includes(sceneValue);
18242
+ }
18243
+ return true;
18244
+ }
18245
+ return false;
18246
+ }).length === 0;
18224
18247
  };
18225
18248
  const groupByArea = (data) => {
18226
18249
  const sortedData = [...data].sort((a, b) => a.area - b.area);
@@ -18357,9 +18380,9 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
18357
18380
  const layoutConfig2 = useLayoutConfig();
18358
18381
  const { t: t2 } = i18n.global;
18359
18382
  const route = useRoute();
18360
- const MenuItem = defineAsyncComponent(() => import("./MenuItem-C27_1Qpf.js"));
18361
- const ProjectMenuListV2 = defineAsyncComponent(() => import("./ProjectMenuListV2-DuSjqw0s.js"));
18362
- const ProjectMenuList = defineAsyncComponent(() => import("./ProjectMenuList-D4drto0B.js"));
18383
+ const MenuItem = defineAsyncComponent(() => import("./MenuItem-r76lk8Ct.js"));
18384
+ const ProjectMenuListV2 = defineAsyncComponent(() => import("./ProjectMenuListV2-DBig9U4L.js"));
18385
+ const ProjectMenuList = defineAsyncComponent(() => import("./ProjectMenuList-CEVXn6Cj.js"));
18363
18386
  const props = __props;
18364
18387
  const useReport2 = inject("useReport");
18365
18388
  const userInfo = inject("userInfo");
@@ -18874,7 +18897,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
18874
18897
  const request = inject("request");
18875
18898
  const props = __props;
18876
18899
  const useReport2 = inject("useReport");
18877
- const { isEn, area, fetchArea, sideLoading } = useConfigSide(request);
18900
+ const { isEn, area, fetchArea, sideLoading } = useConfigSide(request, props.sceneValue);
18878
18901
  fetchArea();
18879
18902
  const isScroll = ref(false);
18880
18903
  const timer = ref(null);
@@ -23900,7 +23923,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
23900
23923
  }
23901
23924
  });
23902
23925
  const MFA = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-gitcode-layout-lib"]]);
23903
- const SlidCaptcha = defineAsyncComponent(() => import("./index-ClSQmVwu.js"));
23926
+ const SlidCaptcha = defineAsyncComponent(() => import("./index-DNWJl6nb.js"));
23904
23927
  const useSlidCaptcha = () => {
23905
23928
  const { mount, unMount } = usePopup("slid-captcha-popup");
23906
23929
  const open = (config) => {
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, onMounted, createBlock, openBlock, unref, withCtx, createElementVNode } from "vue";
2
2
  import { FixedOverlay } from "vue-devui-lal/overlay";
3
- import { q as useLayoutConfig, _ as _export_sfc } from "./index-CHa5wjmB.js";
3
+ import { q as useLayoutConfig, _ as _export_sfc } from "./index-CsxT-DMO.js";
4
4
  import "vue-devui-lal/overlay/style.css";
5
5
  const _sfc_main = /* @__PURE__ */ defineComponent({
6
6
  __name: "index",
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { J, K, O, I, S, H, x, Q, N, P, M } from "./index-CHa5wjmB.js";
1
+ import { J, K, O, I, S, H, x, Q, N, P, M } from "./index-CsxT-DMO.js";
2
2
  export {
3
3
  J as GitCodeAside,
4
4
  K as GitCodeHeader,
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, computed, createBlock, openBlock, unref, isRef, withCtx, createElementVNode, normalizeClass, createVNode, createTextVNode } from "vue";
2
- import { i as isPhone, u as useModel } from "./index-CHa5wjmB.js";
2
+ import { i as isPhone, u as useModel } from "./index-CsxT-DMO.js";
3
3
  import { Notification } from "vue-devui-lal/notification";
4
4
  import { Button } from "vue-devui-lal/button";
5
5
  import "vue-devui-lal/notification/style.css";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue-layout-gitcode",
3
- "version": "1.5.35",
3
+ "version": "1.5.37",
4
4
  "description": "用于 gitcode 站点生产环境使用",
5
5
  "main": "index.js",
6
6
  "types": "./index.d.ts",
@@ -1,4 +1,4 @@
1
- import { q as useLayoutConfig } from "./index-CHa5wjmB.js";
1
+ import { q as useLayoutConfig } from "./index-CsxT-DMO.js";
2
2
  const layoutConfig = useLayoutConfig();
3
3
  const transWebUrl = (url, params) => {
4
4
  if (!url) return url;