From c7baf1773bcac9838cef4ed1e63de4ebffcb88f6 Mon Sep 17 00:00:00 2001
From: tiodot <tiodot@163.com>
Date: Mon, 8 Jul 2024 11:21:00 +0800
Subject: [PATCH 01/20] Set openApi tags default value as 'other'

---
 server/node-service/src/plugins/openApi/parse.ts | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/node-service/src/plugins/openApi/parse.ts b/server/node-service/src/plugins/openApi/parse.ts
index b785bd5d3a..c44c08aa3c 100644
--- a/server/node-service/src/plugins/openApi/parse.ts
+++ b/server/node-service/src/plugins/openApi/parse.ts
@@ -264,7 +264,7 @@ export async function parseOpenApi(
         return;
       }
 
-      const { tags } = operation;
+      const { tags = ["other"] } = operation;
       if (tags) {
         appendCategories(
           categories,
@@ -288,7 +288,7 @@ export async function parseOpenApi(
         );
       }
       const action: ActionConfig = {
-        category: operation.tags || "",
+        category: tags || "",
         actionName: operationId,
         label: actionLabel(httpMethod, path, operation),
         description: actionDescription(httpMethod, path, operation),

From 9ad82c582256326d23df60249993f94b73d8c241 Mon Sep 17 00:00:00 2001
From: RAHEEL <mraheeliftikhar1994@gmail.com>
Date: Mon, 8 Jul 2024 10:54:31 +0500
Subject: [PATCH 02/20] routing fix

---
 client/packages/lowcoder/src/pages/ApplicationV2/index.tsx | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/client/packages/lowcoder/src/pages/ApplicationV2/index.tsx b/client/packages/lowcoder/src/pages/ApplicationV2/index.tsx
index ac7249dabc..e9ad3cfd25 100644
--- a/client/packages/lowcoder/src/pages/ApplicationV2/index.tsx
+++ b/client/packages/lowcoder/src/pages/ApplicationV2/index.tsx
@@ -267,9 +267,9 @@ export default function ApplicationHome() {
   
   const isOrgAdmin = org?.createdBy == user.id ? true : false;
 
-  // useEffect(() => {
-  //   dispatch(fetchHomeData({}));
-  // }, [user.currentOrgId]);
+  useEffect(() => {
+    dispatch(fetchHomeData({}));
+  }, [user.currentOrgId]);
 
   useEffect(() => {
     if (!org) {

From 9e14af4c219e455d2972e6b122d19c8afda10040 Mon Sep 17 00:00:00 2001
From: RAHEEL <mraheeliftikhar1994@gmail.com>
Date: Mon, 8 Jul 2024 20:05:20 +0500
Subject: [PATCH 03/20] fix infinite loop issue on accessing app view page
 without permission

---
 .../lowcoder/src/pages/editor/AppEditor.tsx   | 38 +++++++++++++++----
 .../redux/reduxActions/applicationActions.ts  |  1 +
 .../src/redux/sagas/applicationSagas.ts       |  3 +-
 3 files changed, 34 insertions(+), 8 deletions(-)

diff --git a/client/packages/lowcoder/src/pages/editor/AppEditor.tsx b/client/packages/lowcoder/src/pages/editor/AppEditor.tsx
index 805c7af184..2943675991 100644
--- a/client/packages/lowcoder/src/pages/editor/AppEditor.tsx
+++ b/client/packages/lowcoder/src/pages/editor/AppEditor.tsx
@@ -1,5 +1,5 @@
 import { AppPathParams, AppTypeEnum } from "constants/applicationConstants";
-import { Suspense, lazy, useEffect, useRef, useState } from "react";
+import { Suspense, lazy, useCallback, useEffect, useMemo, useRef, useState } from "react";
 import { useDispatch, useSelector } from "react-redux";
 import { useParams } from "react-router";
 import { AppSummaryInfo, fetchApplicationInfo } from "redux/reduxActions/applicationActions";
@@ -30,6 +30,7 @@ import EditorSkeletonView from "./editorSkeletonView";
 import {ErrorBoundary, FallbackProps} from 'react-error-boundary';
 import { ALL_APPLICATIONS_URL } from "@lowcoder-ee/constants/routesURL";
 import history from "util/history";
+import Flex from "antd/es/flex";
 
 const AppSnapshot = lazy(() => {
   return import("pages/editor/appSnapshot")
@@ -56,6 +57,7 @@ export default function AppEditor() {
   const orgId = currentUser.currentOrgId;
   const firstRendered = useRef(false);
   const [isDataSourcePluginRegistered, setIsDataSourcePluginRegistered] = useState(false);
+  const [appError, setAppError] = useState('');
 
   setGlobalSettings({ applicationId, isViewMode: paramViewMode === "view" });
 
@@ -132,15 +134,37 @@ export default function AppEditor() {
           setAppInfo(info);
           fetchJSDataSourceByApp();
         },
+        onError: (errorMessage) => {
+          setAppError(errorMessage);
+        }
       })
     );
   }, [viewMode, applicationId, dispatch]);
-const fallbackUI = (
-  <div style={{display:'flex', height:'100%', width:'100%', alignItems:'center',justifyContent:'center', gap:'8px',marginTop:'10px'}}>
-    <p style={{margin:0}}>Something went wrong while displaying this webpage</p>
-    <button onClick={() => history.push(ALL_APPLICATIONS_URL)} style={{background: '#4965f2',border: '1px solid #4965f2', color: '#ffffff',borderRadius:'6px'}}>Go to Apps</button>
-  </div>
-);
+
+  const fallbackUI = useMemo(() => (
+    <Flex align="center" justify="center" vertical style={{
+      height: '300px',
+      width: '400px',
+      margin: '0 auto',
+    }}>
+      <h4 style={{margin: 0}}>Something went wrong while displaying this webpage</h4>
+      <button onClick={() => history.push(ALL_APPLICATIONS_URL)} style={{background: '#4965f2',border: '1px solid #4965f2', color: '#ffffff',borderRadius:'6px'}}>Go to Apps</button>
+    </Flex>
+  ), []);
+
+  if (Boolean(appError)) {
+    return (
+      <Flex align="center" justify="center" vertical style={{
+        height: '300px',
+        width: '400px',
+        margin: '0 auto',
+      }}>
+        <h4>{appError}</h4>
+        <button onClick={() => history.push(ALL_APPLICATIONS_URL)} style={{background: '#4965f2',border: '1px solid #4965f2', color: '#ffffff',borderRadius:'6px'}}>Back to Home</button>
+      </Flex>
+    )
+  }
+
   return (
     <ErrorBoundary fallback={fallbackUI}>
       {showAppSnapshot ? (
diff --git a/client/packages/lowcoder/src/redux/reduxActions/applicationActions.ts b/client/packages/lowcoder/src/redux/reduxActions/applicationActions.ts
index 7619798d69..15a69d7fee 100644
--- a/client/packages/lowcoder/src/redux/reduxActions/applicationActions.ts
+++ b/client/packages/lowcoder/src/redux/reduxActions/applicationActions.ts
@@ -132,6 +132,7 @@ export type FetchAppInfoPayload = {
   applicationId: string;
   type: ApplicationDSLType;
   onSuccess?: (info: AppSummaryInfo) => void;
+  onError?: (error: string) => void;
 };
 export const fetchApplicationInfo = (payload: FetchAppInfoPayload) => ({
   type: ReduxActionTypes.FETCH_APPLICATION_DETAIL,
diff --git a/client/packages/lowcoder/src/redux/sagas/applicationSagas.ts b/client/packages/lowcoder/src/redux/sagas/applicationSagas.ts
index e6ea615eb3..d5d1b5a31b 100644
--- a/client/packages/lowcoder/src/redux/sagas/applicationSagas.ts
+++ b/client/packages/lowcoder/src/redux/sagas/applicationSagas.ts
@@ -242,7 +242,8 @@ export function* fetchApplicationDetailSaga(action: ReduxAction<FetchAppInfoPayl
       return;
     } else if (!isValidResponse) {
       if (response.data.code === SERVER_ERROR_CODES.NO_PERMISSION_TO_REQUEST_APP) {
-        history.push(BASE_URL);
+        // history.push(BASE_URL);
+        action.payload.onError?.(response.data.message);
       }
       throw Error(response.data.message);
     }

From bca5fe4f16b43371d02f9e2439ea60db23391026 Mon Sep 17 00:00:00 2001
From: FalkWolsky <fw@falkwolsky.com>
Date: Mon, 8 Jul 2024 21:20:40 +0200
Subject: [PATCH 04/20] Adding Remote Gantt Chart

---
 .../lowcoder-design/src/icons/index.ts        |    2 +
 .../src/icons/v2/gantt-chart-l.svg            | 1262 +++++++++++++++++
 .../src/icons/v2/gantt-chart-m.svg            |    5 +
 .../src/icons/v2/gantt-chart-s.svg            |    4 +
 client/packages/lowcoder/src/comps/index.tsx  |   22 +-
 .../lowcoder/src/comps/uiCompRegistry.ts      |    1 +
 .../packages/lowcoder/src/i18n/locales/en.ts  |    4 +
 .../src/pages/editor/editorConstants.tsx      |    4 +-
 8 files changed, 1302 insertions(+), 2 deletions(-)
 create mode 100644 client/packages/lowcoder-design/src/icons/v2/gantt-chart-l.svg
 create mode 100644 client/packages/lowcoder-design/src/icons/v2/gantt-chart-m.svg
 create mode 100644 client/packages/lowcoder-design/src/icons/v2/gantt-chart-s.svg

diff --git a/client/packages/lowcoder-design/src/icons/index.ts b/client/packages/lowcoder-design/src/icons/index.ts
index 18aab7063c..27d9428fc3 100644
--- a/client/packages/lowcoder-design/src/icons/index.ts
+++ b/client/packages/lowcoder-design/src/icons/index.ts
@@ -350,6 +350,7 @@ export { ReactComponent as GeoMapLayersCompIconSmall } from "./v2/geomap-layers-
 export { ReactComponent as HillchartCompIconSmall } from "./v2/hillchart-s.svg"; // new
 export { ReactComponent as PivotTableCompIconSmall } from "./v2/pivot-table-s.svg"; // new
 export { ReactComponent as TurnstileCaptchaCompIconSmall } from "./v2/turnstile-captcha-s.svg"; // new
+export { ReactComponent as GanttCompIconSmall } from "./v2/gantt-chart-s.svg"; // new
 
 
 // medium
@@ -435,6 +436,7 @@ export { ReactComponent as VideoCameraStreamCompIcon } from "./v2/camera-stream-
 export { ReactComponent as VideoScreenshareCompIcon } from "./v2/screen-share-stream-m.svg";
 export { ReactComponent as StepCompIcon } from "./v2/steps-m.svg";
 export { ReactComponent as SignatureCompIcon } from "./v2/signature-m.svg";
+export { ReactComponent as GanttCompIcon } from "./v2/gantt-chart-m.svg";
 
 export { ReactComponent as CandlestickChartCompIcon } from "./v2/candlestick-chart-m.svg";
 export { ReactComponent as FunnelChartCompIcon } from "./v2/funnel-chart-m.svg";
diff --git a/client/packages/lowcoder-design/src/icons/v2/gantt-chart-l.svg b/client/packages/lowcoder-design/src/icons/v2/gantt-chart-l.svg
new file mode 100644
index 0000000000..74b64f1e58
--- /dev/null
+++ b/client/packages/lowcoder-design/src/icons/v2/gantt-chart-l.svg
@@ -0,0 +1,1262 @@
+<svg width="169" height="96" viewBox="0 0 169 96" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_333_1120)">
+<rect width="169" height="96" fill="url(#paint0_radial_333_1120)"/>
+<g opacity="0.06">
+<rect x="3.31445" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="3.31445" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="3.31445" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="8.02344" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 8.02344 4.07129)" fill="#B480DE"/>
+<rect x="8.02344" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 8.02344 4.07129)" fill="#B480DE"/>
+<rect x="8.02344" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 8.02344 4.07129)" fill="#B480DE"/>
+<rect x="3.31445" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 3.31445 4.07129)" fill="#B480DE"/>
+<rect x="3.31445" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 3.31445 4.07129)" fill="#B480DE"/>
+<rect x="3.31445" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 3.31445 4.07129)" fill="#B480DE"/>
+<rect x="15.9971" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="15.9971" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="15.9971" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="20.7061" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 20.7061 4.07129)" fill="#B480DE"/>
+<rect x="20.7061" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 20.7061 4.07129)" fill="#B480DE"/>
+<rect x="20.7061" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 20.7061 4.07129)" fill="#B480DE"/>
+<rect x="15.9971" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 15.9971 4.07129)" fill="#B480DE"/>
+<rect x="15.9971" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 15.9971 4.07129)" fill="#B480DE"/>
+<rect x="15.9971" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 15.9971 4.07129)" fill="#B480DE"/>
+<rect x="28.6787" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="28.6787" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="28.6787" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="33.3877" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 33.3877 4.07129)" fill="#B480DE"/>
+<rect x="33.3877" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 33.3877 4.07129)" fill="#B480DE"/>
+<rect x="33.3877" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 33.3877 4.07129)" fill="#B480DE"/>
+<rect x="28.6787" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 28.6787 4.07129)" fill="#B480DE"/>
+<rect x="28.6787" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 28.6787 4.07129)" fill="#B480DE"/>
+<rect x="28.6787" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 28.6787 4.07129)" fill="#B480DE"/>
+<rect x="41.3613" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="41.3613" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="41.3613" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="46.0703" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 46.0703 4.07129)" fill="#B480DE"/>
+<rect x="46.0703" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 46.0703 4.07129)" fill="#B480DE"/>
+<rect x="46.0703" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 46.0703 4.07129)" fill="#B480DE"/>
+<rect x="41.3613" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 41.3613 4.07129)" fill="#B480DE"/>
+<rect x="41.3613" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 41.3613 4.07129)" fill="#B480DE"/>
+<rect x="41.3613" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 41.3613 4.07129)" fill="#B480DE"/>
+<rect x="54.0439" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="54.0439" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="54.0439" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="58.7529" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 58.7529 4.07129)" fill="#B480DE"/>
+<rect x="58.7529" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 58.7529 4.07129)" fill="#B480DE"/>
+<rect x="58.7529" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 58.7529 4.07129)" fill="#B480DE"/>
+<rect x="54.0439" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 54.0439 4.07129)" fill="#B480DE"/>
+<rect x="54.0439" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 54.0439 4.07129)" fill="#B480DE"/>
+<rect x="54.0439" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 54.0439 4.07129)" fill="#B480DE"/>
+<rect x="66.7256" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="66.7256" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="66.7256" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="71.4346" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 71.4346 4.07129)" fill="#B480DE"/>
+<rect x="71.4346" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 71.4346 4.07129)" fill="#B480DE"/>
+<rect x="71.4346" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 71.4346 4.07129)" fill="#B480DE"/>
+<rect x="66.7256" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 66.7256 4.07129)" fill="#B480DE"/>
+<rect x="66.7256" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 66.7256 4.07129)" fill="#B480DE"/>
+<rect x="66.7256" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 66.7256 4.07129)" fill="#B480DE"/>
+<rect x="79.4082" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="79.4082" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="79.4082" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="84.1172" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 84.1172 4.07129)" fill="#B480DE"/>
+<rect x="84.1172" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 84.1172 4.07129)" fill="#B480DE"/>
+<rect x="84.1172" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 84.1172 4.07129)" fill="#B480DE"/>
+<rect x="79.4082" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 79.4082 4.07129)" fill="#B480DE"/>
+<rect x="79.4082" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 79.4082 4.07129)" fill="#B480DE"/>
+<rect x="79.4082" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 79.4082 4.07129)" fill="#B480DE"/>
+<rect x="92.0898" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="92.0898" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="92.0898" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="96.7988" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 96.7988 4.07129)" fill="#B480DE"/>
+<rect x="96.7988" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 96.7988 4.07129)" fill="#B480DE"/>
+<rect x="96.7988" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 96.7988 4.07129)" fill="#B480DE"/>
+<rect x="92.0898" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 92.0898 4.07129)" fill="#B480DE"/>
+<rect x="92.0898" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 92.0898 4.07129)" fill="#B480DE"/>
+<rect x="92.0898" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 92.0898 4.07129)" fill="#B480DE"/>
+<rect x="104.772" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="104.772" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="104.772" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="109.481" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 109.481 4.07129)" fill="#B480DE"/>
+<rect x="109.481" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 109.481 4.07129)" fill="#B480DE"/>
+<rect x="109.481" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 109.481 4.07129)" fill="#B480DE"/>
+<rect x="104.772" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 104.772 4.07129)" fill="#B480DE"/>
+<rect x="104.772" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 104.772 4.07129)" fill="#B480DE"/>
+<rect x="104.772" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 104.772 4.07129)" fill="#B480DE"/>
+<rect x="117.455" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="117.455" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="117.455" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="122.164" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 122.164 4.07129)" fill="#B480DE"/>
+<rect x="122.164" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 122.164 4.07129)" fill="#B480DE"/>
+<rect x="122.164" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 122.164 4.07129)" fill="#B480DE"/>
+<rect x="117.455" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 117.455 4.07129)" fill="#B480DE"/>
+<rect x="117.455" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 117.455 4.07129)" fill="#B480DE"/>
+<rect x="117.455" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 117.455 4.07129)" fill="#B480DE"/>
+<rect x="130.137" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="130.137" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="130.137" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="134.846" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 134.846 4.07129)" fill="#B480DE"/>
+<rect x="134.846" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 134.846 4.07129)" fill="#B480DE"/>
+<rect x="134.846" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 134.846 4.07129)" fill="#B480DE"/>
+<rect x="130.137" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 130.137 4.07129)" fill="#B480DE"/>
+<rect x="130.137" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 130.137 4.07129)" fill="#B480DE"/>
+<rect x="130.137" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 130.137 4.07129)" fill="#B480DE"/>
+<rect x="142.819" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="142.819" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="142.819" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="147.528" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 147.528 4.07129)" fill="#B480DE"/>
+<rect x="147.528" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 147.528 4.07129)" fill="#B480DE"/>
+<rect x="147.528" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 147.528 4.07129)" fill="#B480DE"/>
+<rect x="142.819" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 142.819 4.07129)" fill="#B480DE"/>
+<rect x="142.819" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 142.819 4.07129)" fill="#B480DE"/>
+<rect x="142.819" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 142.819 4.07129)" fill="#B480DE"/>
+<rect x="155.502" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="155.502" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="155.502" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="160.211" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 160.211 4.07129)" fill="#B480DE"/>
+<rect x="160.211" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 160.211 4.07129)" fill="#B480DE"/>
+<rect x="160.211" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 160.211 4.07129)" fill="#B480DE"/>
+<rect x="155.502" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 155.502 4.07129)" fill="#B480DE"/>
+<rect x="155.502" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 155.502 4.07129)" fill="#B480DE"/>
+<rect x="155.502" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 155.502 4.07129)" fill="#B480DE"/>
+<rect x="168.184" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="168.184" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="168.184" y="-2" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="168.184" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 168.184 4.07129)" fill="#B480DE"/>
+<rect x="168.184" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 168.184 4.07129)" fill="#B480DE"/>
+<rect x="168.184" y="4.07129" width="1.73475" height="2.97386" transform="rotate(90 168.184 4.07129)" fill="#B480DE"/>
+<rect x="1.68262" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 1.68262 13.8774)" fill="#B480DE"/>
+<rect x="1.68262" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 1.68262 13.8774)" fill="#B480DE"/>
+<rect x="1.68262" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 1.68262 13.8774)" fill="#B480DE"/>
+<rect x="9.65625" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="9.65625" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="9.65625" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="14.3652" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 14.3652 13.8774)" fill="#B480DE"/>
+<rect x="14.3652" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 14.3652 13.8774)" fill="#B480DE"/>
+<rect x="14.3652" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 14.3652 13.8774)" fill="#B480DE"/>
+<rect x="9.65625" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 9.65625 13.8774)" fill="#B480DE"/>
+<rect x="9.65625" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 9.65625 13.8774)" fill="#B480DE"/>
+<rect x="9.65625" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 9.65625 13.8774)" fill="#B480DE"/>
+<rect x="22.3379" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="22.3379" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="22.3379" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="27.0469" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 27.0469 13.8774)" fill="#B480DE"/>
+<rect x="27.0469" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 27.0469 13.8774)" fill="#B480DE"/>
+<rect x="27.0469" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 27.0469 13.8774)" fill="#B480DE"/>
+<rect x="22.3379" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 22.3379 13.8774)" fill="#B480DE"/>
+<rect x="22.3379" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 22.3379 13.8774)" fill="#B480DE"/>
+<rect x="22.3379" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 22.3379 13.8774)" fill="#B480DE"/>
+<rect x="35.0205" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="35.0205" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="35.0205" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="39.7295" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 39.7295 13.8774)" fill="#B480DE"/>
+<rect x="39.7295" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 39.7295 13.8774)" fill="#B480DE"/>
+<rect x="39.7295" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 39.7295 13.8774)" fill="#B480DE"/>
+<rect x="35.0205" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 35.0205 13.8774)" fill="#B480DE"/>
+<rect x="35.0205" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 35.0205 13.8774)" fill="#B480DE"/>
+<rect x="35.0205" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 35.0205 13.8774)" fill="#B480DE"/>
+<rect x="47.7031" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="47.7031" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="47.7031" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="52.4121" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 52.4121 13.8774)" fill="#B480DE"/>
+<rect x="52.4121" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 52.4121 13.8774)" fill="#B480DE"/>
+<rect x="52.4121" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 52.4121 13.8774)" fill="#B480DE"/>
+<rect x="47.7031" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 47.7031 13.8774)" fill="#B480DE"/>
+<rect x="47.7031" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 47.7031 13.8774)" fill="#B480DE"/>
+<rect x="47.7031" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 47.7031 13.8774)" fill="#B480DE"/>
+<rect x="60.3848" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="60.3848" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="60.3848" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="65.0938" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 65.0938 13.8774)" fill="#B480DE"/>
+<rect x="65.0938" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 65.0938 13.8774)" fill="#B480DE"/>
+<rect x="65.0938" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 65.0938 13.8774)" fill="#B480DE"/>
+<rect x="60.3848" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 60.3848 13.8774)" fill="#B480DE"/>
+<rect x="60.3848" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 60.3848 13.8774)" fill="#B480DE"/>
+<rect x="60.3848" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 60.3848 13.8774)" fill="#B480DE"/>
+<rect x="73.0674" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="73.0674" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="73.0674" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="77.7764" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 77.7764 13.8774)" fill="#B480DE"/>
+<rect x="77.7764" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 77.7764 13.8774)" fill="#B480DE"/>
+<rect x="77.7764" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 77.7764 13.8774)" fill="#B480DE"/>
+<rect x="73.0674" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 73.0674 13.8774)" fill="#B480DE"/>
+<rect x="73.0674" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 73.0674 13.8774)" fill="#B480DE"/>
+<rect x="73.0674" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 73.0674 13.8774)" fill="#B480DE"/>
+<rect x="85.749" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="85.749" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="85.749" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="90.458" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 90.458 13.8774)" fill="#B480DE"/>
+<rect x="90.458" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 90.458 13.8774)" fill="#B480DE"/>
+<rect x="90.458" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 90.458 13.8774)" fill="#B480DE"/>
+<rect x="85.749" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 85.749 13.8774)" fill="#B480DE"/>
+<rect x="85.749" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 85.749 13.8774)" fill="#B480DE"/>
+<rect x="85.749" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 85.749 13.8774)" fill="#B480DE"/>
+<rect x="98.4316" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="98.4316" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="98.4316" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="103.141" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 103.141 13.8774)" fill="#B480DE"/>
+<rect x="103.141" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 103.141 13.8774)" fill="#B480DE"/>
+<rect x="103.141" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 103.141 13.8774)" fill="#B480DE"/>
+<rect x="98.4316" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 98.4316 13.8774)" fill="#B480DE"/>
+<rect x="98.4316" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 98.4316 13.8774)" fill="#B480DE"/>
+<rect x="98.4316" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 98.4316 13.8774)" fill="#B480DE"/>
+<rect x="111.114" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="111.114" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="111.114" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="115.823" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 115.823 13.8774)" fill="#B480DE"/>
+<rect x="115.823" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 115.823 13.8774)" fill="#B480DE"/>
+<rect x="115.823" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 115.823 13.8774)" fill="#B480DE"/>
+<rect x="111.114" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 111.114 13.8774)" fill="#B480DE"/>
+<rect x="111.114" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 111.114 13.8774)" fill="#B480DE"/>
+<rect x="111.114" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 111.114 13.8774)" fill="#B480DE"/>
+<rect x="123.796" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="123.796" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="123.796" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="128.505" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 128.505 13.8774)" fill="#B480DE"/>
+<rect x="128.505" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 128.505 13.8774)" fill="#B480DE"/>
+<rect x="128.505" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 128.505 13.8774)" fill="#B480DE"/>
+<rect x="123.796" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 123.796 13.8774)" fill="#B480DE"/>
+<rect x="123.796" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 123.796 13.8774)" fill="#B480DE"/>
+<rect x="123.796" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 123.796 13.8774)" fill="#B480DE"/>
+<rect x="136.479" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="136.479" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="136.479" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="141.188" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 141.188 13.8774)" fill="#B480DE"/>
+<rect x="141.188" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 141.188 13.8774)" fill="#B480DE"/>
+<rect x="141.188" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 141.188 13.8774)" fill="#B480DE"/>
+<rect x="136.479" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 136.479 13.8774)" fill="#B480DE"/>
+<rect x="136.479" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 136.479 13.8774)" fill="#B480DE"/>
+<rect x="136.479" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 136.479 13.8774)" fill="#B480DE"/>
+<rect x="149.161" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="149.161" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="149.161" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="153.87" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 153.87 13.8774)" fill="#B480DE"/>
+<rect x="153.87" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 153.87 13.8774)" fill="#B480DE"/>
+<rect x="153.87" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 153.87 13.8774)" fill="#B480DE"/>
+<rect x="149.161" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 149.161 13.8774)" fill="#B480DE"/>
+<rect x="149.161" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 149.161 13.8774)" fill="#B480DE"/>
+<rect x="149.161" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 149.161 13.8774)" fill="#B480DE"/>
+<rect x="161.843" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="161.843" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="161.843" y="7.80615" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="166.552" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 166.552 13.8774)" fill="#B480DE"/>
+<rect x="166.552" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 166.552 13.8774)" fill="#B480DE"/>
+<rect x="166.552" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 166.552 13.8774)" fill="#B480DE"/>
+<rect x="161.843" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 161.843 13.8774)" fill="#B480DE"/>
+<rect x="161.843" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 161.843 13.8774)" fill="#B480DE"/>
+<rect x="161.843" y="13.8774" width="1.73475" height="2.97386" transform="rotate(90 161.843 13.8774)" fill="#B480DE"/>
+<rect x="3.31445" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="3.31445" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="3.31445" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="8.02344" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 8.02344 23.6836)" fill="#B480DE"/>
+<rect x="8.02344" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 8.02344 23.6836)" fill="#B480DE"/>
+<rect x="8.02344" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 8.02344 23.6836)" fill="#B480DE"/>
+<rect x="3.31445" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 3.31445 23.6836)" fill="#B480DE"/>
+<rect x="3.31445" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 3.31445 23.6836)" fill="#B480DE"/>
+<rect x="3.31445" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 3.31445 23.6836)" fill="#B480DE"/>
+<rect x="15.9971" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="15.9971" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="15.9971" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="20.7061" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 20.7061 23.6836)" fill="#B480DE"/>
+<rect x="20.7061" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 20.7061 23.6836)" fill="#B480DE"/>
+<rect x="20.7061" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 20.7061 23.6836)" fill="#B480DE"/>
+<rect x="15.9971" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 15.9971 23.6836)" fill="#B480DE"/>
+<rect x="15.9971" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 15.9971 23.6836)" fill="#B480DE"/>
+<rect x="15.9971" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 15.9971 23.6836)" fill="#B480DE"/>
+<rect x="28.6787" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="28.6787" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="28.6787" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="33.3877" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 33.3877 23.6836)" fill="#B480DE"/>
+<rect x="33.3877" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 33.3877 23.6836)" fill="#B480DE"/>
+<rect x="33.3877" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 33.3877 23.6836)" fill="#B480DE"/>
+<rect x="28.6787" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 28.6787 23.6836)" fill="#B480DE"/>
+<rect x="28.6787" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 28.6787 23.6836)" fill="#B480DE"/>
+<rect x="28.6787" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 28.6787 23.6836)" fill="#B480DE"/>
+<rect x="41.3613" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="41.3613" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="41.3613" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="46.0703" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 46.0703 23.6836)" fill="#B480DE"/>
+<rect x="46.0703" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 46.0703 23.6836)" fill="#B480DE"/>
+<rect x="46.0703" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 46.0703 23.6836)" fill="#B480DE"/>
+<rect x="41.3613" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 41.3613 23.6836)" fill="#B480DE"/>
+<rect x="41.3613" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 41.3613 23.6836)" fill="#B480DE"/>
+<rect x="41.3613" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 41.3613 23.6836)" fill="#B480DE"/>
+<rect x="54.0439" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="54.0439" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="54.0439" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="58.7529" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 58.7529 23.6836)" fill="#B480DE"/>
+<rect x="58.7529" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 58.7529 23.6836)" fill="#B480DE"/>
+<rect x="58.7529" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 58.7529 23.6836)" fill="#B480DE"/>
+<rect x="54.0439" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 54.0439 23.6836)" fill="#B480DE"/>
+<rect x="54.0439" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 54.0439 23.6836)" fill="#B480DE"/>
+<rect x="54.0439" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 54.0439 23.6836)" fill="#B480DE"/>
+<rect x="66.7256" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="66.7256" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="66.7256" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="71.4346" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 71.4346 23.6836)" fill="#B480DE"/>
+<rect x="71.4346" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 71.4346 23.6836)" fill="#B480DE"/>
+<rect x="71.4346" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 71.4346 23.6836)" fill="#B480DE"/>
+<rect x="66.7256" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 66.7256 23.6836)" fill="#B480DE"/>
+<rect x="66.7256" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 66.7256 23.6836)" fill="#B480DE"/>
+<rect x="66.7256" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 66.7256 23.6836)" fill="#B480DE"/>
+<rect x="79.4082" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="79.4082" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="79.4082" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="84.1172" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 84.1172 23.6836)" fill="#B480DE"/>
+<rect x="84.1172" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 84.1172 23.6836)" fill="#B480DE"/>
+<rect x="84.1172" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 84.1172 23.6836)" fill="#B480DE"/>
+<rect x="79.4082" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 79.4082 23.6836)" fill="#B480DE"/>
+<rect x="79.4082" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 79.4082 23.6836)" fill="#B480DE"/>
+<rect x="79.4082" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 79.4082 23.6836)" fill="#B480DE"/>
+<rect x="92.0898" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="92.0898" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="92.0898" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="96.7988" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 96.7988 23.6836)" fill="#B480DE"/>
+<rect x="96.7988" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 96.7988 23.6836)" fill="#B480DE"/>
+<rect x="96.7988" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 96.7988 23.6836)" fill="#B480DE"/>
+<rect x="92.0898" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 92.0898 23.6836)" fill="#B480DE"/>
+<rect x="92.0898" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 92.0898 23.6836)" fill="#B480DE"/>
+<rect x="92.0898" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 92.0898 23.6836)" fill="#B480DE"/>
+<rect x="104.772" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="104.772" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="104.772" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="109.481" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 109.481 23.6836)" fill="#B480DE"/>
+<rect x="109.481" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 109.481 23.6836)" fill="#B480DE"/>
+<rect x="109.481" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 109.481 23.6836)" fill="#B480DE"/>
+<rect x="104.772" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 104.772 23.6836)" fill="#B480DE"/>
+<rect x="104.772" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 104.772 23.6836)" fill="#B480DE"/>
+<rect x="104.772" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 104.772 23.6836)" fill="#B480DE"/>
+<rect x="117.455" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="117.455" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="117.455" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="122.164" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 122.164 23.6836)" fill="#B480DE"/>
+<rect x="122.164" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 122.164 23.6836)" fill="#B480DE"/>
+<rect x="122.164" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 122.164 23.6836)" fill="#B480DE"/>
+<rect x="117.455" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 117.455 23.6836)" fill="#B480DE"/>
+<rect x="117.455" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 117.455 23.6836)" fill="#B480DE"/>
+<rect x="117.455" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 117.455 23.6836)" fill="#B480DE"/>
+<rect x="130.137" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="130.137" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="130.137" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="134.846" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 134.846 23.6836)" fill="#B480DE"/>
+<rect x="134.846" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 134.846 23.6836)" fill="#B480DE"/>
+<rect x="134.846" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 134.846 23.6836)" fill="#B480DE"/>
+<rect x="130.137" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 130.137 23.6836)" fill="#B480DE"/>
+<rect x="130.137" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 130.137 23.6836)" fill="#B480DE"/>
+<rect x="130.137" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 130.137 23.6836)" fill="#B480DE"/>
+<rect x="142.819" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="142.819" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="142.819" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="147.528" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 147.528 23.6836)" fill="#B480DE"/>
+<rect x="147.528" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 147.528 23.6836)" fill="#B480DE"/>
+<rect x="147.528" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 147.528 23.6836)" fill="#B480DE"/>
+<rect x="142.819" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 142.819 23.6836)" fill="#B480DE"/>
+<rect x="142.819" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 142.819 23.6836)" fill="#B480DE"/>
+<rect x="142.819" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 142.819 23.6836)" fill="#B480DE"/>
+<rect x="155.502" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="155.502" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="155.502" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="160.211" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 160.211 23.6836)" fill="#B480DE"/>
+<rect x="160.211" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 160.211 23.6836)" fill="#B480DE"/>
+<rect x="160.211" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 160.211 23.6836)" fill="#B480DE"/>
+<rect x="155.502" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 155.502 23.6836)" fill="#B480DE"/>
+<rect x="155.502" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 155.502 23.6836)" fill="#B480DE"/>
+<rect x="155.502" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 155.502 23.6836)" fill="#B480DE"/>
+<rect x="168.184" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="168.184" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="168.184" y="17.6123" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="168.184" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 168.184 23.6836)" fill="#B480DE"/>
+<rect x="168.184" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 168.184 23.6836)" fill="#B480DE"/>
+<rect x="168.184" y="23.6836" width="1.73475" height="2.97386" transform="rotate(90 168.184 23.6836)" fill="#B480DE"/>
+<rect x="1.68262" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 1.68262 33.4902)" fill="#B480DE"/>
+<rect x="1.68262" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 1.68262 33.4902)" fill="#B480DE"/>
+<rect x="1.68262" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 1.68262 33.4902)" fill="#B480DE"/>
+<rect x="9.65625" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="9.65625" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="9.65625" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="14.3652" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 14.3652 33.4902)" fill="#B480DE"/>
+<rect x="14.3652" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 14.3652 33.4902)" fill="#B480DE"/>
+<rect x="14.3652" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 14.3652 33.4902)" fill="#B480DE"/>
+<rect x="9.65625" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 9.65625 33.4902)" fill="#B480DE"/>
+<rect x="9.65625" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 9.65625 33.4902)" fill="#B480DE"/>
+<rect x="9.65625" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 9.65625 33.4902)" fill="#B480DE"/>
+<rect x="22.3379" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="22.3379" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="22.3379" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="27.0469" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 27.0469 33.4902)" fill="#B480DE"/>
+<rect x="27.0469" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 27.0469 33.4902)" fill="#B480DE"/>
+<rect x="27.0469" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 27.0469 33.4902)" fill="#B480DE"/>
+<rect x="22.3379" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 22.3379 33.4902)" fill="#B480DE"/>
+<rect x="22.3379" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 22.3379 33.4902)" fill="#B480DE"/>
+<rect x="22.3379" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 22.3379 33.4902)" fill="#B480DE"/>
+<rect x="35.0205" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="35.0205" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="35.0205" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="39.7295" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 39.7295 33.4902)" fill="#B480DE"/>
+<rect x="39.7295" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 39.7295 33.4902)" fill="#B480DE"/>
+<rect x="39.7295" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 39.7295 33.4902)" fill="#B480DE"/>
+<rect x="35.0205" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 35.0205 33.4902)" fill="#B480DE"/>
+<rect x="35.0205" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 35.0205 33.4902)" fill="#B480DE"/>
+<rect x="35.0205" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 35.0205 33.4902)" fill="#B480DE"/>
+<rect x="47.7031" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="47.7031" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="47.7031" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="52.4121" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 52.4121 33.4902)" fill="#B480DE"/>
+<rect x="52.4121" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 52.4121 33.4902)" fill="#B480DE"/>
+<rect x="52.4121" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 52.4121 33.4902)" fill="#B480DE"/>
+<rect x="47.7031" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 47.7031 33.4902)" fill="#B480DE"/>
+<rect x="47.7031" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 47.7031 33.4902)" fill="#B480DE"/>
+<rect x="47.7031" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 47.7031 33.4902)" fill="#B480DE"/>
+<rect x="60.3848" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="60.3848" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="60.3848" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="65.0938" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 65.0938 33.4902)" fill="#B480DE"/>
+<rect x="65.0938" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 65.0938 33.4902)" fill="#B480DE"/>
+<rect x="65.0938" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 65.0938 33.4902)" fill="#B480DE"/>
+<rect x="60.3848" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 60.3848 33.4902)" fill="#B480DE"/>
+<rect x="60.3848" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 60.3848 33.4902)" fill="#B480DE"/>
+<rect x="60.3848" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 60.3848 33.4902)" fill="#B480DE"/>
+<rect x="73.0674" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="73.0674" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="73.0674" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="77.7764" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 77.7764 33.4902)" fill="#B480DE"/>
+<rect x="77.7764" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 77.7764 33.4902)" fill="#B480DE"/>
+<rect x="77.7764" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 77.7764 33.4902)" fill="#B480DE"/>
+<rect x="73.0674" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 73.0674 33.4902)" fill="#B480DE"/>
+<rect x="73.0674" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 73.0674 33.4902)" fill="#B480DE"/>
+<rect x="73.0674" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 73.0674 33.4902)" fill="#B480DE"/>
+<rect x="85.749" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="85.749" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="85.749" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="90.458" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 90.458 33.4902)" fill="#B480DE"/>
+<rect x="90.458" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 90.458 33.4902)" fill="#B480DE"/>
+<rect x="90.458" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 90.458 33.4902)" fill="#B480DE"/>
+<rect x="85.749" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 85.749 33.4902)" fill="#B480DE"/>
+<rect x="85.749" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 85.749 33.4902)" fill="#B480DE"/>
+<rect x="85.749" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 85.749 33.4902)" fill="#B480DE"/>
+<rect x="98.4316" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="98.4316" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="98.4316" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="103.141" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 103.141 33.4902)" fill="#B480DE"/>
+<rect x="103.141" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 103.141 33.4902)" fill="#B480DE"/>
+<rect x="103.141" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 103.141 33.4902)" fill="#B480DE"/>
+<rect x="98.4316" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 98.4316 33.4902)" fill="#B480DE"/>
+<rect x="98.4316" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 98.4316 33.4902)" fill="#B480DE"/>
+<rect x="98.4316" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 98.4316 33.4902)" fill="#B480DE"/>
+<rect x="111.114" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="111.114" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="111.114" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="115.823" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 115.823 33.4902)" fill="#B480DE"/>
+<rect x="115.823" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 115.823 33.4902)" fill="#B480DE"/>
+<rect x="115.823" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 115.823 33.4902)" fill="#B480DE"/>
+<rect x="111.114" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 111.114 33.4902)" fill="#B480DE"/>
+<rect x="111.114" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 111.114 33.4902)" fill="#B480DE"/>
+<rect x="111.114" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 111.114 33.4902)" fill="#B480DE"/>
+<rect x="123.796" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="123.796" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="123.796" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="128.505" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 128.505 33.4902)" fill="#B480DE"/>
+<rect x="128.505" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 128.505 33.4902)" fill="#B480DE"/>
+<rect x="128.505" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 128.505 33.4902)" fill="#B480DE"/>
+<rect x="123.796" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 123.796 33.4902)" fill="#B480DE"/>
+<rect x="123.796" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 123.796 33.4902)" fill="#B480DE"/>
+<rect x="123.796" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 123.796 33.4902)" fill="#B480DE"/>
+<rect x="136.479" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="136.479" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="136.479" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="141.188" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 141.188 33.4902)" fill="#B480DE"/>
+<rect x="141.188" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 141.188 33.4902)" fill="#B480DE"/>
+<rect x="141.188" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 141.188 33.4902)" fill="#B480DE"/>
+<rect x="136.479" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 136.479 33.4902)" fill="#B480DE"/>
+<rect x="136.479" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 136.479 33.4902)" fill="#B480DE"/>
+<rect x="136.479" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 136.479 33.4902)" fill="#B480DE"/>
+<rect x="149.161" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="149.161" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="149.161" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="153.87" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 153.87 33.4902)" fill="#B480DE"/>
+<rect x="153.87" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 153.87 33.4902)" fill="#B480DE"/>
+<rect x="153.87" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 153.87 33.4902)" fill="#B480DE"/>
+<rect x="149.161" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 149.161 33.4902)" fill="#B480DE"/>
+<rect x="149.161" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 149.161 33.4902)" fill="#B480DE"/>
+<rect x="149.161" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 149.161 33.4902)" fill="#B480DE"/>
+<rect x="161.843" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="161.843" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="161.843" y="27.4189" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="166.552" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 166.552 33.4902)" fill="#B480DE"/>
+<rect x="166.552" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 166.552 33.4902)" fill="#B480DE"/>
+<rect x="166.552" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 166.552 33.4902)" fill="#B480DE"/>
+<rect x="161.843" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 161.843 33.4902)" fill="#B480DE"/>
+<rect x="161.843" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 161.843 33.4902)" fill="#B480DE"/>
+<rect x="161.843" y="33.4902" width="1.73475" height="2.97386" transform="rotate(90 161.843 33.4902)" fill="#B480DE"/>
+<rect x="3.31445" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="3.31445" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="3.31445" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="8.02344" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 8.02344 43.2964)" fill="#B480DE"/>
+<rect x="8.02344" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 8.02344 43.2964)" fill="#B480DE"/>
+<rect x="8.02344" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 8.02344 43.2964)" fill="#B480DE"/>
+<rect x="3.31445" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 3.31445 43.2964)" fill="#B480DE"/>
+<rect x="3.31445" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 3.31445 43.2964)" fill="#B480DE"/>
+<rect x="3.31445" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 3.31445 43.2964)" fill="#B480DE"/>
+<rect x="15.9971" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="15.9971" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="15.9971" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="20.7061" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 20.7061 43.2964)" fill="#B480DE"/>
+<rect x="20.7061" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 20.7061 43.2964)" fill="#B480DE"/>
+<rect x="20.7061" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 20.7061 43.2964)" fill="#B480DE"/>
+<rect x="15.9971" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 15.9971 43.2964)" fill="#B480DE"/>
+<rect x="15.9971" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 15.9971 43.2964)" fill="#B480DE"/>
+<rect x="15.9971" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 15.9971 43.2964)" fill="#B480DE"/>
+<rect x="28.6787" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="28.6787" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="28.6787" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="33.3877" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 33.3877 43.2964)" fill="#B480DE"/>
+<rect x="33.3877" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 33.3877 43.2964)" fill="#B480DE"/>
+<rect x="33.3877" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 33.3877 43.2964)" fill="#B480DE"/>
+<rect x="28.6787" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 28.6787 43.2964)" fill="#B480DE"/>
+<rect x="28.6787" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 28.6787 43.2964)" fill="#B480DE"/>
+<rect x="28.6787" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 28.6787 43.2964)" fill="#B480DE"/>
+<rect x="41.3613" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="41.3613" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="41.3613" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="46.0703" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 46.0703 43.2964)" fill="#B480DE"/>
+<rect x="46.0703" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 46.0703 43.2964)" fill="#B480DE"/>
+<rect x="46.0703" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 46.0703 43.2964)" fill="#B480DE"/>
+<rect x="41.3613" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 41.3613 43.2964)" fill="#B480DE"/>
+<rect x="41.3613" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 41.3613 43.2964)" fill="#B480DE"/>
+<rect x="41.3613" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 41.3613 43.2964)" fill="#B480DE"/>
+<rect x="54.0439" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="54.0439" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="54.0439" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="58.7529" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 58.7529 43.2964)" fill="#B480DE"/>
+<rect x="58.7529" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 58.7529 43.2964)" fill="#B480DE"/>
+<rect x="58.7529" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 58.7529 43.2964)" fill="#B480DE"/>
+<rect x="54.0439" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 54.0439 43.2964)" fill="#B480DE"/>
+<rect x="54.0439" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 54.0439 43.2964)" fill="#B480DE"/>
+<rect x="54.0439" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 54.0439 43.2964)" fill="#B480DE"/>
+<rect x="66.7256" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="66.7256" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="66.7256" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="71.4346" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 71.4346 43.2964)" fill="#B480DE"/>
+<rect x="71.4346" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 71.4346 43.2964)" fill="#B480DE"/>
+<rect x="71.4346" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 71.4346 43.2964)" fill="#B480DE"/>
+<rect x="66.7256" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 66.7256 43.2964)" fill="#B480DE"/>
+<rect x="66.7256" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 66.7256 43.2964)" fill="#B480DE"/>
+<rect x="66.7256" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 66.7256 43.2964)" fill="#B480DE"/>
+<rect x="79.4082" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="79.4082" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="79.4082" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="84.1172" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 84.1172 43.2964)" fill="#B480DE"/>
+<rect x="84.1172" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 84.1172 43.2964)" fill="#B480DE"/>
+<rect x="84.1172" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 84.1172 43.2964)" fill="#B480DE"/>
+<rect x="79.4082" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 79.4082 43.2964)" fill="#B480DE"/>
+<rect x="79.4082" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 79.4082 43.2964)" fill="#B480DE"/>
+<rect x="79.4082" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 79.4082 43.2964)" fill="#B480DE"/>
+<rect x="92.0898" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="92.0898" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="92.0898" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="96.7988" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 96.7988 43.2964)" fill="#B480DE"/>
+<rect x="96.7988" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 96.7988 43.2964)" fill="#B480DE"/>
+<rect x="96.7988" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 96.7988 43.2964)" fill="#B480DE"/>
+<rect x="92.0898" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 92.0898 43.2964)" fill="#B480DE"/>
+<rect x="92.0898" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 92.0898 43.2964)" fill="#B480DE"/>
+<rect x="92.0898" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 92.0898 43.2964)" fill="#B480DE"/>
+<rect x="104.772" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="104.772" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="104.772" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="109.481" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 109.481 43.2964)" fill="#B480DE"/>
+<rect x="109.481" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 109.481 43.2964)" fill="#B480DE"/>
+<rect x="109.481" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 109.481 43.2964)" fill="#B480DE"/>
+<rect x="104.772" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 104.772 43.2964)" fill="#B480DE"/>
+<rect x="104.772" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 104.772 43.2964)" fill="#B480DE"/>
+<rect x="104.772" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 104.772 43.2964)" fill="#B480DE"/>
+<rect x="117.455" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="117.455" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="117.455" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="122.164" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 122.164 43.2964)" fill="#B480DE"/>
+<rect x="122.164" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 122.164 43.2964)" fill="#B480DE"/>
+<rect x="122.164" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 122.164 43.2964)" fill="#B480DE"/>
+<rect x="117.455" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 117.455 43.2964)" fill="#B480DE"/>
+<rect x="117.455" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 117.455 43.2964)" fill="#B480DE"/>
+<rect x="117.455" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 117.455 43.2964)" fill="#B480DE"/>
+<rect x="130.137" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="130.137" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="130.137" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="134.846" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 134.846 43.2964)" fill="#B480DE"/>
+<rect x="134.846" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 134.846 43.2964)" fill="#B480DE"/>
+<rect x="134.846" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 134.846 43.2964)" fill="#B480DE"/>
+<rect x="130.137" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 130.137 43.2964)" fill="#B480DE"/>
+<rect x="130.137" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 130.137 43.2964)" fill="#B480DE"/>
+<rect x="130.137" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 130.137 43.2964)" fill="#B480DE"/>
+<rect x="142.819" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="142.819" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="142.819" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="147.528" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 147.528 43.2964)" fill="#B480DE"/>
+<rect x="147.528" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 147.528 43.2964)" fill="#B480DE"/>
+<rect x="147.528" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 147.528 43.2964)" fill="#B480DE"/>
+<rect x="142.819" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 142.819 43.2964)" fill="#B480DE"/>
+<rect x="142.819" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 142.819 43.2964)" fill="#B480DE"/>
+<rect x="142.819" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 142.819 43.2964)" fill="#B480DE"/>
+<rect x="155.502" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="155.502" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="155.502" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="160.211" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 160.211 43.2964)" fill="#B480DE"/>
+<rect x="160.211" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 160.211 43.2964)" fill="#B480DE"/>
+<rect x="160.211" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 160.211 43.2964)" fill="#B480DE"/>
+<rect x="155.502" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 155.502 43.2964)" fill="#B480DE"/>
+<rect x="155.502" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 155.502 43.2964)" fill="#B480DE"/>
+<rect x="155.502" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 155.502 43.2964)" fill="#B480DE"/>
+<rect x="168.184" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="168.184" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="168.184" y="37.2251" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="168.184" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 168.184 43.2964)" fill="#B480DE"/>
+<rect x="168.184" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 168.184 43.2964)" fill="#B480DE"/>
+<rect x="168.184" y="43.2964" width="1.73475" height="2.97386" transform="rotate(90 168.184 43.2964)" fill="#B480DE"/>
+<rect x="1.68262" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 1.68262 53.1025)" fill="#B480DE"/>
+<rect x="1.68262" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 1.68262 53.1025)" fill="#B480DE"/>
+<rect x="1.68262" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 1.68262 53.1025)" fill="#B480DE"/>
+<rect x="9.65625" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="9.65625" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="9.65625" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="14.3652" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 14.3652 53.1025)" fill="#B480DE"/>
+<rect x="14.3652" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 14.3652 53.1025)" fill="#B480DE"/>
+<rect x="14.3652" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 14.3652 53.1025)" fill="#B480DE"/>
+<rect x="9.65625" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 9.65625 53.1025)" fill="#B480DE"/>
+<rect x="9.65625" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 9.65625 53.1025)" fill="#B480DE"/>
+<rect x="9.65625" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 9.65625 53.1025)" fill="#B480DE"/>
+<rect x="22.3379" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="22.3379" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="22.3379" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="27.0469" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 27.0469 53.1025)" fill="#B480DE"/>
+<rect x="27.0469" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 27.0469 53.1025)" fill="#B480DE"/>
+<rect x="27.0469" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 27.0469 53.1025)" fill="#B480DE"/>
+<rect x="22.3379" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 22.3379 53.1025)" fill="#B480DE"/>
+<rect x="22.3379" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 22.3379 53.1025)" fill="#B480DE"/>
+<rect x="22.3379" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 22.3379 53.1025)" fill="#B480DE"/>
+<rect x="35.0205" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="35.0205" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="35.0205" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="39.7295" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 39.7295 53.1025)" fill="#B480DE"/>
+<rect x="39.7295" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 39.7295 53.1025)" fill="#B480DE"/>
+<rect x="39.7295" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 39.7295 53.1025)" fill="#B480DE"/>
+<rect x="35.0205" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 35.0205 53.1025)" fill="#B480DE"/>
+<rect x="35.0205" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 35.0205 53.1025)" fill="#B480DE"/>
+<rect x="35.0205" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 35.0205 53.1025)" fill="#B480DE"/>
+<rect x="47.7031" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="47.7031" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="47.7031" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="52.4121" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 52.4121 53.1025)" fill="#B480DE"/>
+<rect x="52.4121" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 52.4121 53.1025)" fill="#B480DE"/>
+<rect x="52.4121" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 52.4121 53.1025)" fill="#B480DE"/>
+<rect x="47.7031" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 47.7031 53.1025)" fill="#B480DE"/>
+<rect x="47.7031" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 47.7031 53.1025)" fill="#B480DE"/>
+<rect x="47.7031" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 47.7031 53.1025)" fill="#B480DE"/>
+<rect x="60.3848" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="60.3848" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="60.3848" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="65.0938" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 65.0938 53.1025)" fill="#B480DE"/>
+<rect x="65.0938" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 65.0938 53.1025)" fill="#B480DE"/>
+<rect x="65.0938" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 65.0938 53.1025)" fill="#B480DE"/>
+<rect x="60.3848" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 60.3848 53.1025)" fill="#B480DE"/>
+<rect x="60.3848" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 60.3848 53.1025)" fill="#B480DE"/>
+<rect x="60.3848" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 60.3848 53.1025)" fill="#B480DE"/>
+<rect x="73.0674" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="73.0674" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="73.0674" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="77.7764" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 77.7764 53.1025)" fill="#B480DE"/>
+<rect x="77.7764" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 77.7764 53.1025)" fill="#B480DE"/>
+<rect x="77.7764" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 77.7764 53.1025)" fill="#B480DE"/>
+<rect x="73.0674" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 73.0674 53.1025)" fill="#B480DE"/>
+<rect x="73.0674" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 73.0674 53.1025)" fill="#B480DE"/>
+<rect x="73.0674" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 73.0674 53.1025)" fill="#B480DE"/>
+<rect x="85.749" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="85.749" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="85.749" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="90.458" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 90.458 53.1025)" fill="#B480DE"/>
+<rect x="90.458" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 90.458 53.1025)" fill="#B480DE"/>
+<rect x="90.458" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 90.458 53.1025)" fill="#B480DE"/>
+<rect x="85.749" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 85.749 53.1025)" fill="#B480DE"/>
+<rect x="85.749" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 85.749 53.1025)" fill="#B480DE"/>
+<rect x="85.749" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 85.749 53.1025)" fill="#B480DE"/>
+<rect x="98.4316" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="98.4316" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="98.4316" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="103.141" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 103.141 53.1025)" fill="#B480DE"/>
+<rect x="103.141" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 103.141 53.1025)" fill="#B480DE"/>
+<rect x="103.141" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 103.141 53.1025)" fill="#B480DE"/>
+<rect x="98.4316" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 98.4316 53.1025)" fill="#B480DE"/>
+<rect x="98.4316" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 98.4316 53.1025)" fill="#B480DE"/>
+<rect x="98.4316" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 98.4316 53.1025)" fill="#B480DE"/>
+<rect x="111.114" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="111.114" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="111.114" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="115.823" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 115.823 53.1025)" fill="#B480DE"/>
+<rect x="115.823" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 115.823 53.1025)" fill="#B480DE"/>
+<rect x="115.823" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 115.823 53.1025)" fill="#B480DE"/>
+<rect x="111.114" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 111.114 53.1025)" fill="#B480DE"/>
+<rect x="111.114" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 111.114 53.1025)" fill="#B480DE"/>
+<rect x="111.114" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 111.114 53.1025)" fill="#B480DE"/>
+<rect x="123.796" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="123.796" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="123.796" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="128.505" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 128.505 53.1025)" fill="#B480DE"/>
+<rect x="128.505" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 128.505 53.1025)" fill="#B480DE"/>
+<rect x="128.505" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 128.505 53.1025)" fill="#B480DE"/>
+<rect x="123.796" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 123.796 53.1025)" fill="#B480DE"/>
+<rect x="123.796" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 123.796 53.1025)" fill="#B480DE"/>
+<rect x="123.796" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 123.796 53.1025)" fill="#B480DE"/>
+<rect x="136.479" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="136.479" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="136.479" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="141.188" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 141.188 53.1025)" fill="#B480DE"/>
+<rect x="141.188" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 141.188 53.1025)" fill="#B480DE"/>
+<rect x="141.188" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 141.188 53.1025)" fill="#B480DE"/>
+<rect x="136.479" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 136.479 53.1025)" fill="#B480DE"/>
+<rect x="136.479" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 136.479 53.1025)" fill="#B480DE"/>
+<rect x="136.479" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 136.479 53.1025)" fill="#B480DE"/>
+<rect x="149.161" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="149.161" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="149.161" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="153.87" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 153.87 53.1025)" fill="#B480DE"/>
+<rect x="153.87" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 153.87 53.1025)" fill="#B480DE"/>
+<rect x="153.87" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 153.87 53.1025)" fill="#B480DE"/>
+<rect x="149.161" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 149.161 53.1025)" fill="#B480DE"/>
+<rect x="149.161" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 149.161 53.1025)" fill="#B480DE"/>
+<rect x="149.161" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 149.161 53.1025)" fill="#B480DE"/>
+<rect x="161.843" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="161.843" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="161.843" y="47.0312" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="166.552" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 166.552 53.1025)" fill="#B480DE"/>
+<rect x="166.552" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 166.552 53.1025)" fill="#B480DE"/>
+<rect x="166.552" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 166.552 53.1025)" fill="#B480DE"/>
+<rect x="161.843" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 161.843 53.1025)" fill="#B480DE"/>
+<rect x="161.843" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 161.843 53.1025)" fill="#B480DE"/>
+<rect x="161.843" y="53.1025" width="1.73475" height="2.97386" transform="rotate(90 161.843 53.1025)" fill="#B480DE"/>
+<rect x="3.31445" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="3.31445" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="3.31445" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="8.02344" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 8.02344 62.9087)" fill="#B480DE"/>
+<rect x="8.02344" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 8.02344 62.9087)" fill="#B480DE"/>
+<rect x="8.02344" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 8.02344 62.9087)" fill="#B480DE"/>
+<rect x="3.31445" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 3.31445 62.9087)" fill="#B480DE"/>
+<rect x="3.31445" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 3.31445 62.9087)" fill="#B480DE"/>
+<rect x="3.31445" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 3.31445 62.9087)" fill="#B480DE"/>
+<rect x="15.9971" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="15.9971" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="15.9971" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="20.7061" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 20.7061 62.9087)" fill="#B480DE"/>
+<rect x="20.7061" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 20.7061 62.9087)" fill="#B480DE"/>
+<rect x="20.7061" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 20.7061 62.9087)" fill="#B480DE"/>
+<rect x="15.9971" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 15.9971 62.9087)" fill="#B480DE"/>
+<rect x="15.9971" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 15.9971 62.9087)" fill="#B480DE"/>
+<rect x="15.9971" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 15.9971 62.9087)" fill="#B480DE"/>
+<rect x="28.6787" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="28.6787" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="28.6787" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="33.3877" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 33.3877 62.9087)" fill="#B480DE"/>
+<rect x="33.3877" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 33.3877 62.9087)" fill="#B480DE"/>
+<rect x="33.3877" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 33.3877 62.9087)" fill="#B480DE"/>
+<rect x="28.6787" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 28.6787 62.9087)" fill="#B480DE"/>
+<rect x="28.6787" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 28.6787 62.9087)" fill="#B480DE"/>
+<rect x="28.6787" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 28.6787 62.9087)" fill="#B480DE"/>
+<rect x="41.3613" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="41.3613" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="41.3613" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="46.0703" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 46.0703 62.9087)" fill="#B480DE"/>
+<rect x="46.0703" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 46.0703 62.9087)" fill="#B480DE"/>
+<rect x="46.0703" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 46.0703 62.9087)" fill="#B480DE"/>
+<rect x="41.3613" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 41.3613 62.9087)" fill="#B480DE"/>
+<rect x="41.3613" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 41.3613 62.9087)" fill="#B480DE"/>
+<rect x="41.3613" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 41.3613 62.9087)" fill="#B480DE"/>
+<rect x="54.0439" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="54.0439" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="54.0439" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="58.7529" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 58.7529 62.9087)" fill="#B480DE"/>
+<rect x="58.7529" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 58.7529 62.9087)" fill="#B480DE"/>
+<rect x="58.7529" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 58.7529 62.9087)" fill="#B480DE"/>
+<rect x="54.0439" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 54.0439 62.9087)" fill="#B480DE"/>
+<rect x="54.0439" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 54.0439 62.9087)" fill="#B480DE"/>
+<rect x="54.0439" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 54.0439 62.9087)" fill="#B480DE"/>
+<rect x="66.7256" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="66.7256" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="66.7256" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="71.4346" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 71.4346 62.9087)" fill="#B480DE"/>
+<rect x="71.4346" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 71.4346 62.9087)" fill="#B480DE"/>
+<rect x="71.4346" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 71.4346 62.9087)" fill="#B480DE"/>
+<rect x="66.7256" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 66.7256 62.9087)" fill="#B480DE"/>
+<rect x="66.7256" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 66.7256 62.9087)" fill="#B480DE"/>
+<rect x="66.7256" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 66.7256 62.9087)" fill="#B480DE"/>
+<rect x="79.4082" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="79.4082" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="79.4082" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="84.1172" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 84.1172 62.9087)" fill="#B480DE"/>
+<rect x="84.1172" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 84.1172 62.9087)" fill="#B480DE"/>
+<rect x="84.1172" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 84.1172 62.9087)" fill="#B480DE"/>
+<rect x="79.4082" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 79.4082 62.9087)" fill="#B480DE"/>
+<rect x="79.4082" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 79.4082 62.9087)" fill="#B480DE"/>
+<rect x="79.4082" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 79.4082 62.9087)" fill="#B480DE"/>
+<rect x="92.0898" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="92.0898" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="92.0898" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="96.7988" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 96.7988 62.9087)" fill="#B480DE"/>
+<rect x="96.7988" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 96.7988 62.9087)" fill="#B480DE"/>
+<rect x="96.7988" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 96.7988 62.9087)" fill="#B480DE"/>
+<rect x="92.0898" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 92.0898 62.9087)" fill="#B480DE"/>
+<rect x="92.0898" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 92.0898 62.9087)" fill="#B480DE"/>
+<rect x="92.0898" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 92.0898 62.9087)" fill="#B480DE"/>
+<rect x="104.772" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="104.772" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="104.772" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="109.481" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 109.481 62.9087)" fill="#B480DE"/>
+<rect x="109.481" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 109.481 62.9087)" fill="#B480DE"/>
+<rect x="109.481" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 109.481 62.9087)" fill="#B480DE"/>
+<rect x="104.772" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 104.772 62.9087)" fill="#B480DE"/>
+<rect x="104.772" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 104.772 62.9087)" fill="#B480DE"/>
+<rect x="104.772" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 104.772 62.9087)" fill="#B480DE"/>
+<rect x="117.455" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="117.455" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="117.455" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="122.164" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 122.164 62.9087)" fill="#B480DE"/>
+<rect x="122.164" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 122.164 62.9087)" fill="#B480DE"/>
+<rect x="122.164" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 122.164 62.9087)" fill="#B480DE"/>
+<rect x="117.455" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 117.455 62.9087)" fill="#B480DE"/>
+<rect x="117.455" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 117.455 62.9087)" fill="#B480DE"/>
+<rect x="117.455" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 117.455 62.9087)" fill="#B480DE"/>
+<rect x="130.137" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="130.137" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="130.137" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="134.846" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 134.846 62.9087)" fill="#B480DE"/>
+<rect x="134.846" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 134.846 62.9087)" fill="#B480DE"/>
+<rect x="134.846" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 134.846 62.9087)" fill="#B480DE"/>
+<rect x="130.137" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 130.137 62.9087)" fill="#B480DE"/>
+<rect x="130.137" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 130.137 62.9087)" fill="#B480DE"/>
+<rect x="130.137" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 130.137 62.9087)" fill="#B480DE"/>
+<rect x="142.819" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="142.819" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="142.819" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="147.528" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 147.528 62.9087)" fill="#B480DE"/>
+<rect x="147.528" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 147.528 62.9087)" fill="#B480DE"/>
+<rect x="147.528" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 147.528 62.9087)" fill="#B480DE"/>
+<rect x="142.819" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 142.819 62.9087)" fill="#B480DE"/>
+<rect x="142.819" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 142.819 62.9087)" fill="#B480DE"/>
+<rect x="142.819" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 142.819 62.9087)" fill="#B480DE"/>
+<rect x="155.502" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="155.502" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="155.502" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="160.211" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 160.211 62.9087)" fill="#B480DE"/>
+<rect x="160.211" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 160.211 62.9087)" fill="#B480DE"/>
+<rect x="160.211" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 160.211 62.9087)" fill="#B480DE"/>
+<rect x="155.502" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 155.502 62.9087)" fill="#B480DE"/>
+<rect x="155.502" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 155.502 62.9087)" fill="#B480DE"/>
+<rect x="155.502" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 155.502 62.9087)" fill="#B480DE"/>
+<rect x="168.184" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="168.184" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="168.184" y="56.8374" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="168.184" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 168.184 62.9087)" fill="#B480DE"/>
+<rect x="168.184" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 168.184 62.9087)" fill="#B480DE"/>
+<rect x="168.184" y="62.9087" width="1.73475" height="2.97386" transform="rotate(90 168.184 62.9087)" fill="#B480DE"/>
+<rect x="1.68262" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 1.68262 72.7148)" fill="#B480DE"/>
+<rect x="1.68262" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 1.68262 72.7148)" fill="#B480DE"/>
+<rect x="1.68262" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 1.68262 72.7148)" fill="#B480DE"/>
+<rect x="9.65625" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="9.65625" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="9.65625" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="14.3652" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 14.3652 72.7148)" fill="#B480DE"/>
+<rect x="14.3652" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 14.3652 72.7148)" fill="#B480DE"/>
+<rect x="14.3652" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 14.3652 72.7148)" fill="#B480DE"/>
+<rect x="9.65625" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 9.65625 72.7148)" fill="#B480DE"/>
+<rect x="9.65625" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 9.65625 72.7148)" fill="#B480DE"/>
+<rect x="9.65625" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 9.65625 72.7148)" fill="#B480DE"/>
+<rect x="22.3379" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="22.3379" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="22.3379" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="27.0469" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 27.0469 72.7148)" fill="#B480DE"/>
+<rect x="27.0469" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 27.0469 72.7148)" fill="#B480DE"/>
+<rect x="27.0469" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 27.0469 72.7148)" fill="#B480DE"/>
+<rect x="22.3379" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 22.3379 72.7148)" fill="#B480DE"/>
+<rect x="22.3379" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 22.3379 72.7148)" fill="#B480DE"/>
+<rect x="22.3379" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 22.3379 72.7148)" fill="#B480DE"/>
+<rect x="35.0205" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="35.0205" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="35.0205" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="39.7295" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 39.7295 72.7148)" fill="#B480DE"/>
+<rect x="39.7295" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 39.7295 72.7148)" fill="#B480DE"/>
+<rect x="39.7295" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 39.7295 72.7148)" fill="#B480DE"/>
+<rect x="35.0205" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 35.0205 72.7148)" fill="#B480DE"/>
+<rect x="35.0205" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 35.0205 72.7148)" fill="#B480DE"/>
+<rect x="35.0205" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 35.0205 72.7148)" fill="#B480DE"/>
+<rect x="47.7031" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="47.7031" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="47.7031" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="52.4121" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 52.4121 72.7148)" fill="#B480DE"/>
+<rect x="52.4121" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 52.4121 72.7148)" fill="#B480DE"/>
+<rect x="52.4121" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 52.4121 72.7148)" fill="#B480DE"/>
+<rect x="47.7031" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 47.7031 72.7148)" fill="#B480DE"/>
+<rect x="47.7031" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 47.7031 72.7148)" fill="#B480DE"/>
+<rect x="47.7031" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 47.7031 72.7148)" fill="#B480DE"/>
+<rect x="60.3848" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="60.3848" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="60.3848" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="65.0938" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 65.0938 72.7148)" fill="#B480DE"/>
+<rect x="65.0938" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 65.0938 72.7148)" fill="#B480DE"/>
+<rect x="65.0938" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 65.0938 72.7148)" fill="#B480DE"/>
+<rect x="60.3848" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 60.3848 72.7148)" fill="#B480DE"/>
+<rect x="60.3848" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 60.3848 72.7148)" fill="#B480DE"/>
+<rect x="60.3848" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 60.3848 72.7148)" fill="#B480DE"/>
+<rect x="73.0674" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="73.0674" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="73.0674" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="77.7764" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 77.7764 72.7148)" fill="#B480DE"/>
+<rect x="77.7764" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 77.7764 72.7148)" fill="#B480DE"/>
+<rect x="77.7764" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 77.7764 72.7148)" fill="#B480DE"/>
+<rect x="73.0674" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 73.0674 72.7148)" fill="#B480DE"/>
+<rect x="73.0674" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 73.0674 72.7148)" fill="#B480DE"/>
+<rect x="73.0674" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 73.0674 72.7148)" fill="#B480DE"/>
+<rect x="85.749" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="85.749" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="85.749" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="90.458" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 90.458 72.7148)" fill="#B480DE"/>
+<rect x="90.458" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 90.458 72.7148)" fill="#B480DE"/>
+<rect x="90.458" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 90.458 72.7148)" fill="#B480DE"/>
+<rect x="85.749" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 85.749 72.7148)" fill="#B480DE"/>
+<rect x="85.749" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 85.749 72.7148)" fill="#B480DE"/>
+<rect x="85.749" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 85.749 72.7148)" fill="#B480DE"/>
+<rect x="98.4316" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="98.4316" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="98.4316" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="103.141" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 103.141 72.7148)" fill="#B480DE"/>
+<rect x="103.141" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 103.141 72.7148)" fill="#B480DE"/>
+<rect x="103.141" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 103.141 72.7148)" fill="#B480DE"/>
+<rect x="98.4316" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 98.4316 72.7148)" fill="#B480DE"/>
+<rect x="98.4316" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 98.4316 72.7148)" fill="#B480DE"/>
+<rect x="98.4316" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 98.4316 72.7148)" fill="#B480DE"/>
+<rect x="111.114" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="111.114" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="111.114" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="115.823" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 115.823 72.7148)" fill="#B480DE"/>
+<rect x="115.823" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 115.823 72.7148)" fill="#B480DE"/>
+<rect x="115.823" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 115.823 72.7148)" fill="#B480DE"/>
+<rect x="111.114" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 111.114 72.7148)" fill="#B480DE"/>
+<rect x="111.114" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 111.114 72.7148)" fill="#B480DE"/>
+<rect x="111.114" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 111.114 72.7148)" fill="#B480DE"/>
+<rect x="123.796" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="123.796" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="123.796" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="128.505" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 128.505 72.7148)" fill="#B480DE"/>
+<rect x="128.505" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 128.505 72.7148)" fill="#B480DE"/>
+<rect x="128.505" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 128.505 72.7148)" fill="#B480DE"/>
+<rect x="123.796" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 123.796 72.7148)" fill="#B480DE"/>
+<rect x="123.796" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 123.796 72.7148)" fill="#B480DE"/>
+<rect x="123.796" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 123.796 72.7148)" fill="#B480DE"/>
+<rect x="136.479" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="136.479" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="136.479" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="141.188" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 141.188 72.7148)" fill="#B480DE"/>
+<rect x="141.188" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 141.188 72.7148)" fill="#B480DE"/>
+<rect x="141.188" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 141.188 72.7148)" fill="#B480DE"/>
+<rect x="136.479" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 136.479 72.7148)" fill="#B480DE"/>
+<rect x="136.479" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 136.479 72.7148)" fill="#B480DE"/>
+<rect x="136.479" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 136.479 72.7148)" fill="#B480DE"/>
+<rect x="149.161" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="149.161" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="149.161" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="153.87" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 153.87 72.7148)" fill="#B480DE"/>
+<rect x="153.87" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 153.87 72.7148)" fill="#B480DE"/>
+<rect x="153.87" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 153.87 72.7148)" fill="#B480DE"/>
+<rect x="149.161" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 149.161 72.7148)" fill="#B480DE"/>
+<rect x="149.161" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 149.161 72.7148)" fill="#B480DE"/>
+<rect x="149.161" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 149.161 72.7148)" fill="#B480DE"/>
+<rect x="161.843" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="161.843" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="161.843" y="66.6436" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="166.552" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 166.552 72.7148)" fill="#B480DE"/>
+<rect x="166.552" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 166.552 72.7148)" fill="#B480DE"/>
+<rect x="166.552" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 166.552 72.7148)" fill="#B480DE"/>
+<rect x="161.843" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 161.843 72.7148)" fill="#B480DE"/>
+<rect x="161.843" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 161.843 72.7148)" fill="#B480DE"/>
+<rect x="161.843" y="72.7148" width="1.73475" height="2.97386" transform="rotate(90 161.843 72.7148)" fill="#B480DE"/>
+<rect x="3.31445" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="3.31445" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="3.31445" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="8.02344" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 8.02344 82.5215)" fill="#B480DE"/>
+<rect x="8.02344" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 8.02344 82.5215)" fill="#B480DE"/>
+<rect x="8.02344" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 8.02344 82.5215)" fill="#B480DE"/>
+<rect x="3.31445" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 3.31445 82.5215)" fill="#B480DE"/>
+<rect x="3.31445" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 3.31445 82.5215)" fill="#B480DE"/>
+<rect x="3.31445" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 3.31445 82.5215)" fill="#B480DE"/>
+<rect x="15.9971" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="15.9971" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="15.9971" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="20.7061" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 20.7061 82.5215)" fill="#B480DE"/>
+<rect x="20.7061" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 20.7061 82.5215)" fill="#B480DE"/>
+<rect x="20.7061" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 20.7061 82.5215)" fill="#B480DE"/>
+<rect x="15.9971" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 15.9971 82.5215)" fill="#B480DE"/>
+<rect x="15.9971" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 15.9971 82.5215)" fill="#B480DE"/>
+<rect x="15.9971" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 15.9971 82.5215)" fill="#B480DE"/>
+<rect x="28.6787" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="28.6787" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="28.6787" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="33.3877" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 33.3877 82.5215)" fill="#B480DE"/>
+<rect x="33.3877" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 33.3877 82.5215)" fill="#B480DE"/>
+<rect x="33.3877" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 33.3877 82.5215)" fill="#B480DE"/>
+<rect x="28.6787" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 28.6787 82.5215)" fill="#B480DE"/>
+<rect x="28.6787" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 28.6787 82.5215)" fill="#B480DE"/>
+<rect x="28.6787" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 28.6787 82.5215)" fill="#B480DE"/>
+<rect x="41.3613" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="41.3613" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="41.3613" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="46.0703" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 46.0703 82.5215)" fill="#B480DE"/>
+<rect x="46.0703" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 46.0703 82.5215)" fill="#B480DE"/>
+<rect x="46.0703" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 46.0703 82.5215)" fill="#B480DE"/>
+<rect x="41.3613" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 41.3613 82.5215)" fill="#B480DE"/>
+<rect x="41.3613" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 41.3613 82.5215)" fill="#B480DE"/>
+<rect x="41.3613" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 41.3613 82.5215)" fill="#B480DE"/>
+<rect x="54.0439" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="54.0439" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="54.0439" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="58.7529" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 58.7529 82.5215)" fill="#B480DE"/>
+<rect x="58.7529" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 58.7529 82.5215)" fill="#B480DE"/>
+<rect x="58.7529" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 58.7529 82.5215)" fill="#B480DE"/>
+<rect x="54.0439" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 54.0439 82.5215)" fill="#B480DE"/>
+<rect x="54.0439" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 54.0439 82.5215)" fill="#B480DE"/>
+<rect x="54.0439" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 54.0439 82.5215)" fill="#B480DE"/>
+<rect x="66.7256" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="66.7256" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="66.7256" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="71.4346" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 71.4346 82.5215)" fill="#B480DE"/>
+<rect x="71.4346" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 71.4346 82.5215)" fill="#B480DE"/>
+<rect x="71.4346" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 71.4346 82.5215)" fill="#B480DE"/>
+<rect x="66.7256" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 66.7256 82.5215)" fill="#B480DE"/>
+<rect x="66.7256" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 66.7256 82.5215)" fill="#B480DE"/>
+<rect x="66.7256" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 66.7256 82.5215)" fill="#B480DE"/>
+<rect x="79.4082" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="79.4082" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="79.4082" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="84.1172" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 84.1172 82.5215)" fill="#B480DE"/>
+<rect x="84.1172" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 84.1172 82.5215)" fill="#B480DE"/>
+<rect x="84.1172" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 84.1172 82.5215)" fill="#B480DE"/>
+<rect x="79.4082" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 79.4082 82.5215)" fill="#B480DE"/>
+<rect x="79.4082" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 79.4082 82.5215)" fill="#B480DE"/>
+<rect x="79.4082" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 79.4082 82.5215)" fill="#B480DE"/>
+<rect x="92.0898" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="92.0898" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="92.0898" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="96.7988" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 96.7988 82.5215)" fill="#B480DE"/>
+<rect x="96.7988" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 96.7988 82.5215)" fill="#B480DE"/>
+<rect x="96.7988" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 96.7988 82.5215)" fill="#B480DE"/>
+<rect x="92.0898" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 92.0898 82.5215)" fill="#B480DE"/>
+<rect x="92.0898" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 92.0898 82.5215)" fill="#B480DE"/>
+<rect x="92.0898" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 92.0898 82.5215)" fill="#B480DE"/>
+<rect x="104.772" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="104.772" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="104.772" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="109.481" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 109.481 82.5215)" fill="#B480DE"/>
+<rect x="109.481" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 109.481 82.5215)" fill="#B480DE"/>
+<rect x="109.481" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 109.481 82.5215)" fill="#B480DE"/>
+<rect x="104.772" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 104.772 82.5215)" fill="#B480DE"/>
+<rect x="104.772" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 104.772 82.5215)" fill="#B480DE"/>
+<rect x="104.772" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 104.772 82.5215)" fill="#B480DE"/>
+<rect x="117.455" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="117.455" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="117.455" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="122.164" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 122.164 82.5215)" fill="#B480DE"/>
+<rect x="122.164" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 122.164 82.5215)" fill="#B480DE"/>
+<rect x="122.164" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 122.164 82.5215)" fill="#B480DE"/>
+<rect x="117.455" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 117.455 82.5215)" fill="#B480DE"/>
+<rect x="117.455" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 117.455 82.5215)" fill="#B480DE"/>
+<rect x="117.455" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 117.455 82.5215)" fill="#B480DE"/>
+<rect x="130.137" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="130.137" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="130.137" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="134.846" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 134.846 82.5215)" fill="#B480DE"/>
+<rect x="134.846" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 134.846 82.5215)" fill="#B480DE"/>
+<rect x="134.846" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 134.846 82.5215)" fill="#B480DE"/>
+<rect x="130.137" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 130.137 82.5215)" fill="#B480DE"/>
+<rect x="130.137" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 130.137 82.5215)" fill="#B480DE"/>
+<rect x="130.137" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 130.137 82.5215)" fill="#B480DE"/>
+<rect x="142.819" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="142.819" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="142.819" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="147.528" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 147.528 82.5215)" fill="#B480DE"/>
+<rect x="147.528" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 147.528 82.5215)" fill="#B480DE"/>
+<rect x="147.528" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 147.528 82.5215)" fill="#B480DE"/>
+<rect x="142.819" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 142.819 82.5215)" fill="#B480DE"/>
+<rect x="142.819" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 142.819 82.5215)" fill="#B480DE"/>
+<rect x="142.819" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 142.819 82.5215)" fill="#B480DE"/>
+<rect x="155.502" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="155.502" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="155.502" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="160.211" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 160.211 82.5215)" fill="#B480DE"/>
+<rect x="160.211" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 160.211 82.5215)" fill="#B480DE"/>
+<rect x="160.211" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 160.211 82.5215)" fill="#B480DE"/>
+<rect x="155.502" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 155.502 82.5215)" fill="#B480DE"/>
+<rect x="155.502" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 155.502 82.5215)" fill="#B480DE"/>
+<rect x="155.502" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 155.502 82.5215)" fill="#B480DE"/>
+<rect x="168.184" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="168.184" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="168.184" y="76.4502" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="168.184" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 168.184 82.5215)" fill="#B480DE"/>
+<rect x="168.184" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 168.184 82.5215)" fill="#B480DE"/>
+<rect x="168.184" y="82.5215" width="1.73475" height="2.97386" transform="rotate(90 168.184 82.5215)" fill="#B480DE"/>
+<rect x="1.68262" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 1.68262 92.3276)" fill="#B480DE"/>
+<rect x="1.68262" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 1.68262 92.3276)" fill="#B480DE"/>
+<rect x="1.68262" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 1.68262 92.3276)" fill="#B480DE"/>
+<rect x="9.65625" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="9.65625" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="9.65625" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="14.3652" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 14.3652 92.3276)" fill="#B480DE"/>
+<rect x="14.3652" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 14.3652 92.3276)" fill="#B480DE"/>
+<rect x="14.3652" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 14.3652 92.3276)" fill="#B480DE"/>
+<rect x="9.65625" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 9.65625 92.3276)" fill="#B480DE"/>
+<rect x="9.65625" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 9.65625 92.3276)" fill="#B480DE"/>
+<rect x="9.65625" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 9.65625 92.3276)" fill="#B480DE"/>
+<rect x="22.3379" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="22.3379" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="22.3379" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="27.0469" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 27.0469 92.3276)" fill="#B480DE"/>
+<rect x="27.0469" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 27.0469 92.3276)" fill="#B480DE"/>
+<rect x="27.0469" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 27.0469 92.3276)" fill="#B480DE"/>
+<rect x="22.3379" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 22.3379 92.3276)" fill="#B480DE"/>
+<rect x="22.3379" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 22.3379 92.3276)" fill="#B480DE"/>
+<rect x="22.3379" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 22.3379 92.3276)" fill="#B480DE"/>
+<rect x="35.0205" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="35.0205" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="35.0205" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="39.7295" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 39.7295 92.3276)" fill="#B480DE"/>
+<rect x="39.7295" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 39.7295 92.3276)" fill="#B480DE"/>
+<rect x="39.7295" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 39.7295 92.3276)" fill="#B480DE"/>
+<rect x="35.0205" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 35.0205 92.3276)" fill="#B480DE"/>
+<rect x="35.0205" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 35.0205 92.3276)" fill="#B480DE"/>
+<rect x="35.0205" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 35.0205 92.3276)" fill="#B480DE"/>
+<rect x="47.7031" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="47.7031" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="47.7031" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="52.4121" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 52.4121 92.3276)" fill="#B480DE"/>
+<rect x="52.4121" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 52.4121 92.3276)" fill="#B480DE"/>
+<rect x="52.4121" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 52.4121 92.3276)" fill="#B480DE"/>
+<rect x="47.7031" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 47.7031 92.3276)" fill="#B480DE"/>
+<rect x="47.7031" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 47.7031 92.3276)" fill="#B480DE"/>
+<rect x="47.7031" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 47.7031 92.3276)" fill="#B480DE"/>
+<rect x="60.3848" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="60.3848" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="60.3848" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="65.0938" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 65.0938 92.3276)" fill="#B480DE"/>
+<rect x="65.0938" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 65.0938 92.3276)" fill="#B480DE"/>
+<rect x="65.0938" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 65.0938 92.3276)" fill="#B480DE"/>
+<rect x="60.3848" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 60.3848 92.3276)" fill="#B480DE"/>
+<rect x="60.3848" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 60.3848 92.3276)" fill="#B480DE"/>
+<rect x="60.3848" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 60.3848 92.3276)" fill="#B480DE"/>
+<rect x="73.0674" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="73.0674" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="73.0674" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="77.7764" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 77.7764 92.3276)" fill="#B480DE"/>
+<rect x="77.7764" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 77.7764 92.3276)" fill="#B480DE"/>
+<rect x="77.7764" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 77.7764 92.3276)" fill="#B480DE"/>
+<rect x="73.0674" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 73.0674 92.3276)" fill="#B480DE"/>
+<rect x="73.0674" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 73.0674 92.3276)" fill="#B480DE"/>
+<rect x="73.0674" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 73.0674 92.3276)" fill="#B480DE"/>
+<rect x="85.749" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="85.749" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="85.749" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="90.458" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 90.458 92.3276)" fill="#B480DE"/>
+<rect x="90.458" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 90.458 92.3276)" fill="#B480DE"/>
+<rect x="90.458" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 90.458 92.3276)" fill="#B480DE"/>
+<rect x="85.749" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 85.749 92.3276)" fill="#B480DE"/>
+<rect x="85.749" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 85.749 92.3276)" fill="#B480DE"/>
+<rect x="85.749" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 85.749 92.3276)" fill="#B480DE"/>
+<rect x="98.4316" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="98.4316" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="98.4316" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="103.141" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 103.141 92.3276)" fill="#B480DE"/>
+<rect x="103.141" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 103.141 92.3276)" fill="#B480DE"/>
+<rect x="103.141" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 103.141 92.3276)" fill="#B480DE"/>
+<rect x="98.4316" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 98.4316 92.3276)" fill="#B480DE"/>
+<rect x="98.4316" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 98.4316 92.3276)" fill="#B480DE"/>
+<rect x="98.4316" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 98.4316 92.3276)" fill="#B480DE"/>
+<rect x="111.114" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="111.114" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="111.114" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="115.823" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 115.823 92.3276)" fill="#B480DE"/>
+<rect x="115.823" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 115.823 92.3276)" fill="#B480DE"/>
+<rect x="115.823" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 115.823 92.3276)" fill="#B480DE"/>
+<rect x="111.114" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 111.114 92.3276)" fill="#B480DE"/>
+<rect x="111.114" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 111.114 92.3276)" fill="#B480DE"/>
+<rect x="111.114" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 111.114 92.3276)" fill="#B480DE"/>
+<rect x="123.796" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="123.796" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="123.796" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="128.505" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 128.505 92.3276)" fill="#B480DE"/>
+<rect x="128.505" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 128.505 92.3276)" fill="#B480DE"/>
+<rect x="128.505" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 128.505 92.3276)" fill="#B480DE"/>
+<rect x="123.796" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 123.796 92.3276)" fill="#B480DE"/>
+<rect x="123.796" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 123.796 92.3276)" fill="#B480DE"/>
+<rect x="123.796" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 123.796 92.3276)" fill="#B480DE"/>
+<rect x="136.479" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="136.479" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="136.479" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="141.188" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 141.188 92.3276)" fill="#B480DE"/>
+<rect x="141.188" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 141.188 92.3276)" fill="#B480DE"/>
+<rect x="141.188" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 141.188 92.3276)" fill="#B480DE"/>
+<rect x="136.479" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 136.479 92.3276)" fill="#B480DE"/>
+<rect x="136.479" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 136.479 92.3276)" fill="#B480DE"/>
+<rect x="136.479" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 136.479 92.3276)" fill="#B480DE"/>
+<rect x="149.161" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="149.161" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="149.161" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="153.87" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 153.87 92.3276)" fill="#B480DE"/>
+<rect x="153.87" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 153.87 92.3276)" fill="#B480DE"/>
+<rect x="153.87" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 153.87 92.3276)" fill="#B480DE"/>
+<rect x="149.161" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 149.161 92.3276)" fill="#B480DE"/>
+<rect x="149.161" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 149.161 92.3276)" fill="#B480DE"/>
+<rect x="149.161" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 149.161 92.3276)" fill="#B480DE"/>
+<rect x="161.843" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="161.843" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="161.843" y="86.2563" width="1.73475" height="4.70861" fill="#B480DE"/>
+<rect x="166.552" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 166.552 92.3276)" fill="#B480DE"/>
+<rect x="166.552" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 166.552 92.3276)" fill="#B480DE"/>
+<rect x="166.552" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 166.552 92.3276)" fill="#B480DE"/>
+<rect x="161.843" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 161.843 92.3276)" fill="#B480DE"/>
+<rect x="161.843" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 161.843 92.3276)" fill="#B480DE"/>
+<rect x="161.843" y="92.3276" width="1.73475" height="2.97386" transform="rotate(90 161.843 92.3276)" fill="#B480DE"/>
+</g>
+<path d="M66.1546 80.684H67.3186V89H66.1546V85.16H62.0866V89H60.9226V80.684H62.0866V84.152H66.1546V80.684ZM70.4276 89H69.3116V82.76H70.4276V89ZM69.8636 81.632C69.6636 81.632 69.4916 81.568 69.3476 81.44C69.2116 81.304 69.1436 81.124 69.1436 80.9C69.1436 80.676 69.2116 80.5 69.3476 80.372C69.4916 80.236 69.6636 80.168 69.8636 80.168C70.0636 80.168 70.2316 80.236 70.3676 80.372C70.5116 80.5 70.5836 80.676 70.5836 80.9C70.5836 81.124 70.5116 81.304 70.3676 81.44C70.2316 81.568 70.0636 81.632 69.8636 81.632ZM74.2187 89.12C73.5307 89.104 73.0427 88.956 72.7547 88.676C72.4667 88.396 72.3227 87.96 72.3227 87.368V79.88L73.4387 79.688V87.188C73.4387 87.372 73.4547 87.524 73.4867 87.644C73.5187 87.764 73.5707 87.86 73.6427 87.932C73.7147 88.004 73.8107 88.06 73.9307 88.1C74.0507 88.132 74.1987 88.16 74.3747 88.184L74.2187 89.12ZM77.5 89.12C76.812 89.104 76.324 88.956 76.036 88.676C75.748 88.396 75.604 87.96 75.604 87.368V79.88L76.72 79.688V87.188C76.72 87.372 76.736 87.524 76.768 87.644C76.8 87.764 76.852 87.86 76.924 87.932C76.996 88.004 77.092 88.06 77.212 88.1C77.332 88.132 77.48 88.16 77.656 88.184L77.5 89.12ZM81.6212 89.144C81.1172 89.144 80.6732 89.064 80.2892 88.904C79.9132 88.744 79.5932 88.52 79.3292 88.232C79.0732 87.944 78.8812 87.604 78.7532 87.212C78.6252 86.812 78.5612 86.372 78.5612 85.892C78.5612 85.412 78.6292 84.972 78.7652 84.572C78.9092 84.172 79.1092 83.828 79.3652 83.54C79.6212 83.244 79.9332 83.016 80.3012 82.856C80.6772 82.688 81.0932 82.604 81.5492 82.604C81.8292 82.604 82.1092 82.628 82.3892 82.676C82.6692 82.724 82.9372 82.8 83.1932 82.904L82.9412 83.852C82.7732 83.772 82.5772 83.708 82.3532 83.66C82.1372 83.612 81.9052 83.588 81.6572 83.588C81.0332 83.588 80.5532 83.784 80.2172 84.176C79.8892 84.568 79.7252 85.14 79.7252 85.892C79.7252 86.228 79.7612 86.536 79.8332 86.816C79.9132 87.096 80.0332 87.336 80.1932 87.536C80.3612 87.736 80.5732 87.892 80.8292 88.004C81.0852 88.108 81.3972 88.16 81.7652 88.16C82.0612 88.16 82.3292 88.132 82.5692 88.076C82.8092 88.02 82.9972 87.96 83.1332 87.896L83.2892 88.832C83.2252 88.872 83.1332 88.912 83.0132 88.952C82.8932 88.984 82.7572 89.012 82.6052 89.036C82.4532 89.068 82.2892 89.092 82.1132 89.108C81.9452 89.132 81.7812 89.144 81.6212 89.144ZM84.4873 89V79.88L85.6033 79.688V82.88C85.8113 82.8 86.0313 82.74 86.2633 82.7C86.5033 82.652 86.7393 82.628 86.9713 82.628C87.4673 82.628 87.8793 82.7 88.2073 82.844C88.5353 82.98 88.7953 83.176 88.9873 83.432C89.1873 83.68 89.3273 83.98 89.4073 84.332C89.4873 84.684 89.5273 85.072 89.5273 85.496V89H88.4113V85.736C88.4113 85.352 88.3833 85.024 88.3273 84.752C88.2793 84.48 88.1953 84.26 88.0753 84.092C87.9553 83.924 87.7953 83.804 87.5953 83.732C87.3953 83.652 87.1473 83.612 86.8513 83.612C86.7313 83.612 86.6073 83.62 86.4793 83.636C86.3513 83.652 86.2273 83.672 86.1073 83.696C85.9953 83.712 85.8913 83.732 85.7953 83.756C85.7073 83.78 85.6433 83.8 85.6033 83.816V89H84.4873ZM93.4548 88.196C93.7188 88.196 93.9508 88.192 94.1508 88.184C94.3588 88.168 94.5308 88.144 94.6668 88.112V86.252C94.5868 86.212 94.4548 86.18 94.2708 86.156C94.0948 86.124 93.8788 86.108 93.6228 86.108C93.4548 86.108 93.2748 86.12 93.0828 86.144C92.8988 86.168 92.7268 86.22 92.5668 86.3C92.4148 86.372 92.2868 86.476 92.1828 86.612C92.0788 86.74 92.0268 86.912 92.0268 87.128C92.0268 87.528 92.1548 87.808 92.4108 87.968C92.6668 88.12 93.0148 88.196 93.4548 88.196ZM93.3588 82.604C93.8068 82.604 94.1828 82.664 94.4868 82.784C94.7988 82.896 95.0468 83.06 95.2308 83.276C95.4228 83.484 95.5588 83.736 95.6388 84.032C95.7188 84.32 95.7588 84.64 95.7588 84.992V88.892C95.6628 88.908 95.5268 88.932 95.3508 88.964C95.1828 88.988 94.9908 89.012 94.7748 89.036C94.5588 89.06 94.3228 89.08 94.0668 89.096C93.8188 89.12 93.5708 89.132 93.3228 89.132C92.9708 89.132 92.6468 89.096 92.3508 89.024C92.0548 88.952 91.7988 88.84 91.5828 88.688C91.3668 88.528 91.1988 88.32 91.0788 88.064C90.9588 87.808 90.8988 87.5 90.8988 87.14C90.8988 86.796 90.9668 86.5 91.1028 86.252C91.2468 86.004 91.4388 85.804 91.6788 85.652C91.9188 85.5 92.1988 85.388 92.5188 85.316C92.8388 85.244 93.1748 85.208 93.5268 85.208C93.6388 85.208 93.7548 85.216 93.8748 85.232C93.9948 85.24 94.1068 85.256 94.2108 85.28C94.3228 85.296 94.4188 85.312 94.4988 85.328C94.5788 85.344 94.6348 85.356 94.6668 85.364V85.052C94.6668 84.868 94.6468 84.688 94.6068 84.512C94.5668 84.328 94.4948 84.168 94.3908 84.032C94.2868 83.888 94.1428 83.776 93.9588 83.696C93.7828 83.608 93.5508 83.564 93.2628 83.564C92.8948 83.564 92.5708 83.592 92.2908 83.648C92.0188 83.696 91.8148 83.748 91.6788 83.804L91.5468 82.88C91.6908 82.816 91.9308 82.756 92.2668 82.7C92.6028 82.636 92.9668 82.604 93.3588 82.604ZM99.9163 82.628C100.012 82.628 100.12 82.636 100.24 82.652C100.368 82.66 100.492 82.676 100.612 82.7C100.732 82.716 100.84 82.736 100.936 82.76C101.04 82.776 101.116 82.792 101.164 82.808L100.972 83.78C100.884 83.748 100.736 83.712 100.528 83.672C100.328 83.624 100.068 83.6 99.7483 83.6C99.5403 83.6 99.3323 83.624 99.1243 83.672C98.9243 83.712 98.7923 83.74 98.7283 83.756V89H97.6123V83.024C97.8763 82.928 98.2043 82.84 98.5963 82.76C98.9883 82.672 99.4283 82.628 99.9163 82.628ZM103.285 82.76H105.649V83.696H103.285V86.576C103.285 86.888 103.309 87.148 103.357 87.356C103.405 87.556 103.477 87.716 103.573 87.836C103.669 87.948 103.789 88.028 103.933 88.076C104.077 88.124 104.245 88.148 104.437 88.148C104.773 88.148 105.041 88.112 105.241 88.04C105.449 87.96 105.593 87.904 105.673 87.872L105.889 88.796C105.777 88.852 105.581 88.92 105.301 89C105.021 89.088 104.701 89.132 104.341 89.132C103.917 89.132 103.565 89.08 103.285 88.976C103.013 88.864 102.793 88.7 102.625 88.484C102.457 88.268 102.337 88.004 102.265 87.692C102.201 87.372 102.169 87.004 102.169 86.588V81.02L103.285 80.828V82.76Z" fill="black"/>
+<g filter="url(#filter0_dddd_333_1120)">
+<rect x="53" y="8" width="64" height="64" rx="6" fill="white"/>
+<path d="M58 22.3333C58 19.3878 60.3878 17 63.3333 17H106C108.946 17 111.333 19.3878 111.333 22.3333V57C111.333 59.9455 108.946 62.3333 106 62.3333H63.3333C60.3878 62.3333 58 59.9455 58 57V22.3333Z" fill="#E8E8E8"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M56 22.3333C56 18.2832 59.2832 15 63.3333 15H106C110.05 15 113.333 18.2832 113.333 22.3333V57C113.333 61.0501 110.05 64.3333 106 64.3333H63.3333C59.2832 64.3333 56 61.0501 56 57V22.3333ZM63.3333 19C61.4924 19 60 20.4924 60 22.3333V57C60 58.8409 61.4924 60.3333 63.3333 60.3333H106C107.841 60.3333 109.333 58.8409 109.333 57V22.3333C109.333 20.4924 107.841 19 106 19H63.3333Z" fill="#B480DE"/>
+<path d="M102.926 38.8236V32.2738C102.926 32.0326 102.729 31.8359 102.488 31.8359H81.9256C81.6844 31.8359 81.4877 31.6393 81.4877 31.398V26.1174C81.4877 25.8762 81.291 25.6795 81.0498 25.6795H76.6449C76.4037 25.6795 76.207 25.4828 76.207 25.2416V23.3676C76.207 23.1264 76.0104 22.9297 75.7691 22.9297H65.5121C65.2709 22.9334 65.0742 23.1264 65.0742 23.3676V29.9174C65.0742 30.1586 65.2709 30.3553 65.5121 30.3553H75.7729C76.0141 30.3553 76.2107 30.1586 76.2107 29.9174V28.0434C76.2107 27.8021 76.4074 27.6055 76.6486 27.6055H79.1238C79.365 27.6055 79.5617 27.8021 79.5617 28.0434V31.398C79.5617 31.6393 79.365 31.8359 79.1238 31.8359H76.6486C76.4074 31.8359 76.2107 32.0326 76.2107 32.2738V38.8236C76.2107 39.0648 76.4074 39.2615 76.6486 39.2615H79.1238C79.365 39.2615 79.5617 39.4582 79.5617 39.6994V40.308C79.5617 40.5492 79.365 40.7459 79.1238 40.7459H76.6486C76.4074 40.7459 76.2107 40.9426 76.2107 41.1838V47.7336C76.2107 47.9748 76.4074 48.1715 76.6486 48.1715H86.9094C87.1506 48.1715 87.3473 47.9748 87.3473 47.7336V45.8596C87.3473 45.6184 87.5439 45.4217 87.7852 45.4217H90.2604C90.5016 45.4217 90.6982 45.6184 90.6982 45.8596V49.2143C90.6982 49.4555 90.5016 49.6521 90.2604 49.6521H87.7852C87.5439 49.6521 87.3473 49.8488 87.3473 50.09V56.6398C87.3473 56.8811 87.5439 57.0777 87.7852 57.0777H101.757C101.998 57.0777 102.195 56.8811 102.195 56.6398V50.0826C102.195 49.8414 101.998 49.6447 101.757 49.6447H93.0584C92.8172 49.6447 92.6205 49.448 92.6205 49.2068V43.9262C92.6205 43.685 92.4238 43.4883 92.1826 43.4883H87.7777C87.5365 43.4883 87.3398 43.2916 87.3398 43.0504V41.1764C87.3398 40.9352 87.1432 40.7385 86.902 40.7385H81.9256C81.6844 40.7385 81.4877 40.5418 81.4877 40.3006V39.692C81.4877 39.4508 81.6844 39.2541 81.9256 39.2541H102.492C102.729 39.2578 102.926 39.0648 102.926 38.8236ZM99.8902 55.2111H89.6332C89.392 55.2111 89.1953 55.0144 89.1953 54.7732V51.9344C89.1953 51.6932 89.392 51.4965 89.6332 51.4965H99.8939C100.135 51.4965 100.332 51.6932 100.332 51.9344V54.7732C100.328 55.0182 100.131 55.2111 99.8902 55.2111ZM78.5004 33.6914H100.636C100.877 33.6914 101.074 33.8881 101.074 34.1293V36.9682C101.074 37.2094 100.877 37.4061 100.636 37.4061H78.5004C78.2592 37.4061 78.0625 37.2094 78.0625 36.9682V34.1293C78.0625 33.8881 78.2592 33.6914 78.5004 33.6914Z" fill="#B480DE"/>
+</g>
+</g>
+<defs>
+<filter id="filter0_dddd_333_1120" x="17" y="5" width="104" height="107" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dx="-1" dy="2"/>
+<feGaussianBlur stdDeviation="2.5"/>
+<feColorMatrix type="matrix" values="0 0 0 0 0.388235 0 0 0 0 0.388235 0 0 0 0 0.388235 0 0 0 0.1 0"/>
+<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_333_1120"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dx="-6" dy="7"/>
+<feGaussianBlur stdDeviation="4.5"/>
+<feColorMatrix type="matrix" values="0 0 0 0 0.388235 0 0 0 0 0.388235 0 0 0 0 0.388235 0 0 0 0.09 0"/>
+<feBlend mode="normal" in2="effect1_dropShadow_333_1120" result="effect2_dropShadow_333_1120"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dx="-12" dy="15"/>
+<feGaussianBlur stdDeviation="6"/>
+<feColorMatrix type="matrix" values="0 0 0 0 0.388235 0 0 0 0 0.388235 0 0 0 0 0.388235 0 0 0 0.05 0"/>
+<feBlend mode="normal" in2="effect2_dropShadow_333_1120" result="effect3_dropShadow_333_1120"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dx="-22" dy="26"/>
+<feGaussianBlur stdDeviation="7"/>
+<feColorMatrix type="matrix" values="0 0 0 0 0.388235 0 0 0 0 0.388235 0 0 0 0 0.388235 0 0 0 0.01 0"/>
+<feBlend mode="normal" in2="effect3_dropShadow_333_1120" result="effect4_dropShadow_333_1120"/>
+<feBlend mode="normal" in="SourceGraphic" in2="effect4_dropShadow_333_1120" result="shape"/>
+</filter>
+<radialGradient id="paint0_radial_333_1120" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(35 32.5) rotate(28.1162) scale(115.647 113.674)">
+<stop stop-color="white"/>
+<stop offset="1" stop-color="#F7ECFF"/>
+</radialGradient>
+<clipPath id="clip0_333_1120">
+<rect width="169" height="96" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/client/packages/lowcoder-design/src/icons/v2/gantt-chart-m.svg b/client/packages/lowcoder-design/src/icons/v2/gantt-chart-m.svg
new file mode 100644
index 0000000000..4d96c83938
--- /dev/null
+++ b/client/packages/lowcoder-design/src/icons/v2/gantt-chart-m.svg
@@ -0,0 +1,5 @@
+<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M4 11C4 8.79086 5.79086 7 8 7H40C42.2091 7 44 8.79086 44 11V37C44 39.2091 42.2091 41 40 41H8C5.79086 41 4 39.2091 4 37V11Z" fill="#E8E8E8"/>
+<path d="M36.9453 22.1332V17.307C36.9453 17.1293 36.8004 16.9844 36.6227 16.9844H21.4715C21.2937 16.9844 21.1488 16.8395 21.1488 16.6617V12.7707C21.1488 12.593 21.0039 12.448 20.8262 12.448H17.5805C17.4027 12.448 17.2578 12.3031 17.2578 12.1254V10.7445C17.2578 10.5668 17.1129 10.4219 16.9352 10.4219H9.37734C9.19961 10.4246 9.05469 10.5668 9.05469 10.7445V15.5707C9.05469 15.7484 9.19961 15.8934 9.37734 15.8934H16.9379C17.1156 15.8934 17.2605 15.7484 17.2605 15.5707V14.1898C17.2605 14.0121 17.4055 13.8672 17.5832 13.8672H19.407C19.5848 13.8672 19.7297 14.0121 19.7297 14.1898V16.6617C19.7297 16.8395 19.5848 16.9844 19.407 16.9844H17.5832C17.4055 16.9844 17.2605 17.1293 17.2605 17.307V22.1332C17.2605 22.3109 17.4055 22.4559 17.5832 22.4559H19.407C19.5848 22.4559 19.7297 22.6008 19.7297 22.7785V23.227C19.7297 23.4047 19.5848 23.5496 19.407 23.5496H17.5832C17.4055 23.5496 17.2605 23.6945 17.2605 23.8723V28.6984C17.2605 28.8762 17.4055 29.0211 17.5832 29.0211H25.1438C25.3215 29.0211 25.4664 28.8762 25.4664 28.6984V27.3176C25.4664 27.1398 25.6113 26.9949 25.7891 26.9949H27.6129C27.7906 26.9949 27.9355 27.1398 27.9355 27.3176V29.7895C27.9355 29.9672 27.7906 30.1121 27.6129 30.1121H25.7891C25.6113 30.1121 25.4664 30.257 25.4664 30.4348V35.2609C25.4664 35.4387 25.6113 35.5836 25.7891 35.5836H36.084C36.2617 35.5836 36.4066 35.4387 36.4066 35.2609V30.4293C36.4066 30.2516 36.2617 30.1066 36.084 30.1066H29.6746C29.4969 30.1066 29.352 29.9617 29.352 29.784V25.893C29.352 25.7152 29.207 25.5703 29.0293 25.5703H25.7836C25.6059 25.5703 25.4609 25.4254 25.4609 25.2477V23.8668C25.4609 23.6891 25.316 23.5441 25.1383 23.5441H21.4715C21.2937 23.5441 21.1488 23.3992 21.1488 23.2215V22.773C21.1488 22.5953 21.2937 22.4504 21.4715 22.4504H36.6254C36.8004 22.4531 36.9453 22.3109 36.9453 22.1332ZM34.7086 34.2082H27.1508C26.973 34.2082 26.8281 34.0633 26.8281 33.8855V31.7937C26.8281 31.616 26.973 31.4711 27.1508 31.4711H34.7113C34.8891 31.4711 35.034 31.616 35.034 31.7937V33.8855C35.0312 34.066 34.8863 34.2082 34.7086 34.2082ZM18.9477 18.3516H35.2582C35.4359 18.3516 35.5809 18.4965 35.5809 18.6742V20.766C35.5809 20.9437 35.4359 21.0887 35.2582 21.0887H18.9477C18.7699 21.0887 18.625 20.9437 18.625 20.766V18.6742C18.625 18.4965 18.7699 18.3516 18.9477 18.3516Z" fill="#B480DE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M2 10.5C2 7.46243 4.46243 5 7.5 5H39.5C42.5376 5 45 7.46243 45 10.5V36.5C45 39.5376 42.5376 42 39.5 42H7.5C4.46244 42 2 39.5376 2 36.5V10.5ZM7.5 8C6.11929 8 5 9.11929 5 10.5V36.5C5 37.8807 6.11929 39 7.5 39H39.5C40.8807 39 42 37.8807 42 36.5V10.5C42 9.11929 40.8807 8 39.5 8H7.5Z" fill="#B480DE"/>
+</svg>
diff --git a/client/packages/lowcoder-design/src/icons/v2/gantt-chart-s.svg b/client/packages/lowcoder-design/src/icons/v2/gantt-chart-s.svg
new file mode 100644
index 0000000000..68e130d1a1
--- /dev/null
+++ b/client/packages/lowcoder-design/src/icons/v2/gantt-chart-s.svg
@@ -0,0 +1,4 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect x="2" y="4" width="20" height="17" rx="2" stroke="black" stroke-width="1.5"/>
+<path d="M19 12.0507V9.55727C19 9.46544 18.9273 9.39057 18.838 9.39057H11.2327C11.1435 9.39057 11.0708 9.31569 11.0708 9.22386V7.21354C11.0708 7.12171 10.998 7.04684 10.9088 7.04684H9.27961C9.19039 7.04684 9.11765 6.97196 9.11765 6.88013V6.1667C9.11765 6.07488 9.0449 6 8.95569 6H5.16196C5.07275 6.00141 5 6.07488 5 6.1667V8.66018C5 8.75201 5.07275 8.82689 5.16196 8.82689H8.95706C9.04627 8.82689 9.11902 8.75201 9.11902 8.66018V7.94675C9.11902 7.85492 9.19176 7.78005 9.28098 7.78005H10.1965C10.2857 7.78005 10.3584 7.85492 10.3584 7.94675V9.22386C10.3584 9.31569 10.2857 9.39057 10.1965 9.39057H9.28098C9.19176 9.39057 9.11902 9.46544 9.11902 9.55727V12.0507C9.11902 12.1426 9.19176 12.2175 9.28098 12.2175H10.1965C10.2857 12.2175 10.3584 12.2923 10.3584 12.3842V12.6158C10.3584 12.7077 10.2857 12.7825 10.1965 12.7825H9.28098C9.19176 12.7825 9.11902 12.8574 9.11902 12.9493V15.4427C9.11902 15.5346 9.19176 15.6094 9.28098 15.6094H13.0761C13.1653 15.6094 13.238 15.5346 13.238 15.4427V14.7293C13.238 14.6375 13.3108 14.5626 13.4 14.5626H14.3155C14.4047 14.5626 14.4775 14.6375 14.4775 14.7293V16.0064C14.4775 16.0982 14.4047 16.1731 14.3155 16.1731H13.4C13.3108 16.1731 13.238 16.248 13.238 16.3398V18.8333C13.238 18.9251 13.3108 19 13.4 19H18.5676C18.6569 19 18.7296 18.9251 18.7296 18.8333V16.337C18.7296 16.2452 18.6569 16.1703 18.5676 16.1703H15.3504C15.2612 16.1703 15.1884 16.0954 15.1884 16.0036V13.9933C15.1884 13.9014 15.1157 13.8266 15.0265 13.8266H13.3973C13.308 13.8266 13.2353 13.7517 13.2353 13.6599V12.9464C13.2353 12.8546 13.1625 12.7797 13.0733 12.7797H11.2327C11.1435 12.7797 11.0708 12.7048 11.0708 12.613V12.3813C11.0708 12.2895 11.1435 12.2146 11.2327 12.2146H18.8394C18.9273 12.216 19 12.1426 19 12.0507ZM17.8773 18.2894H14.0835C13.9943 18.2894 13.9216 18.2145 13.9216 18.1227V17.0419C13.9216 16.9501 13.9943 16.8752 14.0835 16.8752H17.8786C17.9678 16.8752 18.0406 16.9501 18.0406 17.0419V18.1227C18.0392 18.2159 17.9665 18.2894 17.8773 18.2894ZM9.96588 10.0969H18.1531C18.2424 10.0969 18.3151 10.1718 18.3151 10.2636V11.3444C18.3151 11.4362 18.2424 11.5111 18.1531 11.5111H9.96588C9.87667 11.5111 9.80392 11.4362 9.80392 11.3444V10.2636C9.80392 10.1718 9.87667 10.0969 9.96588 10.0969Z" fill="black"/>
+</svg>
diff --git a/client/packages/lowcoder/src/comps/index.tsx b/client/packages/lowcoder/src/comps/index.tsx
index f6db970115..b4bebbc985 100644
--- a/client/packages/lowcoder/src/comps/index.tsx
+++ b/client/packages/lowcoder/src/comps/index.tsx
@@ -108,7 +108,8 @@ import {
   HillchartCompIcon,
   TurnstileCaptchaCompIcon,
   PivotTableCompIcon,
-  GraphChartCompIcon
+  GraphChartCompIcon,
+  GanttCompIcon,
 
 } from "lowcoder-design";
 
@@ -1225,6 +1226,25 @@ export var uiCompMap: Registry = {
 
   // Project Management
 
+  ganttChart: {
+    name: trans("uiComp.ganttChartCompName"),
+    enName: "ganttChart",
+    description: trans("uiComp.ganttChartCompDesc"),
+    categories: ["projectmanagement"],
+    icon: GanttCompIcon,
+    keywords: trans("uiComp.ganttChartCompKeywords"),
+    comp: remoteComp({
+      compName: "ganttchart",
+      packageName: "lowcoder-comp-gantt-chart",
+      source: "npm",
+      isRemote: true,
+    }),
+    layoutInfo: {
+      w: 20,
+      h: 60,
+    },
+  },
+
   hillchart: {
     name: trans("uiComp.hillchartCompName"),
     enName: "Hillchart",
diff --git a/client/packages/lowcoder/src/comps/uiCompRegistry.ts b/client/packages/lowcoder/src/comps/uiCompRegistry.ts
index 0eba90a195..ff5284118e 100644
--- a/client/packages/lowcoder/src/comps/uiCompRegistry.ts
+++ b/client/packages/lowcoder/src/comps/uiCompRegistry.ts
@@ -161,6 +161,7 @@ export type UICompType =
   | "themeriverChart" 
   | "basicChart"
   | "columnLayout"
+  | "ganttChart"
   ;
 
 
diff --git a/client/packages/lowcoder/src/i18n/locales/en.ts b/client/packages/lowcoder/src/i18n/locales/en.ts
index 3fb351f91a..dff76aa799 100644
--- a/client/packages/lowcoder/src/i18n/locales/en.ts
+++ b/client/packages/lowcoder/src/i18n/locales/en.ts
@@ -1222,6 +1222,10 @@ export const en = {
     "shapeCompDesc": "A collection of geometric shapes for use with diagrams, illustrations, and visualizations.",
     "shapeCompKeywords": "shapes, geometric, diagrams, illustrations",
 
+    "ganttChartCompName" : "Gantt Chart",
+    "ganttChartCompDesc" : "A chart that illustrates a project schedule, showing the start and finish dates of elements and dependencies.",
+    "ganttChartCompKeywords" : "gantt chart, project management, schedule",
+
     // by mousheng
 
     "colorPickerCompName": "Color Picker",
diff --git a/client/packages/lowcoder/src/pages/editor/editorConstants.tsx b/client/packages/lowcoder/src/pages/editor/editorConstants.tsx
index c359ff85f8..e6b9d43a6f 100644
--- a/client/packages/lowcoder/src/pages/editor/editorConstants.tsx
+++ b/client/packages/lowcoder/src/pages/editor/editorConstants.tsx
@@ -82,6 +82,7 @@ import {
   ColorPickerCompIconSmall,
   TransferCompIconSmall,
   ShapesCompIconSmall,
+  GanttCompIconSmall,
 
   CandlestickChartCompIconSmall,
   FunnelChartCompIconSmall,
@@ -182,8 +183,9 @@ export const CompStateIcon: {
   treeSelect: <TreeSelectCompIconSmall />,
   video: <VideoCompIconSmall />,
   videocomponent: <VideoCameraStreamCompIconSmall />,
-  
+
   hillchart: <HillchartCompIconSmall/>,  
+  ganttChart: <GanttCompIconSmall/>,
   openLayersGeoMap: <GeoMapLayersCompIconSmall/>,  
   chartsGeoMap: <GeoMapChartsCompIconSmall/>,  
   bpmnEditor: <BPMNEditorCompIconSmall/>, 

From c1061804a1a83d3dddaa87e1a7c51c0be0966792 Mon Sep 17 00:00:00 2001
From: MenamAfzal <meenamafzal1@gmail.com>
Date: Tue, 9 Jul 2024 04:17:25 +0500
Subject: [PATCH 05/20] applied theme hook for styling

---
 .../lowcoder/src/comps/comps/dividerComp.tsx  | 30 +++++++++----------
 .../lowcoder/src/constants/themeConstants.ts  |  6 ++++
 2 files changed, 20 insertions(+), 16 deletions(-)

diff --git a/client/packages/lowcoder/src/comps/comps/dividerComp.tsx b/client/packages/lowcoder/src/comps/comps/dividerComp.tsx
index a01cf9ec45..efce744290 100644
--- a/client/packages/lowcoder/src/comps/comps/dividerComp.tsx
+++ b/client/packages/lowcoder/src/comps/comps/dividerComp.tsx
@@ -17,10 +17,10 @@ import { AutoHeightControl } from "comps/controls/autoHeightControl";
 
 import { useContext } from "react";
 import { EditorContext } from "comps/editorState";
+import { useMergeCompStyles } from "@lowcoder-ee/index.sdk";
 
 type IProps = DividerProps & {
   $style: DividerStyleType;
-  dashed: boolean;
   $animationStyle:AnimationStyleType;
 };
 
@@ -56,7 +56,6 @@ const StyledDivider = styled(Divider)<IProps>`
   .ant-divider-inner-text::before,
   .ant-divider-inner-text::after {
     border-block-start: ${(props) => props.$style.borderWidth && props.$style.borderWidth !== "0px" ? props.$style.borderWidth : "1px"} 
-                      ${(props) => props.dashed ? "dashed" : "solid"} 
                       ${(props) => props.$style.border} !important;
     border-block-start-color: inherit;
     border-block-end: 0;
@@ -81,11 +80,10 @@ const StyledDivider = styled(Divider)<IProps>`
 
 const childrenMap = {
   title: StringControl,
-  dashed: BoolControl,
   align: alignControl(),
   autoHeight: withDefault(AutoHeightControl, "fixed"),
-  style: styleControl(DividerStyle),
-  animationStyle: styleControl(AnimationStyle),
+  style: styleControl(DividerStyle , 'style'),
+  animationStyle: styleControl(AnimationStyle , 'animationStyle'),
 };
 
 function fixOldStyleData(oldData: any) {
@@ -104,12 +102,13 @@ function fixOldStyleData(oldData: any) {
 
 
 // Compatible with historical style data 2022-8-26
-const DividerTempComp = migrateOldData(
-  new UICompBuilder(childrenMap, (props) => {
+export const DividerComp = migrateOldData(
+  new UICompBuilder(childrenMap, (props , dispatch) => {
+    useMergeCompStyles(props as Record<string, any>, dispatch);    
+
     return (
       <StyledDivider
         orientation={props.align}
-        dashed={props.dashed}
         $style={props.style}
         $animationStyle={props.animationStyle}
       >
@@ -138,10 +137,9 @@ const DividerTempComp = migrateOldData(
                     label: trans("divider.align"),
                     radioButton: true,
                   })}
-                {children.autoHeight.getPropertyView()}
+                {/* {children.autoHeight.getPropertyView()} */}
               </Section>
               <Section name={sectionNames.style}>
-                {children.dashed.propertyView({ label: trans("divider.dashed") })}
                 {children.style.getPropertyView()}
               </Section>
               <Section name={sectionNames.animationStyle}hasTooltip={true}>
@@ -153,7 +151,6 @@ const DividerTempComp = migrateOldData(
       );
     })
     .setExposeStateConfigs([
-      new NameConfig("dashed", trans("divider.dashedDesc")),
       new NameConfig("title", trans("divider.titleDesc")),
       new NameConfig("align", trans("divider.alignDesc")),
       NameConfigHidden,
@@ -162,8 +159,9 @@ const DividerTempComp = migrateOldData(
   fixOldStyleData
 );
 
-export const DividerComp = class extends DividerTempComp {
-  override autoHeight(): boolean {
-    return this.children.autoHeight.getView();
-  }
-};
\ No newline at end of file
+// export const DividerComp 
+// = class extends DividerTempComp {
+//   override autoHeight(): boolean {
+//     return this.children.autoHeight.getView();
+//   }
+// };
\ No newline at end of file
diff --git a/client/packages/lowcoder/src/constants/themeConstants.ts b/client/packages/lowcoder/src/constants/themeConstants.ts
index 45fd7a01ea..5f3f5c6b65 100644
--- a/client/packages/lowcoder/src/constants/themeConstants.ts
+++ b/client/packages/lowcoder/src/constants/themeConstants.ts
@@ -95,6 +95,11 @@ const qrCode  = {
   }
 };
 
+const divider  = {
+  style: {
+    radius: "0px"
+  }
+};
 
 export const defaultTheme: ThemeDetail = {
   primary: "#3377FF",
@@ -130,6 +135,7 @@ export const defaultTheme: ThemeDetail = {
     qrCode,
     treeSelect,
     pageLayout,
+    divider,
     password: input,
     numberInput: input,
     textArea: input,

From e26a9f330717441f2cef2b647f3f13998e5b5d09 Mon Sep 17 00:00:00 2001
From: MenamAfzal <meenamafzal1@gmail.com>
Date: Tue, 9 Jul 2024 07:21:49 +0500
Subject: [PATCH 06/20] applied vertical type

---
 .../lowcoder/src/comps/comps/dividerComp.tsx  | 48 +++++++++++--------
 .../packages/lowcoder/src/i18n/locales/en.ts  |  1 +
 2 files changed, 30 insertions(+), 19 deletions(-)

diff --git a/client/packages/lowcoder/src/comps/comps/dividerComp.tsx b/client/packages/lowcoder/src/comps/comps/dividerComp.tsx
index efce744290..a97c76bedf 100644
--- a/client/packages/lowcoder/src/comps/comps/dividerComp.tsx
+++ b/client/packages/lowcoder/src/comps/comps/dividerComp.tsx
@@ -22,14 +22,13 @@ import { useMergeCompStyles } from "@lowcoder-ee/index.sdk";
 type IProps = DividerProps & {
   $style: DividerStyleType;
   $animationStyle:AnimationStyleType;
+  type?: 'vertical' | 'horizontal';
 };
 
-// TODO: enable type "vertical" https://ant.design/components/divider
-
 const StyledDivider = styled(Divider)<IProps>`
+ 
   margin-top: 3.5px;
-  rotate: ${(props) => props.$style.rotation};
-  
+  rotate: ${(props) => props.type === 'vertical' ? '0deg' : props.$style.rotation};
   .ant-divider-inner-text {
     height: 32px;
     display: flex;
@@ -76,14 +75,22 @@ const StyledDivider = styled(Divider)<IProps>`
                ${(props) => props.$style.borderStyle} 
                ${(props) => props.$style.border};
   }
+  &.ant-divider-vertical {
+    height:  ${(props) =>  props.type === 'vertical' && '200px'}; 
+    border-left: ${(props) => props.$style.borderWidth && props.$style.borderWidth !== "0px" ? props.$style.borderWidth : "1px"} 
+                ${(props) => props.$style.borderStyle} 
+                ${(props) => props.$style.border};
+    border-top: none;
+  }
 `;
 
 const childrenMap = {
   title: StringControl,
   align: alignControl(),
-  autoHeight: withDefault(AutoHeightControl, "fixed"),
+  type: BoolControl,
+  autoHeight: withDefault(AutoHeightControl, "auto"),
   style: styleControl(DividerStyle , 'style'),
-  animationStyle: styleControl(AnimationStyle , 'animationStyle'),
+  animationStyle: styleControl(AnimationStyle ,'animationStyle'),
 };
 
 function fixOldStyleData(oldData: any) {
@@ -102,27 +109,30 @@ function fixOldStyleData(oldData: any) {
 
 
 // Compatible with historical style data 2022-8-26
-export const DividerComp = migrateOldData(
+const DividerTempComp = migrateOldData(
   new UICompBuilder(childrenMap, (props , dispatch) => {
     useMergeCompStyles(props as Record<string, any>, dispatch);    
+    const dividerType = props.type ? 'vertical' : 'horizontal'; 
 
     return (
       <StyledDivider
         orientation={props.align}
+        type={dividerType}
         $style={props.style}
         $animationStyle={props.animationStyle}
       >
-        {props.title}
+      {dividerType === 'horizontal' && props.title} 
       </StyledDivider>
     );
   })
     .setPropertyViewFn((children) => {
       return (
         <>
-          <Section name={sectionNames.basic}>
-            {children.title.propertyView({ label: trans("divider.title") })}
-          </Section>
-
+        {!children?.type?.getView() && 
+         <Section name={sectionNames.basic}>
+         {children.title.propertyView({ label: trans("divider.title") })}
+         </Section>}
+        
           {["logic", "both"].includes(useContext(EditorContext).editorModeStatus) && (
             <Section name={sectionNames.interaction}>
               {hiddenPropertyView(children)}
@@ -137,9 +147,10 @@ export const DividerComp = migrateOldData(
                     label: trans("divider.align"),
                     radioButton: true,
                   })}
-                {/* {children.autoHeight.getPropertyView()} */}
+                {children.autoHeight.getPropertyView()}
               </Section>
               <Section name={sectionNames.style}>
+                {children.type.propertyView({ label: trans("divider.type")})}
                 {children.style.getPropertyView()}
               </Section>
               <Section name={sectionNames.animationStyle}hasTooltip={true}>
@@ -159,9 +170,8 @@ export const DividerComp = migrateOldData(
   fixOldStyleData
 );
 
-// export const DividerComp 
-// = class extends DividerTempComp {
-//   override autoHeight(): boolean {
-//     return this.children.autoHeight.getView();
-//   }
-// };
\ No newline at end of file
+export const DividerComp = class extends DividerTempComp {
+  override autoHeight(): boolean {
+    return this.children.autoHeight.getView();
+  }
+};
diff --git a/client/packages/lowcoder/src/i18n/locales/en.ts b/client/packages/lowcoder/src/i18n/locales/en.ts
index 3fb351f91a..a404174866 100644
--- a/client/packages/lowcoder/src/i18n/locales/en.ts
+++ b/client/packages/lowcoder/src/i18n/locales/en.ts
@@ -2002,6 +2002,7 @@ export const en = {
     "title": "Title",
     "align": "Alignment",
     "dashed": "Dashed",
+    "type": "Type",
     "dashedDesc": "Whether to Use Dashed Line",
     "titleDesc": "Divider Title",
     "alignDesc": "Divider Title Alignment"

From eb7515cf9b73dcda5ecb0a05b56552b284f3face Mon Sep 17 00:00:00 2001
From: MenamAfzal <meenamafzal1@gmail.com>
Date: Tue, 9 Jul 2024 07:37:09 +0500
Subject: [PATCH 07/20] type text changed

---
 client/packages/lowcoder/src/i18n/locales/en.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/client/packages/lowcoder/src/i18n/locales/en.ts b/client/packages/lowcoder/src/i18n/locales/en.ts
index b855382d85..15bed48972 100644
--- a/client/packages/lowcoder/src/i18n/locales/en.ts
+++ b/client/packages/lowcoder/src/i18n/locales/en.ts
@@ -2006,7 +2006,7 @@ export const en = {
     "title": "Title",
     "align": "Alignment",
     "dashed": "Dashed",
-    "type": "Type",
+    "type": "Vertical type",
     "dashedDesc": "Whether to Use Dashed Line",
     "titleDesc": "Divider Title",
     "alignDesc": "Divider Title Alignment"

From 162facc6f87a8139d58bca2d60235c43589024c3 Mon Sep 17 00:00:00 2001
From: RAHEEL <mraheeliftikhar1994@gmail.com>
Date: Tue, 9 Jul 2024 23:06:00 +0500
Subject: [PATCH 08/20] fix mobile nav layout app view + fix styles of
 pc/mobile nav

---
 .../comps/comps/layout/mobileTabLayout.tsx    | 34 ++++++++++++++-----
 .../src/comps/comps/layout/navLayout.tsx      | 13 ++++---
 .../src/comps/controls/styleControl.tsx       |  2 +-
 client/packages/lowcoder/src/util/hooks.ts    |  2 +-
 4 files changed, 35 insertions(+), 16 deletions(-)

diff --git a/client/packages/lowcoder/src/comps/comps/layout/mobileTabLayout.tsx b/client/packages/lowcoder/src/comps/comps/layout/mobileTabLayout.tsx
index e76ef8c0bf..c159e39ad0 100644
--- a/client/packages/lowcoder/src/comps/comps/layout/mobileTabLayout.tsx
+++ b/client/packages/lowcoder/src/comps/comps/layout/mobileTabLayout.tsx
@@ -33,6 +33,8 @@ import { AlignRight } from "lowcoder-design";
 import { LayoutActionComp } from "./layoutActionComp";
 import { defaultTheme } from "@lowcoder-ee/constants/themeConstants";
 import { clickEvent, eventHandlerControl } from "@lowcoder-ee/comps/controls/eventHandlerControl";
+import { useMergeCompStyles } from "@lowcoder-ee/util/hooks";
+import { childrenToProps } from "@lowcoder-ee/comps/generators/multi";
 
 const TabBar = React.lazy(() => import("antd-mobile/es/components/tab-bar"));
 const TabBarItem = React.lazy(() =>
@@ -228,9 +230,10 @@ function TabBarView(props: TabBarProps & {
       >
         <StyledTabBar
           onChange={(key: string) => {
+            console.log(key)
             if (key) {
-              props.onEvent('click')
               props.onChange(key);
+              props.onEvent('click')
             }
           }}
           activeKey={props.selectedKey}
@@ -289,7 +292,7 @@ let MobileTabLayoutTmp = (function () {
   const childrenMap = {
     onEvent: eventHandlerControl(EventOptions),
     dataOptionType: dropdownControl(DataOptionType, DataOption.Manual),
-     jsonItems: jsonControl<JsonItemNode[]>(convertTreeData, mobileNavJsonMenuItems),
+    jsonItems: jsonControl<JsonItemNode[]>(convertTreeData, mobileNavJsonMenuItems),
     tabs: manualOptionsControl(TabOptionComp, {
       initOptions: [
         {
@@ -315,12 +318,12 @@ let MobileTabLayoutTmp = (function () {
     maxWidth: withDefault(NumberControl, 450),
     verticalAlignment: dropdownControl(VerticalAlignmentOptions, "stretch"),
     showSeparator: withDefault(BoolCodeControl, true),
-    navStyle: withDefault(styleControl(NavLayoutStyle), defaultStyle),
-    navItemStyle: withDefault(styleControl(NavLayoutItemStyle), defaultStyle),
-    navItemHoverStyle: withDefault(styleControl(NavLayoutItemHoverStyle), {}),
-    navItemActiveStyle: withDefault(styleControl(NavLayoutItemActiveStyle), {}),
+    navStyle: styleControl(NavLayoutStyle, 'navStyle'),
+    navItemStyle: styleControl(NavLayoutItemStyle, 'navItemStyle'),
+    navItemHoverStyle: styleControl(NavLayoutItemHoverStyle, 'navItemHoverStyle'),
+    navItemActiveStyle: styleControl(NavLayoutItemActiveStyle, 'navItemActiveStyle'),
   };
-  return new MultiCompBuilder(childrenMap, (props) => {
+  return new MultiCompBuilder(childrenMap, (props, dispatch) => {
     return null;
   })
     .setPropertyViewFn((children) => {
@@ -402,6 +405,8 @@ MobileTabLayoutTmp = withViewFn(MobileTabLayoutTmp, (comp) => {
   const bgColor = (useContext(ThemeContext)?.theme || defaultTheme).canvas;
   const onEvent = comp.children.onEvent.getView();
 
+  useMergeCompStyles(childrenToProps(comp.children), comp.dispatch);
+
   useEffect(() => {
     comp.children.jsonTabs.dispatchChangeValueAction({
       manual: jsonItems as unknown as Array<ConstructorToDataType<typeof TabOptionComp>>
@@ -427,9 +432,20 @@ MobileTabLayoutTmp = withViewFn(MobileTabLayoutTmp, (comp) => {
   const appView = useMemo(() => {
     const currentTab = tabViews[tabIndex];
 
+    if (dataOptionType === DataOption.Json) {
+      return (currentTab &&
+        currentTab.children.app.getAppId() &&
+        currentTab.children.app.getView()) || (
+        <EmptyContent
+          text={readOnly ? "" : trans("aggregation.emptyTabTooltip")}
+          style={{ height: "100%", backgroundColor: "white" }}
+        />
+      );
+    }
+
     return (currentTab &&
-      currentTab.children.app.getAppId() &&
-      currentTab.children.app.getView()) || (
+      // currentTab.children.app.getAppId() &&
+      currentTab.children.action.getView()) || (
       <EmptyContent
         text={readOnly ? "" : trans("aggregation.emptyTabTooltip")}
         style={{ height: "100%", backgroundColor: "white" }}
diff --git a/client/packages/lowcoder/src/comps/comps/layout/navLayout.tsx b/client/packages/lowcoder/src/comps/comps/layout/navLayout.tsx
index c40870c1f6..26493046e8 100644
--- a/client/packages/lowcoder/src/comps/comps/layout/navLayout.tsx
+++ b/client/packages/lowcoder/src/comps/comps/layout/navLayout.tsx
@@ -16,7 +16,7 @@ import { trans } from "i18n";
 import { EditorContainer, EmptyContent } from "pages/common/styledComponent";
 import { useCallback, useEffect, useMemo, useState } from "react";
 import styled from "styled-components";
-import { isUserViewMode, useAppPathParam } from "util/hooks";
+import { isUserViewMode, useAppPathParam, useMergeCompStyles } from "util/hooks";
 import { BoolCodeControl, StringControl, jsonControl } from "comps/controls/codeControl";
 import { styleControl } from "comps/controls/styleControl";
 import {
@@ -41,6 +41,7 @@ import {
   menuItemStyleOptions
 } from "./navLayoutConstants";
 import { clickEvent, eventHandlerControl } from "@lowcoder-ee/comps/controls/eventHandlerControl";
+import { childrenToProps } from "@lowcoder-ee/comps/generators/multi";
 
 const { Header } = Layout;
 
@@ -198,10 +199,10 @@ let NavTmpLayout = (function () {
     backgroundImage: withDefault(StringControl, ""),
     mode: dropdownControl(ModeOptions, "inline"),
     collapse: BoolCodeControl,
-    navStyle: withDefault(styleControl(NavLayoutStyle), {...defaultStyle, padding: '1px'}),
-    navItemStyle: withDefault(styleControl(NavLayoutItemStyle), defaultStyle),
-    navItemHoverStyle: withDefault(styleControl(NavLayoutItemHoverStyle), {}),
-    navItemActiveStyle: withDefault(styleControl(NavLayoutItemActiveStyle), {}),
+    navStyle: styleControl(NavLayoutStyle, 'navStyle'),
+    navItemStyle: styleControl(NavLayoutItemStyle, 'navItemStyle'),
+    navItemHoverStyle: styleControl(NavLayoutItemHoverStyle, 'navItemHoverStyle'),
+    navItemActiveStyle: styleControl(NavLayoutItemActiveStyle, 'navItemActiveStyle'),
   };
   return new MultiCompBuilder(childrenMap, (props) => {
     return null;
@@ -290,6 +291,8 @@ NavTmpLayout = withViewFn(NavTmpLayout, (comp) => {
   const dataOptionType = comp.children.dataOptionType.getView();
   const onEvent = comp.children.onEvent.getView();
 
+  useMergeCompStyles(childrenToProps(comp.children), comp.dispatch);
+
   // filter out hidden. unauthorised items filtered by server
   const filterItem = useCallback((item: LayoutMenuItemComp): boolean => {
     return !item.children.hidden.getView();
diff --git a/client/packages/lowcoder/src/comps/controls/styleControl.tsx b/client/packages/lowcoder/src/comps/controls/styleControl.tsx
index 7a25595d30..95aac2a97e 100644
--- a/client/packages/lowcoder/src/comps/controls/styleControl.tsx
+++ b/client/packages/lowcoder/src/comps/controls/styleControl.tsx
@@ -876,7 +876,7 @@ export function styleControl<T extends readonly SingleColorConfig[]>(
             ...(theme?.theme?.components?.[compType]?.[styleKey] || {}) as unknown as Record<string, string>
           }
         : undefined;
-      const styleProps = preventStyleOverwriting || preventAppStylesOverwriting || appliedThemeId === themeId
+      const styleProps = (!comp && !compType) || preventStyleOverwriting || preventAppStylesOverwriting || appliedThemeId === themeId
         ? props as ColorMap
         : {} as ColorMap;
 
diff --git a/client/packages/lowcoder/src/util/hooks.ts b/client/packages/lowcoder/src/util/hooks.ts
index 4c92274231..4196062167 100644
--- a/client/packages/lowcoder/src/util/hooks.ts
+++ b/client/packages/lowcoder/src/util/hooks.ts
@@ -177,7 +177,7 @@ export function useMergeCompStyles(
   const compTheme = theme?.theme?.components?.[compType];
   const themeId = theme?.themeId;
 
-  const styleKeys = Object.keys(props).filter(key => key.toLowerCase().endsWith('style'));
+  const styleKeys = Object.keys(props).filter(key => key.toLowerCase().endsWith('style' || 'styles'));
   const styleProps: Record<string, any> = {};
   styleKeys.forEach((key: string) => {
     styleProps[key] = (props as any)[key];

From 33a1adfd601946b791fa81d9cd46b0b016f9c827 Mon Sep 17 00:00:00 2001
From: FalkWolsky <fw@falkwolsky.com>
Date: Tue, 9 Jul 2024 23:55:35 +0200
Subject: [PATCH 09/20] Adding Posthog Login Event

---
 client/packages/lowcoder/src/app.tsx                     | 5 +++++
 client/packages/lowcoder/src/pages/userAuth/authUtils.ts | 1 +
 2 files changed, 6 insertions(+)

diff --git a/client/packages/lowcoder/src/app.tsx b/client/packages/lowcoder/src/app.tsx
index cc0aeb95b0..7f05c94885 100644
--- a/client/packages/lowcoder/src/app.tsx
+++ b/client/packages/lowcoder/src/app.tsx
@@ -130,6 +130,11 @@ class AppIndex extends React.Component<AppIndexProps, any> {
     // make sure all users in this app have checked login info
     if (!this.props.isFetchUserFinished || (this.props.currentUserId && !this.props.fetchHomeDataFinished)) {
       const hideLoadingHeader = isTemplate || isAuthUnRequired(pathname);
+      // if the user just logged in, we send the event to posthog
+      if (sessionStorage.getItem('_just_logged_in_')) {
+        posthog.identify(this.props.currentUserId);
+        sessionStorage.removeItem('_just_logged_in_');
+      }
       return <ProductLoading hideHeader={hideLoadingHeader} />;
     }
 
diff --git a/client/packages/lowcoder/src/pages/userAuth/authUtils.ts b/client/packages/lowcoder/src/pages/userAuth/authUtils.ts
index 146e404c36..f5ae118931 100644
--- a/client/packages/lowcoder/src/pages/userAuth/authUtils.ts
+++ b/client/packages/lowcoder/src/pages/userAuth/authUtils.ts
@@ -82,6 +82,7 @@ export function authRespValidate(
 
   if (doValidResponse(resp)) {
     onAuthSuccess?.();
+    sessionStorage.setItem("_just_logged_in_", "true");
     history.replace(replaceUrl.replace(baseUrl, ''));
   } else if (
     resp.data.code === SERVER_ERROR_CODES.EXCEED_MAX_USER_ORG_COUNT ||

From ed66ed39221fad1d8e129e256c8be87d43c49f5b Mon Sep 17 00:00:00 2001
From: Thomasr <techninjas514@gmail.com>
Date: Mon, 8 Jul 2024 16:19:04 -0400
Subject: [PATCH 10/20] Add email field to user and match users by email

---
 .../service/OrganizationServiceImpl.java      |  2 +-
 .../lowcoder/domain/user/model/AuthUser.java  |  1 +
 .../org/lowcoder/domain/user/model/User.java  |  2 ++
 .../domain/user/service/UserServiceImpl.java  |  1 +
 .../util/AuthenticationUtils.java             |  2 ++
 .../runner/migrations/DatabaseChangelog.java  | 24 +++++++++++++++++++
 6 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java
index d4185379c5..8961765cbf 100644
--- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java
+++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java
@@ -98,7 +98,7 @@ public Mono<Organization> createDefault(User user, boolean isSuperAdmin) {
 
     private Mono<Boolean> joinOrganizationInEnterpriseMode(String userId) {
         return getOrganizationInEnterpriseMode()
-                .flatMap(organization -> orgMemberService.addMember(organization.getGid(), userId, MemberRole.MEMBER))
+                .flatMap(organization -> orgMemberService.addMember(organization.getId(), userId, MemberRole.MEMBER))
                 .defaultIfEmpty(false);
     }
 
diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/AuthUser.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/AuthUser.java
index c70b6a8c42..b2fb46d9d6 100644
--- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/AuthUser.java
+++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/AuthUser.java
@@ -18,6 +18,7 @@ public class AuthUser {
 
     private String uid;
     private String username;
+    private String email;
     private String avatar;
     private Map<String, Object> rawUserInfo;
     private Map<String, Object> extra;
diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/User.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/User.java
index 04762de626..71e978ad83 100644
--- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/User.java
+++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/User.java
@@ -42,6 +42,8 @@ public class User extends HasIdAndAuditing implements BeforeMongodbWrite, AfterM
 
     private String name;
 
+    private String email;
+
     private String uiLanguage;
 
     private String avatar;
diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java
index e403cb3e1c..bd448f9408 100644
--- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java
+++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java
@@ -158,6 +158,7 @@ public Mono<User> findByAuthUserRawId(AuthUser authUser) {
     public Mono<User> createNewUserByAuthUser(AuthUser authUser) {
          User.UserBuilder userBuilder = User.builder()
                 .name(authUser.getUsername())
+                .email(authUser.getEmail())
                 .state(UserState.ACTIVATED)
                 .isEnabled(true)
                 .tpAvatarLink(authUser.getAvatar());
diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java
index c0a6978a32..ce8d272747 100644
--- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java
+++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java
@@ -96,6 +96,7 @@ public static AuthUser mapToAuthUser(Map<String, Object> map, HashMap<String, St
         return AuthUser.builder()
                 .uid(uid)
                 .username(username)
+                .email(email)
                 .avatar(avatar)
                 .rawUserInfo(map)
                 .build();
@@ -111,6 +112,7 @@ public static AuthUser mergeAuthUser(AuthUser low, AuthUser high) {
         return AuthUser.builder()
                 .uid(high.getUid() != null ? high.getUid() : low.getUid())
                 .username(high.getUsername() != null ? high.getUsername() : low.getUsername())
+                .email(high.getEmail() != null ? high.getEmail() : low.getEmail())
                 .avatar(high.getAvatar() != null ? high.getAvatar() : low.getAvatar())
                 .rawUserInfo(high.getRawUserInfo() != null ? high.getRawUserInfo() : low.getRawUserInfo())
                 .authToken(high.getAuthToken() != null ? high.getAuthToken() : low.getAuthToken())
diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java
index e7b06e5e11..540691e010 100644
--- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java
+++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java
@@ -219,6 +219,30 @@ public void addGidToDBObjects(MongockTemplate mongoTemplate) {
         }
     }
 
+    @ChangeSet(order = "023", id = "add-email", author = "")
+    public void addEmailField(MongockTemplate mongoTemplate) {
+        // Create a query to match all documents
+        Query query = new Query();
+
+        // Use a DocumentCallbackHandler to iterate through each document
+        mongoTemplate.executeQuery(query, "user", new DocumentCallbackHandler() {
+            @Override
+            public void processDocument(Document document) {
+                // Generate a random UUID and ensure it is unique within the collection
+                String username = document.getString("name");
+                // Create an update object to add the 'gid' field
+                Update update = new Update();
+                update.set("email", username);
+
+                // Create a query to match the current document by its _id
+                Query idQuery = new Query(Criteria.where("_id").is(document.getObjectId("_id")));
+
+                // Update the document with the new 'gid' field
+                mongoTemplate.updateFirst(idQuery, update, "user");
+            }
+        });
+    }
+
     private void addGidField(MongockTemplate mongoTemplate, String collectionName) {
         // Create a query to match all documents
         Query query = new Query();

From 9a11d13a2bb03f9acf6eddcddd531eb929760d5f Mon Sep 17 00:00:00 2001
From: Thomasr <techninjas514@gmail.com>
Date: Mon, 8 Jul 2024 16:26:52 -0400
Subject: [PATCH 11/20] match by email

---
 .../org/lowcoder/domain/user/repository/UserRepository.java | 1 +
 .../org/lowcoder/domain/user/service/UserServiceImpl.java   | 6 +++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java
index e3dfd72f99..62b98c3040 100644
--- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java
+++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java
@@ -19,4 +19,5 @@ public interface UserRepository extends ReactiveMongoRepository<User, String> {
     Flux<User> findByConnections_SourceAndConnections_RawIdIn(String source, Collection<String> rawIds);
 
     Mono<User> findByName(String rawUuid);
+    Mono<User> findByEmail(String rawUuid);
 }
diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java
index bd448f9408..2a2a87ebbb 100644
--- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java
+++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java
@@ -112,6 +112,10 @@ public Mono<User> findByName(String rawUuid) {
         return repository.findByName(rawUuid);
     }
 
+    public Mono<User> findByEmail(String rawUuid) {
+        return repository.findByEmail(rawUuid);
+    }
+
     @Override
     public Mono<Boolean> saveProfilePhoto(Part filePart, User user) {
         String prevAvatar = ObjectUtils.defaultIfNull(user.getAvatar(), "");
@@ -151,7 +155,7 @@ public Mono<User> findByAuthUserSourceAndRawId(AuthUser authUser) {
 
     @Override
     public Mono<User> findByAuthUserRawId(AuthUser authUser) {
-        return findByName(authUser.getUsername());
+        return findByEmail(authUser.getEmail());
     }
 
     @Override

From f9aeb42969622974ba101300694cecace9ec0e19 Mon Sep 17 00:00:00 2001
From: Thomasr <techninjas514@gmail.com>
Date: Mon, 8 Jul 2024 16:41:58 -0400
Subject: [PATCH 12/20] form login adds email field.

---
 .../api/authentication/request/form/FormAuthRequest.java        | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/request/form/FormAuthRequest.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/request/form/FormAuthRequest.java
index 25ff342550..0aba244914 100644
--- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/request/form/FormAuthRequest.java
+++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/request/form/FormAuthRequest.java
@@ -55,7 +55,7 @@ public Mono<AuthUser> auth(AuthRequestContext authRequestContext) {
                                 return Mono.empty();
                             });
                 })
-                .thenReturn(AuthUser.builder().uid(context.getLoginId()).username(context.getLoginId()).build());
+                .thenReturn(AuthUser.builder().uid(context.getLoginId()).username(context.getLoginId()).email(context.getLoginId()).build());
     }
 
     @Override

From 6233a03c8159e7f4cfd4ce80318e9e0da27e2620 Mon Sep 17 00:00:00 2001
From: Thomasr <techninjas514@gmail.com>
Date: Tue, 9 Jul 2024 02:59:15 -0400
Subject: [PATCH 13/20] check connections' email deeply to match the email
 address with all possible connections

---
 .../main/java/org/lowcoder/domain/user/model/AuthUser.java  | 1 +
 .../java/org/lowcoder/domain/user/model/Connection.java     | 5 ++++-
 .../org/lowcoder/domain/user/repository/UserRepository.java | 4 +++-
 .../org/lowcoder/domain/user/service/UserServiceImpl.java   | 6 +++---
 4 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/AuthUser.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/AuthUser.java
index b2fb46d9d6..5dcb1b19e8 100644
--- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/AuthUser.java
+++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/AuthUser.java
@@ -42,6 +42,7 @@ public Connection toAuthConnection() {
                 .authId(getAuthContext().getAuthConfig().getId())
                 .source(getSource())
                 .name(getUsername())
+                .email(getEmail())
                 .rawId(getUid())
                 .avatar(getAvatar())
                 .orgIds(StringUtils.isBlank(getOrgId()) ? Set.of() : Set.of(getOrgId()))
diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/Connection.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/Connection.java
index 6ef03f8c90..a0ec48c9b9 100644
--- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/Connection.java
+++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/Connection.java
@@ -46,6 +46,8 @@ public class Connection implements Serializable {
 
     private final String name;
 
+    private final String email;
+
     private final String avatar;
 
     private Set<String> orgIds;
@@ -59,12 +61,13 @@ public class Connection implements Serializable {
     private Set<String> tokens;
 
     @JsonCreator
-    private Connection(String authId, String source, String rawId, String name, String avatar, Set<String> orgIds, @Nullable
+    private Connection(String authId, String source, String rawId, String name, String email, String avatar, Set<String> orgIds, @Nullable
     ConnectionAuthToken authConnectionAuthToken, Map<String, Object> rawUserInfo, Set<String> tokens) {
         this.authId = authId;
         this.source = source;
         this.rawId = rawId;
         this.name = name;
+        this.email = email;
         this.avatar = avatar;
         this.orgIds = CollectionUtils.isEmpty(orgIds) ? new HashSet<>() : orgIds;
         this.authConnectionAuthToken = authConnectionAuthToken;
diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java
index 62b98c3040..5a5b7faa63 100644
--- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java
+++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java
@@ -19,5 +19,7 @@ public interface UserRepository extends ReactiveMongoRepository<User, String> {
     Flux<User> findByConnections_SourceAndConnections_RawIdIn(String source, Collection<String> rawIds);
 
     Mono<User> findByName(String rawUuid);
-    Mono<User> findByEmail(String rawUuid);
+
+    //email1 and email2 should be equal
+    Mono<User> findByEmailOrConnections_Email(String email1, String email2);
 }
diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java
index 2a2a87ebbb..7a86591df4 100644
--- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java
+++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java
@@ -112,8 +112,8 @@ public Mono<User> findByName(String rawUuid) {
         return repository.findByName(rawUuid);
     }
 
-    public Mono<User> findByEmail(String rawUuid) {
-        return repository.findByEmail(rawUuid);
+    public Mono<User> findByEmailDeep(String email) {
+        return repository.findByEmailOrConnections_Email(email, email);
     }
 
     @Override
@@ -155,7 +155,7 @@ public Mono<User> findByAuthUserSourceAndRawId(AuthUser authUser) {
 
     @Override
     public Mono<User> findByAuthUserRawId(AuthUser authUser) {
-        return findByEmail(authUser.getEmail());
+        return findByEmailDeep(authUser.getEmail());
     }
 
     @Override

From 0df085dd837e2ad7044a639d8932e05dffd1248c Mon Sep 17 00:00:00 2001
From: FalkWolsky <fw@falkwolsky.com>
Date: Wed, 10 Jul 2024 00:16:17 +0200
Subject: [PATCH 14/20] Updating Version Numbers

---
 client/VERSION                              | 2 +-
 client/packages/lowcoder-comps/package.json | 2 +-
 client/packages/lowcoder-sdk/package.json   | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/client/VERSION b/client/VERSION
index acdc3f1b0b..6550da6970 100644
--- a/client/VERSION
+++ b/client/VERSION
@@ -1 +1 @@
-2.4.2
\ No newline at end of file
+2.4.3
\ No newline at end of file
diff --git a/client/packages/lowcoder-comps/package.json b/client/packages/lowcoder-comps/package.json
index 5da1fff1f6..ff70d4a418 100644
--- a/client/packages/lowcoder-comps/package.json
+++ b/client/packages/lowcoder-comps/package.json
@@ -1,6 +1,6 @@
 {
   "name": "lowcoder-comps",
-  "version": "2.4.7",
+  "version": "2.4.8",
   "type": "module",
   "license": "MIT",
   "dependencies": {
diff --git a/client/packages/lowcoder-sdk/package.json b/client/packages/lowcoder-sdk/package.json
index e776ddc21a..305ff00134 100644
--- a/client/packages/lowcoder-sdk/package.json
+++ b/client/packages/lowcoder-sdk/package.json
@@ -1,6 +1,6 @@
 {
   "name": "lowcoder-sdk",
-  "version": "2.4.5",
+  "version": "2.4.6",
   "type": "module",
   "files": [
     "src",

From 5e30fc062329585b5fc14bf647b7ebb30017c8cd Mon Sep 17 00:00:00 2001
From: Thomasr <techninjas514@gmail.com>
Date: Sat, 6 Jul 2024 05:25:06 -0400
Subject: [PATCH 15/20] null name issue fixed

---
 .../lowcoder/api/authentication/util/AuthenticationUtils.java    | 1 -
 1 file changed, 1 deletion(-)

diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java
index ce8d272747..e86dd82a01 100644
--- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java
+++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java
@@ -112,7 +112,6 @@ public static AuthUser mergeAuthUser(AuthUser low, AuthUser high) {
         return AuthUser.builder()
                 .uid(high.getUid() != null ? high.getUid() : low.getUid())
                 .username(high.getUsername() != null ? high.getUsername() : low.getUsername())
-                .email(high.getEmail() != null ? high.getEmail() : low.getEmail())
                 .avatar(high.getAvatar() != null ? high.getAvatar() : low.getAvatar())
                 .rawUserInfo(high.getRawUserInfo() != null ? high.getRawUserInfo() : low.getRawUserInfo())
                 .authToken(high.getAuthToken() != null ? high.getAuthToken() : low.getAuthToken())

From 1be217a1680f1f55227a7ed154ff08654b14d839 Mon Sep 17 00:00:00 2001
From: Thomasr <techninjas514@gmail.com>
Date: Mon, 8 Jul 2024 16:19:04 -0400
Subject: [PATCH 16/20] Add email field to user and match users by email

---
 .../lowcoder/api/authentication/util/AuthenticationUtils.java    | 1 +
 1 file changed, 1 insertion(+)

diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java
index e86dd82a01..ce8d272747 100644
--- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java
+++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java
@@ -112,6 +112,7 @@ public static AuthUser mergeAuthUser(AuthUser low, AuthUser high) {
         return AuthUser.builder()
                 .uid(high.getUid() != null ? high.getUid() : low.getUid())
                 .username(high.getUsername() != null ? high.getUsername() : low.getUsername())
+                .email(high.getEmail() != null ? high.getEmail() : low.getEmail())
                 .avatar(high.getAvatar() != null ? high.getAvatar() : low.getAvatar())
                 .rawUserInfo(high.getRawUserInfo() != null ? high.getRawUserInfo() : low.getRawUserInfo())
                 .authToken(high.getAuthToken() != null ? high.getAuthToken() : low.getAuthToken())

From db52eb871ddca6944518d2627873158f84b2c59e Mon Sep 17 00:00:00 2001
From: Thomasr <techninjas514@gmail.com>
Date: Wed, 10 Jul 2024 11:48:38 -0400
Subject: [PATCH 17/20] fix addSuperAdminUser migration issue

---
 .../org/lowcoder/domain/user/repository/UserRepository.java     | 2 +-
 .../java/org/lowcoder/domain/user/service/UserServiceImpl.java  | 2 +-
 .../lowcoder/runner/migrations/job/AddSuperAdminUserImpl.java   | 1 +
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java
index 5a5b7faa63..a966c2be74 100644
--- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java
+++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java
@@ -21,5 +21,5 @@ public interface UserRepository extends ReactiveMongoRepository<User, String> {
     Mono<User> findByName(String rawUuid);
 
     //email1 and email2 should be equal
-    Mono<User> findByEmailOrConnections_Email(String email1, String email2);
+    Flux<User> findByEmailOrConnections_Email(String email1, String email2);
 }
diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java
index 7a86591df4..58c2eaf213 100644
--- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java
+++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java
@@ -113,7 +113,7 @@ public Mono<User> findByName(String rawUuid) {
     }
 
     public Mono<User> findByEmailDeep(String email) {
-        return repository.findByEmailOrConnections_Email(email, email);
+        return repository.findByEmailOrConnections_Email(email, email).next();
     }
 
     @Override
diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/job/AddSuperAdminUserImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/job/AddSuperAdminUserImpl.java
index ceeabbf2b7..2a664d3905 100644
--- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/job/AddSuperAdminUserImpl.java
+++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/job/AddSuperAdminUserImpl.java
@@ -45,6 +45,7 @@ private AuthUser formulateAuthUser() {
         return AuthUser.builder()
                 .uid(username)
                 .username(username)
+                .email(username)
                 .authContext(authRequestContext)
                 .build();
     }

From 868af363239b91ca7989797365d3f69075e93411 Mon Sep 17 00:00:00 2001
From: FalkWolsky <fw@falkwolsky.com>
Date: Wed, 10 Jul 2024 21:36:42 +0200
Subject: [PATCH 18/20] Set preventing of overwriting of styles per app default
 true

---
 client/packages/lowcoder/src/comps/comps/appSettingsComp.tsx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/client/packages/lowcoder/src/comps/comps/appSettingsComp.tsx b/client/packages/lowcoder/src/comps/comps/appSettingsComp.tsx
index b77c619ef1..d4de3b59f6 100644
--- a/client/packages/lowcoder/src/comps/comps/appSettingsComp.tsx
+++ b/client/packages/lowcoder/src/comps/comps/appSettingsComp.tsx
@@ -186,7 +186,7 @@ const childrenMap = {
   showHeaderInPublic: withDefault(BoolControl, true),
   maxWidth: dropdownInputSimpleControl(OPTIONS, USER_DEFINE, "1920"),
   themeId: valueComp<string>(DEFAULT_THEMEID),
-  preventAppStylesOverwriting: withDefault(BoolControl, false),
+  preventAppStylesOverwriting: withDefault(BoolControl, true),
   customShortcuts: CustomShortcutsComp,
   disableCollision: valueComp<boolean>(false),
 };

From 07accad24e45834963770a2df6aa51874100959d Mon Sep 17 00:00:00 2001
From: FalkWolsky <fw@falkwolsky.com>
Date: Wed, 10 Jul 2024 21:51:03 +0200
Subject: [PATCH 19/20] Updating Product Support Identifier

---
 client/packages/lowcoder/src/app.tsx | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/client/packages/lowcoder/src/app.tsx b/client/packages/lowcoder/src/app.tsx
index 7f05c94885..8ad8f32b3e 100644
--- a/client/packages/lowcoder/src/app.tsx
+++ b/client/packages/lowcoder/src/app.tsx
@@ -130,12 +130,16 @@ class AppIndex extends React.Component<AppIndexProps, any> {
     // make sure all users in this app have checked login info
     if (!this.props.isFetchUserFinished || (this.props.currentUserId && !this.props.fetchHomeDataFinished)) {
       const hideLoadingHeader = isTemplate || isAuthUnRequired(pathname);
+      return <ProductLoading hideHeader={hideLoadingHeader} />;
+    }
+    else {
       // if the user just logged in, we send the event to posthog
-      if (sessionStorage.getItem('_just_logged_in_')) {
-        posthog.identify(this.props.currentUserId);
-        sessionStorage.removeItem('_just_logged_in_');
+      if (isLocalhost || isLowCoderDomain) {
+        if (sessionStorage.getItem('_just_logged_in_')) {
+          posthog.identify(this.props.currentUserId);
+          sessionStorage.removeItem('_just_logged_in_');
+        }
       }
-      return <ProductLoading hideHeader={hideLoadingHeader} />;
     }
 
     // persisting the language in local storage

From adfb07d64735332795ec20880894a094c1b638b1 Mon Sep 17 00:00:00 2001
From: FalkWolsky <fw@falkwolsky.com>
Date: Wed, 10 Jul 2024 22:46:52 +0200
Subject: [PATCH 20/20] Updating Frontend SDK version

---
 client/packages/lowcoder-sdk/package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/client/packages/lowcoder-sdk/package.json b/client/packages/lowcoder-sdk/package.json
index 305ff00134..f774eebd37 100644
--- a/client/packages/lowcoder-sdk/package.json
+++ b/client/packages/lowcoder-sdk/package.json
@@ -1,6 +1,6 @@
 {
   "name": "lowcoder-sdk",
-  "version": "2.4.6",
+  "version": "2.4.7",
   "type": "module",
   "files": [
     "src",
