react-toolkits 2.14.7 → 2.14.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -1,3595 +1,2 @@
1
- import axios, { AxiosHeaders, isAxiosError } from 'axios';
2
- import { jwtDecode } from 'jwt-decode';
3
- import { useStore, create, createStore } from 'zustand';
4
- import { persist, createJSONStorage } from 'zustand/middleware';
5
- import logoUrl from './logo-L6MFCL6M.png';
6
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
- import * as Antd2 from 'antd';
8
- import { Modal, Form, Spin, Result, Table, Button, Card, Input, Select, App, Switch, InputNumber, theme, Space, Tag, Typography, Alert, Divider, Menu, Popconfirm, Row, Col, Breadcrumb, Descriptions, Skeleton, Empty, Dropdown, Tooltip, Checkbox, Collapse } from 'antd';
9
- import { Routes, Route, Navigate, useNavigate, useParams, useLocation, Link } from 'react-router-dom';
10
- import useSWR6, { mutate, unstable_serialize, useSWRConfig } from 'swr';
11
- import { forwardRef, lazy, useContext, useMemo, useState, useEffect, useImperativeHandle, cloneElement, useRef, createContext, memo, useCallback, Fragment as Fragment$1, Suspense, useTransition } from 'react';
12
- import { last, has, template, get, isEqual, first } from 'lodash-es';
13
- import { flushSync } from 'react-dom';
14
- import { createRoot } from 'react-dom/client';
15
- import { PlusOutlined, UserAddOutlined, UsergroupAddOutlined, LogoutOutlined, UserOutlined, MenuUnfoldOutlined, MenuFoldOutlined, MinusCircleOutlined } from '@ant-design/icons';
16
- import useSWRMutation2 from 'swr/mutation';
17
- import { Editor } from '@monaco-editor/react';
18
- import { produce } from 'immer';
19
- import 'animate.css';
20
- import qs from 'query-string';
21
- import useSWRInfinite from 'swr/infinite';
22
- import dayjs from 'dayjs';
23
-
24
- var __defProp = Object.defineProperty;
25
- var __getOwnPropNames = Object.getOwnPropertyNames;
26
- var __esm = (fn, res) => function __init() {
27
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
28
- };
29
- var __export = (target, all) => {
30
- for (var name in all)
31
- __defProp(target, name, { get: all[name], enumerable: true });
32
- };
33
-
34
- // src/utils/index.ts
35
- var mixedStorage;
36
- var init_utils = __esm({
37
- "src/utils/index.ts"() {
38
- mixedStorage = {
39
- getItem: (name) => {
40
- return sessionStorage.getItem(name) || localStorage.getItem(name);
41
- },
42
- setItem: (name, value) => {
43
- sessionStorage.setItem(name, value);
44
- localStorage.setItem(name, value);
45
- },
46
- removeItem(name) {
47
- sessionStorage.removeItem(name);
48
- localStorage.removeItem(name);
49
- }
50
- };
51
- }
52
- });
53
- var createAxiosSlice;
54
- var init_axios = __esm({
55
- "src/stores/axios.ts"() {
56
- createAxiosSlice = () => ({
57
- axios: axios.create()
58
- });
59
- }
60
- });
61
-
62
- // src/components/locale/en_GB.ts
63
- var locale, en_GB_default;
64
- var init_en_GB = __esm({
65
- "src/components/locale/en_GB.ts"() {
66
- locale = {
67
- global: {
68
- noEntitlement: "No permission, please contact the administrator.",
69
- name: "Name",
70
- creationTime: "Creation Time",
71
- operation: "Operation",
72
- update: "Update",
73
- edit: "Edit",
74
- delete: "Delete",
75
- selectAll: "Select All",
76
- game: "Game",
77
- user: "User",
78
- role: "Role",
79
- username: "Username",
80
- password: "Password",
81
- label: "Label",
82
- method: "Method",
83
- route: "Route",
84
- request: "Request",
85
- response: "Response",
86
- add: "Add",
87
- signIn: "Sign In",
88
- projectGroup: "Project Group",
89
- view: "View"
90
- },
91
- SignIn: {
92
- title: "Sign In Method",
93
- thirdParty: "Third party sign in",
94
- signInWithIDass: "Sign in with IDass",
95
- unregistered: "You are not yet registered on the platform, please contact the administrator",
96
- welcome: "Welcome"
97
- },
98
- NotFound: {
99
- subTitle: "The page you visited does not exist",
100
- buttonText: "Return to homepage"
101
- },
102
- FilterFormWrapper: {
103
- confirmText: "Search",
104
- resetText: "Reset"
105
- },
106
- FormModal: {
107
- confirmText: "Confirm",
108
- cancelText: "Cancel"
109
- },
110
- GameSelect: {
111
- label: "Current Game",
112
- placeholder: "Please select a game"
113
- },
114
- RequireGame: {
115
- description: "Please select a game"
116
- },
117
- UserWidget: {
118
- signOutText: "Sign Out"
119
- },
120
- User: {
121
- createTitle: "Create User",
122
- createSuccessfully: "User created successfully",
123
- updateTitle: "Update User",
124
- updateSuccessfully: "User updated successfully",
125
- deleteTitle: "Delete User",
126
- deleteContent: "Are you sure you want to delete user <%= user %>?",
127
- deleteSuccessfully: "User deleted successfully"
128
- },
129
- Role: {
130
- createTitle: "Create Role",
131
- createSuccessfully: "Role created successfully",
132
- updateTitle: "Update Role",
133
- updateSuccessfully: "Role updated successfully",
134
- deleteTitle: "Delete Role",
135
- deleteContent: "Are you sure you want to delete role <%= role %>?",
136
- deleteSuccessfully: "Role deleted successfully"
137
- },
138
- PermissionList: {
139
- failedDescription: "Failed to get permission list",
140
- baseSectionTitle: "Platform Basic Permissions",
141
- gameSectionTitle: "Game Permissions",
142
- gameSectionDescription: "Please select a game first",
143
- gameSelectPlaceholder: "Please select a game first",
144
- removeText: "Remove",
145
- addText: "Add Game Permissions"
146
- },
147
- RoleDetail: {
148
- title: "Role Details"
149
- },
150
- InfiniteList: {
151
- loadingText: "Loading...",
152
- reachEndText: "You've reached the end",
153
- loadMoreText: "Load more"
154
- }
155
- };
156
- en_GB_default = locale;
157
- }
158
- });
159
-
160
- // src/constants/index.ts
161
- var SSO_URL, APP_ID_HEADER, FRONTEND_ROUTE_PREFIX, PermissionVersion, WILDCARD;
162
- var init_constants = __esm({
163
- "src/constants/index.ts"() {
164
- SSO_URL = "https://idaas.ifunplus.cn/enduser/api/application/plugin_FunPlus/sso/v1";
165
- APP_ID_HEADER = "App-ID";
166
- FRONTEND_ROUTE_PREFIX = "/console/";
167
- PermissionVersion = /* @__PURE__ */ ((PermissionVersion2) => {
168
- PermissionVersion2["V1"] = "v1";
169
- PermissionVersion2["V2"] = "v2";
170
- PermissionVersion2["V3"] = "v3";
171
- return PermissionVersion2;
172
- })(PermissionVersion || {});
173
- WILDCARD = "*";
174
- }
175
- });
176
-
177
- // src/stores/context.ts
178
- var createContextSlice;
179
- var init_context = __esm({
180
- "src/stores/context.ts"() {
181
- init_en_GB();
182
- createContextSlice = (set) => ({
183
- locale: en_GB_default,
184
- gameApiV2: false,
185
- isGlobal: false,
186
- signInPath: "/sign_in",
187
- mainPagePath: "/",
188
- title: {
189
- fontSize: 18
190
- },
191
- permissionVersion: "v1" /* V1 */,
192
- setContext(state) {
193
- set((prev) => ({ ...prev, ...state }));
194
- }
195
- });
196
- }
197
- });
198
-
199
- // src/stores/game.ts
200
- var createGameSlice;
201
- var init_game = __esm({
202
- "src/stores/game.ts"() {
203
- createGameSlice = (set) => ({
204
- setGameId: (id2) => {
205
- set({ gameId: id2 });
206
- }
207
- });
208
- }
209
- });
210
- var createTokenSlice;
211
- var init_token = __esm({
212
- "src/stores/token.ts"() {
213
- createTokenSlice = (set, get2) => ({
214
- getUser: () => {
215
- const token = get2().token;
216
- if (token) {
217
- try {
218
- return jwtDecode(token);
219
- } catch (error) {
220
- return null;
221
- }
222
- }
223
- return null;
224
- },
225
- setToken: (token) => set({ token })
226
- });
227
- }
228
- });
229
- var createToolkitsStore;
230
- var init_stores = __esm({
231
- "src/stores/index.ts"() {
232
- init_utils();
233
- init_axios();
234
- init_context();
235
- init_game();
236
- init_token();
237
- createToolkitsStore = (initProps) => {
238
- return createStore()(
239
- persist(
240
- (...args) => {
241
- const [_set, get2, store] = args;
242
- return {
243
- ...createTokenSlice(...args),
244
- ...createGameSlice(...args),
245
- ...createContextSlice(...args),
246
- ...createAxiosSlice(...args),
247
- clearToken() {
248
- get2().setToken("");
249
- store.persist.clearStorage();
250
- },
251
- ...initProps
252
- };
253
- },
254
- {
255
- name: "toolkits",
256
- storage: createJSONStorage(() => mixedStorage),
257
- partialize: (state) => ({
258
- token: state.token,
259
- gameId: state.gameId,
260
- collapsed: state.collapsed
261
- })
262
- }
263
- )
264
- );
265
- };
266
- }
267
- });
268
- var Logo, Logo_default;
269
- var init_Logo = __esm({
270
- "src/components/logo/Logo.tsx"() {
271
- Logo = (props) => {
272
- return /* @__PURE__ */ jsx("img", { src: logoUrl, alt: "logo", ...props });
273
- };
274
- Logo_default = Logo;
275
- }
276
- });
277
-
278
- // src/components/logo/index.ts
279
- var init_logo = __esm({
280
- "src/components/logo/index.ts"() {
281
- init_Logo();
282
- }
283
- });
284
-
285
- // src/pages/signIn/background.svg
286
- var background_default;
287
- var init_background = __esm({
288
- "src/pages/signIn/background.svg"() {
289
- background_default = 'data:image/svg+xml,<svg xml:space="preserve" style="enable-background:new 0 0 6000 4000;" viewBox="0 0 6000 4000" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" id="Layer_1" version="1.1">%0A<style type="text/css">%0A%09.Graphic_x0020_Style_x0020_100{fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_101{fill:url(%23SVGID_1_);}%0A%09.Graphic_x0020_Style_x0020_102{fill:url(%23SVGID_2_);}%0A%09.Graphic_x0020_Style_x0020_104{fill:%23DB6767;}%0A%09.Graphic_x0020_Style_x0020_105{fill:%23FFDE70;}%0A%09.Graphic_x0020_Style_x0020_106{fill:%23FFB114;}%0A%09.Graphic_x0020_Style_x0020_107{fill:%236584C6;}%0A%09.Graphic_x0020_Style_x0020_108{fill:%23102140;}%0A%09.Graphic_x0020_Style_x0020_109{fill:%233B546B;}%0A%09.Graphic_x0020_Style_x0020_110{fill:%23152A52;}%0A%09.Graphic_x0020_Style_x0020_111{fill:%23E8766F;}%0A%09.Graphic_x0020_Style_x0020_112{fill:%23EF5668;}%0A%09.Graphic_x0020_Style_x0020_113{fill:%23FC9590;}%0A%09.Graphic_x0020_Style_x0020_114{fill:%23912433;}%0A%09.Graphic_x0020_Style_x0020_115{opacity:0.5;fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_116{fill:%231A1A1A;}%0A%09.Graphic_x0020_Style_x0020_117{fill:%23535353;}%0A%09.Graphic_x0020_Style_x0020_118{fill:%23DBD2DB;}%0A%09.Graphic_x0020_Style_x0020_119{fill:%234D73C6;}%0A%09.Graphic_x0020_Style_x0020_120{fill:%23D1334A;}%0A%09.Graphic_x0020_Style_x0020_123{fill:url(%23SVGID_3_);}%0A%09.st0{fill:url(%23SVGID_4_);}%0A%09.st1{fill:url(%23SVGID_5_);}%0A%09.st2{fill:url(%23SVGID_6_);}%0A%09.st3{fill:%239D8A9D;}%0A%09.st4{fill:url(%23SVGID_7_);}%0A%09.st5{fill:url(%23SVGID_8_);}%0A%09.st6{fill:%233B546B;}%0A%09.st7{fill:%23A8A1A8;}%0A%09.st8{fill:%23DBD2DB;}%0A%09.st9{fill:%23FFFFFF;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st10{fill:%23339E7E;}%0A%09.st11{fill:none;stroke:%2310663F;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st12{fill:%2300593B;}%0A%09.st13{fill:none;stroke:%233DBE88;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st14{fill:none;stroke:%23134411;stroke-width:8.0149;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st15{fill:%23EF5668;}%0A%09.st16{fill:%23FC9590;}%0A%09.st17{fill:%23102140;}%0A%09.st18{fill:%23DB6767;}%0A%09.st19{fill:%231A1A1A;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st20{fill:%23FFFFFF;}%0A%09.st21{fill:%23535353;}%0A%09.st22{fill:%23F9EBF9;}%0A%09.st23{fill:%23D896D8;}%0A%09.st24{fill:%238E3D8E;}%0A%09.st25{fill:%23CA74CA;}%0A%09.st26{fill:%23D590D5;}%0A%09.st27{fill:%23160A16;}%0A%09.st28{fill:%23384A6E;}%0A%09.st29{fill:%23B7C0D4;}%0A%09.st30{fill:%23E8766F;}%0A%09.st31{fill:%23FFB114;}%0A%09.st32{fill:%23FFDE70;}%0A%09.st33{fill:%23434343;}%0A%09.st34{fill:%23664708;}%0A%09.st35{fill:%23D9D9D9;}%0A%09.st36{fill:url(%23SVGID_9_);}%0A%09.st37{fill:url(%23SVGID_10_);}%0A%09.st38{fill:url(%23SVGID_11_);}%0A%09.st39{fill:url(%23SVGID_12_);}%0A</style>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_1_">%0A%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_2_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_3_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A</linearGradient>%0A<g>%0A%09<linearGradient y2="3014.9536" x2="4941.2124" y1="3014.9536" x1="1288.5804" gradientUnits="userSpaceOnUse" id="SVGID_4_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1288.6,2793.9c55.3,134.1,186.5,387.6,453.7,503.3c220.8,95.6,442.9,57.4,694.7,14.2%0A%09%09c343.1-59,344.3-140.4,552.9-134.7c282.5,7.8,357.3,159.3,673.4,219.7c66.5,12.7,309.6,47.5,574.2-28.4%0A%09%09c360.6-103.4,734.8-407.2,701.8-560C4895.4,2605.9,4103.5,2505.3,1288.6,2793.9z" class="st0"></path>%0A%09<linearGradient y2="1994.5433" x2="5456.5684" y1="1994.5433" x1="686.3356" gradientUnits="userSpaceOnUse" id="SVGID_5_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5428.3,1649.1c-131.4-612.4-697.6-977.3-1155.4-1020.7c-232.1-22-245.1,56.7-616.7,117%0A%09%09c-821.7,133.2-1081-199.5-1850.1-85.1c-341.2,50.8-687.6,102.3-914.4,382.8C519.9,1502.7,718.2,2270,973.9,2621.3%0A%09%09c165.2,227,392.7,363.9,392.7,363.9c68.9,41.5,168.6,100.4,304.8,131.1c237.9,53.7,359.9-29.9,560-42.5%0A%09%09c342.7-21.6,401.6,197.2,772.6,276.4c190.7,40.7,257.4,0.5,1084.5-212.6c811.7-209.1,858.2-198.9,974.7-297.7%0A%09%09C5379.4,2571.8,5521.7,2084.7,5428.3,1649.1z M2709.5,2042.7v-2.7V2042.7z" class="st1"></path>%0A%09<linearGradient y2="1859.5726" x2="5227.9292" y1="1859.5726" x1="1116.5316" gradientUnits="userSpaceOnUse" id="SVGID_6_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5148.1,1664.4c-146.3-421.8-552.5-838.3-943.2-819c-297.4,14.6-412.5,273.3-678.4,215.1%0A%09%09c-227.7-49.8-217.9-255.8-471.6-405.4c-401.7-236.8-1083-107.4-1265.9,223.4c-99.3,179.7-11.7,346.7-173.7,521.2%0A%09%09c-113.5,122.3-192.5,78.9-314.4,198.6c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1%0A%09%09c827.4,146.2,1654.7,292.3,2482.1,438.5c80.8,13.1,529.4,77.9,879.7-216.7C5295.8,2609,5272.6,2023.2,5148.1,1664.4z%0A%09%09 M2709.5,2042.7v-2.7V2042.7z" class="st2"></path>%0A%09<path d="M5224.3,2042.5c-143.7-88.6-413.9-68.2-740.1-95.9c-488.7-41.5-1188.7,312.8-1437,221.4%0A%09%09c-95.1-35-167.4-141.7-220.4-260v1053.6c291.4,51.5,582.8,103,874.2,154.4l1292.2-269.1C5190,2615.6,5243.4,2314,5224.3,2042.5z" class="st3"></path>%0A%09<linearGradient y2="1741.7239" x2="2757.678" y1="1741.7239" x1="1116.5317" gradientUnits="userSpaceOnUse" id="SVGID_7_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.3,179.7-11.7,346.7-173.7,521.2c-113.5,122.3-192.5,78.9-314.4,198.6%0A%09%09c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1c411.1,72.6,822.2,145.3,1233.4,217.9V550.2%0A%09%09C2377.7,484.9,1931.7,620.4,1789.1,878.4z M2709.5,2042.7v-2.7V2042.7z" class="st4"></path>%0A%09<linearGradient y2="1215.4698" x2="2649.5779" y1="1215.4698" x1="1137.9542" gradientUnits="userSpaceOnUse" id="SVGID_8_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.4,179.7-11.7,346.7-173.7,521.2c-113.6,122.3-192.5,78.9-314.4,198.6%0A%09%09c-79.1,77.6-134.7,183-163,298.8c82.9-108.4,187.6-189.5,319.3-210.4c445.6-70.8,892.8,45.1,1192.3-113.7V537.1%0A%09%09C2296.9,511.3,1918.4,644.5,1789.1,878.4z" class="st5"></path>%0A%09<polygon points="1937.1,644.5 1937.1,2265.3 1979.7,2269.9 1983,640.9" class="st6"></polygon>%0A%09<path d="M2757.7,550.2c-35.6-6.1-71.7-10.5-108.1-13.1v1035.7c38.6-20.4,74.7-45.4,108.1-76V550.2z" class="st7"></path>%0A%09<path d="M1117.4,850.5c-15.5,9-30.8,18.5-45.8,28.5v1689.5l42.6,5.1L1117.4,850.5z" class="st6"></path>%0A%09<path d="M2826.8,564.5c-22.7-5.5-45.8-10.3-69.1-14.3v2399.3c23,4.1,46.1,8.1,69.1,12.2V564.5z" class="st8"></path>%0A%09<g>%0A%09%09<path d="M1121,2361c0,0-98.3-110.7,84.2-222.1c-25.3,43.4-118,92.3-52.4,202.9%0A%09%09%09c27.1,62.9-12.8,89.7-12.8,89.7S1080.6,2436.5,1121,2361z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<g>%0A%09%09%09<path d="M1282.2,2470.4c-15.5,28.9-215.1,26.5-315.7,23.4c-1.1-4.4-2.1-8.7-3.1-13c-1.8-7.8-3.5-15.5-5-23.2%0A%09%09%09%09C1035.2,2452.4,1299.9,2437.2,1282.2,2470.4z" class="st9"></path>%0A%09%09%09<path d="M1282.2,2470.4l-16.7,216.9c-25.9,39.1-25.5,89.5-36,137.5c-4.3,22.7-20.4,30.2-38.6,29.2%0A%09%09%09%09c-39.4-34.1-82.1-74.2-124.2-119.9c-50-80.3-81.3-162.6-100.3-240.3C1067.1,2496.9,1266.7,2499.4,1282.2,2470.4z" class="st9"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1331.3,2151c12.7,12.2,30.7,16,43,17c5.5-2.7,11.1-5.7,16.6-8.9c24.3-13.9,39.8-38.8,49.7-66.7%0A%09%09%09%09c-16.1,5.8-51.8,17.4-67.4,11.2c-20.4-8.1-12.5-17.1-3-14.1c11.7,6,55.7-6.5,75.3-12.5c4.1-14.9,6.8-30.2,8.6-44.8%0A%09%09%09%09c-13.9,8.3-34.9,15.8-44.4,12.6c-12.3-4.2-7.4-14.4,2.7-13.2c7.4,0.8,31.4-12,43.6-18.8c2.2-29.7,0.8-53.4,0.4-59.6%0A%09%09%09%09c-0.1-1-0.1-1.6-0.1-1.6s-29-8.6-66.9-14.1c-8,8.1-19.9,20.8-24.9,29.3c-8,13.3-11.7,24.3-18.1,22.2%0A%09%09%09%09c-12.7-6.6,13.3-37.6,27.8-53.4c-16.5-1.8-34.1-2.9-51.4-2.3c-51.5,40.6-24.5,76.1-44.7,71.8c-17.5-3.7,13.5-51.5,26.6-70.5%0A%09%09%09%09c-16.3,1.8-31.9,5.4-45.3,11.6c-12.1,6.2-22.8,12.2-32.4,18.1c-14.5,34.4,20,53.7,1.7,57.9c-14.3,3.3-16.2-30.4-16.2-48.5%0A%09%09%09%09c-124.9,86.7,2.8,144.8,2.8,144.8c0.1,0.5,0.2,1,0.3,1.6c11.4,70.5,70.1,82,134.6,58.3c-10-8-28.1-22.8-31-26.1%0A%09%09%09%09C1315,2147.7,1321.1,2139.9,1331.3,2151z" class="st10"></path>%0A%09%09%09<path d="M1433.5,1969.4c0,0-146,112.4-218.2,149.3" class="st11"></path>%0A%09%09%09<path d="M1396.4,2051c0,0-33.9,4.5-68.8-3.9" class="st11"></path>%0A%09%09%09<path d="M1316.2,1996.6c0,0-20.5,49.4-10.8,65.9" class="st11"></path>%0A%09%09%09<path d="M1352,2122.6c0,0-59.6-20.8-79-38.4" class="st11"></path>%0A%09%09%09<path d="M1216.4,2052.4c0,0-4.7,37.9,18.4,55.6" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M882.7,2066.4c10.6,1.3,21,2.9,31.1,4.8c13.6,13.1,30.4,35.2,30.3,62.7c-1.8,23.8,15.4,19.7,16.3,10%0A%09%09%09%09c0.7-7-2.6-43-4.5-62.6c108.1,32.2,164.1,103.7,86.8,204.4c0,0,80.5,195.4-178.5,184.8c22.7-22.7,62.8-66.9,41.4-76.4%0A%09%09%09%09c-27.3-12.2-10,45.1-70.7,74.5c-19-1.7-39.5-4.4-61.7-8.2c-24-5.1-47.2-15.4-69.1-28.8c39.7-11.4,137-41.9,120.6-63.3%0A%09%09%09%09c-18.9-24.6-31,45.8-143.9,47.6c-21.5-15.8-41.4-33.9-58.9-52.1c37.3-6,107.4-20.1,100.5-40.6c-5.2-8.8-23.3,1.5-49.6,10.6%0A%09%09%09%09c-16.7,5.7-46.9,10.3-66.7,12.9c-38.7-43.2-62.7-81.8-62.7-81.8s30.7-35.6,77.3-76.8c23.3,3.1,68.1,9.9,76,18.1%0A%09%09%09%09c10.7,11.2,29.3,3.1,19.9-14.1c-7.3-13.2-42.1-23.8-69.1-26.7c20.4-16.6,42.9-33.2,66.6-48c31,11.1,99.6,37.5,106.2,56.3%0A%09%09%09%09c7.6,12.8,28.5,9,14.2-20.6c-10.9-22.7-68.4-42.4-95-50.5C786.1,2077.1,836.1,2060.7,882.7,2066.4z" class="st12"></path>%0A%09%09%09<path d="M593.2,2264.5c0,0,316.6-1.6,449.7,21.1" class="st13"></path>%0A%09%09%09<path d="M740.2,2197.3c0,0,46.4,26.9,77.7,70.8" class="st13"></path>%0A%09%09%09<path d="M768.3,2342.5c0,0,86.7-42.5,95.7-72.6" class="st13"></path>%0A%09%09%09<path d="M883.4,2149.7c0,0,45.4,83.2,46.7,123.9" class="st13"></path>%0A%09%09%09<path d="M958.3,2368c0,0,53.3-43.2,47.7-87.5" class="st13"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M924,1810c7.6,5.4,14.9,11,21.8,16.7c4.5,17.1,7.4,43.4-5.2,67.8c-12.3,20.5,2.9,23.7,8,15.4%0A%09%09%09%09c3.7-5.9,17.7-39.3,25.2-57.5c68.8,71.8,79.4,157.7-26.4,216.5c0,0-27.1,205.9-222.4,93.1c27.9-11.1,79.1-34.4,67-51.4%0A%09%09%09%09c-15.5-21.8-28.3,36.1-88.6,38c-13.9-9.1-28.5-19.7-43.9-32c-16.2-14.1-29.4-32.6-40.2-53.2c35.9,5.7,125,17.5,122.1-8.1%0A%09%09%09%09c-3.3-29.5-44.9,28.3-132.9-15.1c-9.4-22.6-16.5-46.7-21.7-69.8c31.6,9.6,92.2,25,96.2,4c0-9.9-18.7-8-43.2-10.4%0A%09%09%09%09c-15.5-1.6-41-9.5-57.5-15.1c-10.2-53.9-11.1-97.8-11.1-97.8s40-19.4,94.8-37.4c16.6,12,48.1,36,50.4,46.4%0A%09%09%09%09c3.2,14.2,21.3,14.5,21.8-4.6c0.4-14.7-21.6-38-41.2-51.3c23.4-6.6,48.4-12.4,73.4-16.1c18.9,22.3,59.8,73.1,56.3,92.5%0A%09%09%09%09c0,14.5,17.9,19.4,20.4-12.7c1.9-24.5-33.5-65-50.3-82.8C844.5,1781,890.6,1786.3,924,1810z" class="st10"></path>%0A%09%09%09<path d="M609.7,1870.6c0,0,245.3,125,337.8,198.4" class="st11"></path>%0A%09%09%09<path d="M754.1,1869.5c0,0,23.6,42.4,27.7,94" class="st11"></path>%0A%09%09%09<path d="M709.4,2009.9c0,0,86.4-3.2,107.1-26.3" class="st11"></path>%0A%09%09%09<path d="M886.5,1884.4c0,0-2.9,92.1-20.5,128.9" class="st11"></path>%0A%09%09%09<path d="M844.5,2108.4c0,0,60.9-17.2,76.8-58.8" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1245.1,1794.2c20.8-5.3,34.8-21,42.5-32.8c-0.2-7.2-0.7-14.6-1.4-22.1c-3.2-32.9-23.8-63.7-50.7-90.6%0A%09%09%09%09c-1.8,19.7-7.4,62.7-22.8,74.5c-20.1,15.5-26.4,2-17.9-5.6c13.2-8.1,22.1-59.9,25.4-83.2c-15-13.2-31.3-25.3-47.2-36%0A%09%09%09%09c2.2,19-0.2,44.7-9,52.2c-11.4,9.8-20.6-1.3-13.9-10.8c4.9-7,2.8-38.8,1.4-55.2c-33.1-20.3-61.3-33.5-68.7-36.8%0A%09%09%09%09c-1.2-0.6-1.9-0.9-1.9-0.9s-25.3,23.8-51.7,58.6c5.2,13,13.5,32.7,20.6,42.9c11.1,16.1,21.9,26.5,16,31.7%0A%09%09%09%09c-14.4,8.7-36.4-36.3-47-60.5c-10.9,15.5-21.4,32.5-29.9,50.2c19.7,76.5,74.9,71.1,59.3,88.7c-13.5,15.3-52.4-45-67.4-69.8%0A%09%09%09%09c-6.6,17.5-10.6,35.3-10.6,52.6c0.7,15.9,2,30.4,3.8,43.6c32.1,35.6,72.7,12.7,67.8,33.6c-3.8,16.4-43.7-2.3-64.6-13.4%0A%09%09%09%09c33.9,178.4,168.8,85.6,168.8,85.6c0.7,0.2,1.3,0.5,2,0.7c87.5,31.6,132-20.3,138.8-99.5c-14.6,5.1-41.3,14.3-46.7,15.2%0A%09%09%09%09C1232.6,1808.5,1226.7,1797.5,1245.1,1794.2z" class="st10"></path>%0A%09%09%09<path d="M1089.2,1580.6c0,0,52.5,215.2,56.8,310.2" class="st11"></path>%0A%09%09%09<path d="M1164,1667.7c0,0-12.8,36.8-41,66.6" class="st11"></path>%0A%09%09%09<path d="M1058.6,1715c0,0,46.2,50.8,70.4,51.1" class="st11"></path>%0A%09%09%09<path d="M1223.1,1755.9c0,0-55.6,47.1-86.3,55.9" class="st11"></path>%0A%09%09%09<path d="M1070,1849.3c0,0,41.4,27.9,74,15.4" class="st11"></path>%0A%09%09</g>%0A%09%09<path d="M1146.1,1890.8c0,0,14.8,158.8-25,350.6" class="st14"></path>%0A%09%09<path d="M937.7,2061.4c0,0,170.2,50.3,183.3,183.5" class="st14"></path>%0A%09%09<path d="M1029.4,2285.6c13.6-4.9,80.6-4.6,99.5,8.8" class="st14"></path>%0A%09%09<path d="M1223.3,2114.4c0,0-98.3,30.9-77.3,232.1" class="st14"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M2812.2,2216.6c0,0,60.8,180.6,68.3,350.2c-193.8,44.1-832.8-6.2-832.8-6.2%0A%09%09%09s14-297.1,80.4-332.6C2416.5,2250.4,2812.2,2216.6,2812.2,2216.6z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M2880.5,2566.9c-7.5-169.6-68.3-350.2-68.3-350.2s-395.8,33.8-684.1,11.4%0A%09%09%09c-17.2,9.2-30.9,36-41.7,70.6c61.5,25.5,298.6,104,672.8-9.3c-4.1,90.6,73.5,94.8,73.5,94.8c12.1,42.2,11.5,131.9,9.7,189.5%0A%09%09%09C2856.4,2571.7,2869.2,2569.4,2880.5,2566.9z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<path d="M2025.5,1497.7c-85.5,55.5-169,100.9-241.9,164.1c7.6,4.2,13.3,9.3,16.2,15.7%0A%09%09%09c0,0,180.9-97,314-235c-1,0.6-1.9,1.2-2.9,1.8C2081.6,1463,2054.9,1479,2025.5,1497.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2229.4,1095.4c-25.7-0.9-176.5,78.1-272.1,168.2c-95.6,90.1-340.3,323.9-337.5,369.2%0A%09%09%09c19.6,10.4,121.7,5.7,163.9,29c72.9-63.1,156.4-108.6,241.9-164.1c29.4-18.7,56.1-34.7,85.5-53.4c0.9-0.7,1.9-1.2,2.9-1.8%0A%09%09%09c13.7-14.2,26.8-28.8,39.2-43.8C2153.1,1398.7,2255.2,1096.3,2229.4,1095.4z" class="st15"></path>%0A%09%09<path d="M2771.6,1674.1c-70.5,28.9-142.4,50.7-222.4,50.7c-37.4,0-80.1,18.7-104.2,53.4%0A%09%09%09c-61.4,98.9-133.6,184.3-232.4,229.8c-32.1,14.6-74.5,15.6-110.7,1.8c-16.7,87.9-31.4,153-31.4,153s68.3,148.9,349.6,142.7%0A%09%09%09c281.3-6.2,397.1-37.2,407.5-93.1C2841.2,2157.3,2787.4,1837.7,2771.6,1674.1z M2709.5,2042.7v-2.7V2042.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2767.4,1598.2c4.1-101.3,24.8-260.6-97.2-366.1c-122-105.5-384.9-173.4-473.5-126.7l-76.5,292.8%0A%09%09%09c11.8,55.4,25.9,140.8,27.6,239.6c1.7,97.6-23.8,254.9-46,372c36.3,13.8,78.6,12.7,110.7-1.8c98.9-45.4,171-130.9,232.4-229.8%0A%09%09%09c24-34.7,66.8-53.4,104.2-53.4c80,0,151.9-21.8,222.4-50.7C2768.4,1641.5,2766.7,1615.1,2767.4,1598.2z" class="st15"></path>%0A%09%09<path d="M2357.9,1064.1c0,0-9-52.4-22.1-33.8c-13.1,18.6-10.3,92.4,9,98.6" class="st16"></path>%0A%09%09<path d="M2626.6,1195.8c5.3-16-5.3-34.7-24-34.7c-74.8,5.3-155,13.4-224.4-18.7c-23.9-11-31.4-34.7-32.8-58.9%0A%09%09%09c-12.4,46.4-71.3,284.2,13.2,332.7c71.4,40.9,184.3-8.4,256.1-105.5C2581,1285.5,2613.8,1234.5,2626.6,1195.8z" class="st16"></path>%0A%09%09<path d="M2517.2,949.8c-125.5-23.1-169.6,125.8-169.6,125.8s-0.8,2.8-2.2,7.9%0A%09%09%09c1.4,24.2,8.9,47.9,32.8,58.9c69.5,32.1,149.6,24,224.4,18.7c18.7,0,29.4,18.7,24,34.7c-12.9,38.6-45.6,89.7-12,114.9%0A%09%09%09c22.5-30.4,41-65.6,52.8-104.1C2717.1,1045.3,2621.6,969,2517.2,949.8z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2650.9,1208c2.1-1.4,41.5-29.8,53.8,4.1c10.6,31.7-40.8,91.7-77.6,80.7l-7.2-3.4" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2641.7,1253.5c0,0,22.4-60.7,39.3-38c16.9,22.7-50.4,66.6-53,66.6C2625.5,1282,2641.7,1253.5,2641.7,1253.5%0A%09%09%09z" class="st16"></path>%0A%09%09<path d="M2695.3,1256.7L2573,1608.5c0,0-4.1,73.6,8.3,89.5c-74.5,98.7-223.4,363.4-223.4,363.4%0A%09%09%09c93.1,24.8,111.9,120,92.1,155.1c108.5-97.2,400.1-407.5,406.4-575C2879.1,1534.1,2854.6,1361.8,2695.3,1256.7z" class="st15"></path>%0A%09%09<path d="M2837.6,1430.3c30.9,169.9,7.7,183.1-75,353.6%0A%09%09%09c-61.7,127.1-230.6,287.4-312.6,360.9c9.9,28.2,8.9,56.1,0,71.9c108.5-97.2,400.1-407.5,406.4-575%0A%09%09%09C2868.7,1583.2,2867.1,1505.7,2837.6,1430.3z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M2680.8,1197.5c-6.7,0-12.5,1.5-17.3,3.9c-21.5,10.5-26.4,38.8-26.4,38.8s-8.9,23.1-16.3,12.6%0A%09%09%09c-0.8-1.2-1.6-2.7-2.3-4.8c18.6-24.8,18.6-85.5,11.7-103.4c-6.9-17.9-99.3,26.2-212.3-13.8c-68.9-29.9-68.1-84.2-59.4-118%0A%09%09%09c4.5-17.6,11.1-29.6,11.1-29.6c8.7-20.6,14.7-76,34.2-70.3c40.6,11.7,106.8-29.1,164.9-24.4c49.8,4.1,97.3,36.1,128.3,67.6%0A%09%09%09c18.2,18.5,30.7,36.8,34.4,49.1C2741.5,1038.4,2700.5,1163.4,2680.8,1197.5z" class="st17"></path>%0A%09%09<path d="M2759.2,2289.4c0,0-18.6,62.6,23.2,86c41.8,23.4,50.2,8.7,50.2,8.7S2751.6,2373.8,2759.2,2289.4z" class="st9"></path>%0A%09%09<path d="M1712.9,1890.5c-52.6-85.2-72.3-184.5-63.6-284.7c-5.7,3.2-11.6,6.9-17.5,11%0A%09%09%09c0,0-40.7,64.1,46.2,255.8c-60.7,57.2-63.2,76.8-57.8,148.5c3.8,6,7.7,11.4,11.8,16.3C1628.4,1981.4,1663.8,1922.1,1712.9,1890.5z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M1827.7,1946.4c-2.8-88.2-44.1-69.6-38.6-133.1c5.5-63.4,12.4-109.6,15.9-150.3%0A%09%09%09c3.3-38.4-60.9-110.4-155.6-57.2c-8.8,100.2,10.9,199.5,63.6,284.7c-49.2,31.6-84.5,91-80.9,146.9c42.1,50.6,95,40.7,95,40.7%0A%09%09%09s40.7-51,44.8-68.3c11.7,0.7-32.4,71-32.4,71s7.6,14.2,24.1,13C1780.1,2092.5,1830.4,2034.6,1827.7,1946.4z" class="st16"></path>%0A%09%09<path d="M1679.1,1995l-15.9,55.8c0,0,23.8-50.3,29.3-72C1698.1,1957.1,1679.1,1995,1679.1,1995z" class="st18"></path>%0A%09%09<path d="M1719.7,2081.7c0.5-1.4,56.1-102.4,65.3-88.7c9.2,13.7-42,92.4-42,92.4s-5.3,3.1-3.5-4.7%0A%09%09%09c1.8-7.8,42.7-68.9,35.4-68.5c-7.4,0.5-44.1,60.7-47.8,65.7S1719.7,2081.7,1719.7,2081.7z" class="st18"></path>%0A%09%09<path d="M1686.9,2067.8c0,0,33.5-83.7,43.3-79.9c9.8,3.9-39.4,83.3-39.4,83.3L1686.9,2067.8z" class="st18"></path>%0A%09%09<path d="M1653.4,1961.3c0,0-15.7,62.3-15.2,75C1645.6,2045.3,1657.7,1960.6,1653.4,1961.3z" class="st18"></path>%0A%09%09<path d="M1761.8,2227.6c-54.2-19.3-110.3-23.2-166.4-38.7c-0.1,0-0.2-0.1-0.3-0.1c8.4,8.6,16.7,17.2,25.1,25.7%0A%09%09%09c53.2,60.7,288.8,91.2,288.8,91.2s-10.9-9.9-72.5-89.2c-8.1,3.7-16.2,7.5-24.4,11.1C1796.6,2235.3,1777.3,2233.4,1761.8,2227.6z" class="st19"></path>%0A%09%09<path d="M1267.8,1860.2c0,0,164.6,162.1,327.3,328.6c0.1,0,0.2,0.1,0.3,0.1c56.1,15.5,112.2,19.3,166.4,38.7%0A%09%09%09c15.5,5.8,34.8,7.7,50.3,0c8.2-3.6,16.4-7.4,24.4-11.1c-33.8-43.5-82.8-108-153.6-203.3%0A%09%09%09C1514.7,2038.1,1267.8,1860.2,1267.8,1860.2z" class="st20"></path>%0A%09%09<path d="M1894.6,2339.3c-53.4,8-106.9,10.7-163-2.7c-19-4.7-34.6-13.9-48.5-25.2%0A%09%09%09c15.8,36.7,102.7,87.4,133.9,82.8c31.7-4.6,303.8-96.5,339.7-99.3c35.9-2.8,272.6-59.4,293.2-78.4c6.2-5.7,10.6-21.4,10.5-40.6%0A%09%09%09c-161,58-322,87.3-483.1,141.9C1950.7,2325.9,1921.3,2334,1894.6,2339.3z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2357.9,2061.5c-149.6,34-453,200.5-549.1,192.3c0,0-60.2,7.5-96.1-8.3c-35.9-15.8-83.7-37.4-96.5-28.9%0A%09%09%09c-10.2,6.8,29.5,56.4,52.7,80.6c6,6.2,10.8,10.8,13.5,12.5c0.2,0.6,0.5,1.1,0.7,1.7c13.9,11.3,29.5,20.5,48.5,25.2%0A%09%09%09c56.1,13.4,109.5,10.7,163,2.7c26.7-5.3,56.1-13.4,82.8-21.4c161-54.5,322-83.8,483.1-141.9%0A%09%09%09C2460.3,2131.9,2436.5,2068.5,2357.9,2061.5z" class="st16"></path>%0A%09</g>%0A%09<path d="M5147.8,2758.7c3.3,42.6-104.8,129-220.1,160.2c-111.1,40.4-316.5,84.1-839.1,218.8%0A%09%09c-356.5,91.9-571.8,151.6-716.6,186.6c-191.1,46.2-259.5,49.2-368,26c-51.4-11-96.9-24.7-137.9-40%0A%09%09c-255-95.3-339.6-255.1-634.7-236.4c-200.1,12.7-322,96.2-560,42.5c-136.3-30.7-235.9-89.6-304.8-131.1%0A%09%09c0,0-186.3-112.1-344.2-301.7c-39.9-42.2-73.3-85.6-94.5-130.9l1061.8-81.6L5147.8,2758.7z" class="Graphic_x0020_Style_x0020_118"></path>%0A%09<polygon points="1909,2627.9 2329.7,2696.9 2880.5,2648.9 2839.9,2636 1902.2,2607.7 1873.4,2616.7" class="st21"></polygon>%0A%09<path d="M2902.4,2554.2c0,0,128.1,29.9,198.1,36.5c16.9,26,103.7,26.1,139.2,31.4c35.5,5.3,64.9,60.1,137.9,65%0A%09%09c73,4.9,88.9,32.2,118.2,30.1c29.2-2.1,39.1-54.7,49.7-59.9c10.6-5.2-32-38.9-10.7-45.5C3396.5,2597.2,2902.4,2554.2,2902.4,2554.2%0A%09%09z" class="st21"></path>%0A%09<path d="M3668.6,2761.4c39.6,3,90.3-36.8,169.2-23.5c88.5,14.9,307.2,32.5,354.3-1.4%0A%09%09c61.3,3.3,696.2,65.4,749.1,44.1c52.9-21.3,68-34.5,68-34.5l-1182-107.2c0,0-299.4,44.5-286.7,84.2%0A%09%09C3547.2,2749,3629,2758.4,3668.6,2761.4z" class="Graphic_x0020_Style_x0020_117"></path>%0A%09<path d="M3779.6,3218.3c-115.9-48.9-340.1-136.6-484.1-148c-201.1-15.9-340.3-109.9-337.2-157.7%0A%09%09c3.1-47.8-605.8-113-946.8-126.3c-204.7-8-676.2-112.3-330.9-291.5l-79,6.1c-81.3,57.9-200.4,165.5-77.3,230.8%0A%09%09c174.8,92.7,1373.9,95.9,1387.8,212c13.2,110.3,575.5,195.9,765.9,301.5C3710,3236.7,3743.7,3227.7,3779.6,3218.3z" class="st22"></path>%0A%09<g>%0A%09%09<path d="M4484.2,1461.7v1181h488.7v-1181H4484.2z M4939.2,2561.4h-421.4v-539.8h421.4%0A%09%09%09V2561.4z M4939.2,1982.4h-421.4v-485.5h421.4V1982.4z" class="Graphic_x0020_Style_x0020_107"></path>%0A%09%09<rect height="485.5" width="355.8" class="Graphic_x0020_Style_x0020_118" y="1496.9" x="4583.5"></rect>%0A%09%09<rect height="485.5" width="65.6" class="Graphic_x0020_Style_x0020_119" y="1496.9" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="80.1" class="Graphic_x0020_Style_x0020_119" y="2021.5" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="341.3" class="Graphic_x0020_Style_x0020_118" y="2021.5" x="4597.9"></rect>%0A%09%09<polygon points="5067.7,1559.5 4972.9,1461.7 4975.8,2765.4 5070.3,2765.4" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<polyline points="2442.7,2752.3 2386.8,2825.9 2352.6,2827.7 2416.8,2743.1 2832.6,2738.3 %0A%09%09%092839.9,2747.7" class="Graphic_x0020_Style_x0020_117"></polyline>%0A%09%09<polygon points="2832.6,2738.3 2416.8,2743.1 2352.6,2827.7 2134.5,2839.2 2105.5,2724.6 %0A%09%09%092798.5,2694.4" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="3202.8,2854.8 2364.9,2854.8 2386.8,2825.9 2442.7,2752.3 2839.9,2747.7 %0A%09%09%093134.1,2744.3" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="2839.5,2730.9 2805.3,2687.1 2112.4,2717.2 2141.4,2831.8 2359.4,2820.3 %0A%09%09%092393.7,2818.5 2449.6,2745 2846.8,2740.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09%09<polygon points="3202.8,2848.8 2364.9,2848.8 2386.8,2819.9 2442.7,2746.3 2839.9,2741.7 %0A%09%09%093134.1,2738.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3326.7,2053.5c67.2,11.8,127,45.4,188.5,75.5c-25.6-21.6-54.4-38-66.9-44.7c-69.9-65-238.4-55.8-331.3-54.5%0A%09%09%09c-56.7,0.8-107.4,28.8-147.4,65.5C3076.9,2034.1,3204.5,2033.1,3326.7,2053.5z" class="st23"></path>%0A%09%09<path d="M3390.7,2125.6c29.4,10.7,40.1,48.1,64.1,69.5c33.5,30.3,76.4,36.8,117.6,27.5c-4-13-8.3-25.7-12.8-37.7%0A%09%09%09c-7.5-20.2-25.1-39.4-44.4-55.7c-61.4-30.2-121.3-63.8-188.5-75.5c-6.7-1.1-13.5-2.2-20.2-3.1c2.5,4.5,4.8,9.1,6.8,13.8%0A%09%09%09c6.9,18.8,10.9,38,12.4,57.2C3347.5,2119.7,3369.7,2120.3,3390.7,2125.6z" class="st23"></path>%0A%09%09<path d="M3454.8,2195c-24-21.4-34.7-58.8-64.1-69.5c-21.1-5.3-43.3-5.9-65.1-4.2c6.4,84.5-36.4,169.9-95.2,228.6%0A%09%09%09c-29.4,32.1-61.4,58.8-101.5,82.8c-32.1,21.4-66.8,37.4-101.5,53.4c-41.6,14.5-81.5,4.8-119.8-10.2c3.7,32.6,11.1,70.7,27.1,85.4%0A%09%09%09c2.2,2,149.9,56.5,246.1,29.3c130.3-36.9,227.4-163.5,314.2-210.2c10.9-5.9,21.4-12.4,31.4-19.5l-0.4-14l53.6-33.2%0A%09%09%09c3.8-4.2,7.6-8.5,11.2-12.9c-4.1-26.8-10.7-53.3-18.4-78.3C3531.3,2231.8,3488.3,2225.3,3454.8,2195z" class="st24"></path>%0A%09%09<path d="M2963.9,2113.7l-74.4,244.3c3.2,19.6,7.7,41,13.7,64.4c0.8-0.5,1.1,24.3,4.3,53.6%0A%09%09%09c38.3,15.1,78.3,24.8,119.8,10.2c34.7-16,69.5-32.1,101.5-53.4c40.1-24,72.1-50.8,101.5-82.8c65-65,110.5-162.6,91.4-255.6%0A%09%09%09C3210,2135.2,3083,2108.6,2963.9,2113.7z" class="st25"></path>%0A%09%09<path d="M3321.8,2094.4c-2.1-10.2-4.9-20.2-8.6-30.2c-2-4.6-4.2-9.2-6.8-13.8c-116-16.9-235.4-12.9-336.9,44.9%0A%09%09%09l-5.6,18.4C3083,2108.6,3210,2135.2,3321.8,2094.4z" class="st26"></path>%0A%09%09<path d="M3590.8,2300.8c-3.6,4.4-7.4,8.7-11.2,12.9l12-7.5C3591.4,2304.4,3591.1,2302.6,3590.8,2300.8z" class="st9"></path>%0A%09%09<g>%0A%09%09%09<path d="M3452.4,2090.3c-50.3-112.2-85.1-243.7-193.4-309.5c-17.4-9.7-50.3-13.5-71.6,3.9%0A%09%09%09%09c-34.5,27-36.4,68-35.6,109.5c51.1,42.2,96.7,74.2,118.4,75.2c65,3,117,150.1,192.8,215.4c35.5,30.6,78.2,23.7,113.6,7.7%0A%09%09%09%09c-19.8-3.7-39.3-11.4-54.6-19C3487.2,2158,3467.9,2123.1,3452.4,2090.3z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09%09<path d="M3489,1994.5c-13.8-96.5-49-197.2-111.1-242.1c-62.1-44.9-38.1-160-114.8-199.7%0A%09%09%09%09c-190.3-102-287.5,4.8-333,55.2c-45.5,50.3-4.1,77.2-4.1,77.2s123.9,124.8,225.9,209c-0.9-41.4,1-82.4,35.6-109.5%0A%09%09%09%09c21.3-17.4,54.2-13.5,71.6-3.9c108.3,65.8,143.1,197.3,193.4,309.5c15.5,32.9,34.8,67.7,69.6,83.2c15.3,7.7,34.8,15.3,54.6,19%0A%09%09%09%09c40.3-18.2,71.2-48.2,71.2-48.2S3502.8,2091.1,3489,1994.5z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09%09<path d="M3182.3,2144.3c-13.4-74.8,34.7-189.7-58.8-221.7c-16-61.4,5.3-128.2-37.4-184.3%0A%09%09%09%09c-33.7-46.4-75.8-81.1-127.5-97.6c-15.4,4-42.2,14-46.3,24.6c-13.8,35.6-24.4,108.3-3.6,195.1c19.9,94,53.6,191.2,151.7,162.7%0A%09%09%09%09c51,68.9,51,103.4,48.3,128.2c25.3,30.5,60,37.2,94.1,32.1C3192.8,2173.6,3185.5,2160.8,3182.3,2144.3z" class="st16"></path>%0A%09%09%09<path d="M3314.2,2124.9c-5.5-129.6-75.8-207-93.8-211.7c30.3-46.1,33.1-82-6.9-106.8%0A%09%09%09%09c-40-24.8-57.9,67.6-57.9,67.6s-19.3,18-16-3.3c17.7-114.7-62.5-214-170.5-231.9c-1.2-0.2-5.1,0.5-10.4,1.9%0A%09%09%09%09c51.7,16.5,93.8,51.2,127.5,97.6c42.7,56.1,21.4,122.9,37.4,184.3c93.5,32.1,45.4,146.9,58.8,221.7c3.1,16.5,10.5,29.3,20.4,38.9%0A%09%09%09%09C3250.3,2176,3296.5,2145.8,3314.2,2124.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M2969,1635.8c0,0,75.2,27.2,72.4,70.7c-2.8,43.5-9.8,77.5,56.3,98.1c-31.6-35.6-34.2-44-26.9-86.3%0A%09%09%09%09S3035.8,1587.8,2969,1635.8z" class="st17"></path>%0A%09%09%09<path d="M2789.6,2288.5c-77.5,101.5-203,106.9-323.3,128.2c-27.7,5.9-43.7,28.1-64.3,43.4%0A%09%09%09%09c7.2,13.8,19.1,27.9,28,39.8c0.5-0.1,1.1-0.3,1.6-0.4c159.5-16.7,359.4-29.1,470.9-150.7l-0.1-16l61-218.3%0A%09%09%09%09c-27.4,9-56.1,12.8-77.6,32.4C2837.7,2184.3,2824.3,2243.1,2789.6,2288.5z" class="st25"></path>%0A%09%09%09<path d="M3017.4,2050.7c-17.9,4.3-35.5,9.7-52.8,16.1c-58.6,21.8-113.1,55-149.7,106.6%0A%09%09%09%09c-16.4,23.2-29.7,48.3-42.2,73.7c-5.8,11.7-11.7,21.5-19.5,31.9c-8.1,10.8-17.8,20.2-27.8,29.2c-21.9,19.5-47.7,34.4-75.4,44.1%0A%09%09%09%09c-33.1,11.6-67.9,16.1-101.5,25.4c-82.7,23-147.1,41.1-152.6,60.5c-0.2,7,2.3,14.5,6.2,22c20.6-15.4,36.6-37.5,64.3-43.4%0A%09%09%09%09c120.2-21.4,245.8-26.7,323.3-128.2c34.7-45.4,48.1-104.2,96.2-141.6c21.5-19.6,50.2-23.4,77.6-32.4l5.1-18.3%0A%09%09%09%09c11-10.8,16.7-15,29.5-24.1c14.7-10.5,30.5-19.7,47.1-26.7c0.1-0.2,0.2-0.4,0.3-0.6C3036,2046.5,3026.6,2048.4,3017.4,2050.7z" class="st23"></path>%0A%09%09%09<path d="M3045.4,2044.9c-0.1,0.2-0.2,0.4-0.3,0.6c0.7-0.3,1.4-0.6,2.1-0.9%0A%09%09%09%09C3046.6,2044.7,3046,2044.8,3045.4,2044.9z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09%09<path d="M2431.6,2499.6c-0.5,0.1-1.1,0.3-1.6,0.4c0.9,1.2,1.8,2.4,2.6,3.6c10.8,15.3,7.8,45,49.1,42.6%0A%09%09%09%09c30.8-6,230-18.7,273.3-29.7c32-8.2,82.2-26.3,148.2-94.1l-0.7-73.5C2791,2470.5,2591.1,2482.9,2431.6,2499.6z" class="st24"></path>%0A%09%09%09<path d="M2398.2,2439.8c0,0,40.7-31.7,69.6,4.1c29,35.9,49.3,96,29,100.7c-20.4,4.6-65.8,2.1-87-35.2%0A%09%09%09%09C2388.5,2472.2,2387.5,2454.3,2398.2,2439.8z" class="st27"></path>%0A%09%09%09<path d="M3350.7,1877.1c18.7-58.6,71.9-104,69.5-165.2c-4.1,1.2-8.2,5.1-10.8,12.5c-7.6,21.4-71.4,103.8-71.4,103.8%0A%09%09%09%09s0,0,3.8-22.1s1.4-35.5-9.7-36.9c-11-1.4-18.3,10.3-18.3,10.3c1-31-13.4-29.3-23.4-27.6c-10,1.7-9.3,51.4-10,64.8%0A%09%09%09%09c-0.7,13.4-15.2,26.9-20-4.1c-2.8-35.9-40.7-71.7-51.7-66.9c-11,4.8,14.8,62,13.1,94.5c-1.7,32.4-20,100.7-5.5,148.2%0A%09%09%09%09c14.5,47.6-3.4,102-3.4,102l85.3,21.2c4.2-67.5,4.5-134.6,44.5-197.1C3350.7,1903.8,3348,1890.5,3350.7,1877.1z" class="st16"></path>%0A%09%09%09<path d="M3420.1,1711.9c2.4,61.2-50.8,106.6-69.5,165.2c-2.7,13.4,0,26.7-8,37.4%0A%09%09%09%09c-40,62.5-40.2,129.7-44.5,197.1l22.9,5.7c0,0-3.5-115.8,17.2-141.3c20.7-25.5,15.2-80,25.3-108.9c10.1-29,71.3-117.9,72-137.2%0A%09%09%09%09C3436,1717.3,3427.9,1709.7,3420.1,1711.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M3305.2,1839.7c-0.4,0.9,11-56.8,9-67.2c4.3,1.6,4.3,1.6,4.3,1.6S3312.8,1824.1,3305.2,1839.7z" class="st9"></path>%0A%09%09%09<g>%0A%09%09%09%09<polygon points="2369.1,2558.8 2880.5,2623.2 2325,2668.2 1891.1,2604.1" class="Graphic_x0020_Style_x0020_115"></polygon>%0A%09%09%09%09<polygon points="2264.3,2566.5 2626.8,2624.8 2334.4,2648.9 2170.4,2611.3" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M2421.8,2452.1c-5.6-0.2-22.6,8.6-22.6,8.6s-13.8-44.1-80.7-43.4s-64.8,65.5-64.8,65.5s5.5,77.2,26.9,93.1%0A%09%09%09%09%09c21.4,15.9,99.3,4.1,102.4,0c3.1-4.1,45.3-6.9,66.9-30.3c21.6-23.4,33.5-24.4,33.5-24.4S2463.5,2453.5,2421.8,2452.1z" class="st16"></path>%0A%09%09%09%09<path d="M2319.3,2460c0,0-45.5,32.4-15.2,90.3c-6.8,0.6-6.8,0.6-6.8,0.6%0A%09%09%09%09%09S2262.7,2493.1,2319.3,2460z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09%09%09<path d="M2376.8,2552.2c0,0-56.9-11.2-43.1-33.6c13.8-22.4,45.5-15.9,46.9-24.5%0A%09%09%09%09%09c1.4-8.6-15.9-23.8-21.7-14.5c-5.9,9.3-15.5,25.2-15.5,25.2s-24.1,6.2-17.9,23.1c6.2,16.9,33.8,15.5,6.2,16.9%0A%09%09%09%09%09c-27.6,1.4-39.6,0-39.6,0s-7.4,36.2,7.3,37.5c14.7,1.4,61.6,6.9,105-10.3c43.4-17.2,43.8-24.7,43.8-24.7%0A%09%09%09%09%09S2401.3,2559.2,2376.8,2552.2z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09%09<polygon points="2331,2682 2848.1,2642 2880.5,2623.2 2322,2668.2 1885.6,2604.1 %0A%09%09%09%09%091893.9,2613.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M1784.9,2001.5l427.1,0.5l15.9,3c18.3,3.5,31.9,18.7,33.5,37.3c9.9,120.2,38.5,538.8,42.7,616.9%0A%09%09%09%09%09c0.3,6.5-11.2,15-17.7,14.2l-444.6-65.8L1784.9,2001.5z" class="st28"></path>%0A%09%09%09%09<path d="M1794.6,1993.3l411.5,8.2c15.8,0.3,28.8,12.5,30.1,28.3c10.4,126.7,52.8,644.5,49.2,643.3%0A%09%09%09%09%09c-3.6-1.2-348.6-51.6-443.5-65.4c-14.1-2.1-24.9-13.4-26.2-27.6l-52.4-553C1761.5,2008.7,1776.2,1992.9,1794.6,1993.3z" class="st29"></path>%0A%09%09%09</g>%0A%09%09%09<path d="M3465.5,2285.9c-5.8-29.1-28.6-54-57-68.5c9.3,57-21.2,85.5-21.2,85.5c-6.8,3.4-40.2,78.1-48.3,71.7%0A%09%09%09%09c-4.1-3.3-5.8-14.7-6.3-29.4c-17.3-67.3-4-136.5-11.5-203.5c-2.3-18.1-0.7-36.2-6.7-52.6c-6.5-5.5-15.7-10.3-27.9-14.4%0A%09%09%09%09c0.8,120.3-17.7,240.4,10.5,355.6c8,37.4,77.5,16,112.2-8C3452.2,2392.7,3478.9,2339.3,3465.5,2285.9z" class="st24"></path>%0A%09%09%09<path d="M3332.7,2345.1c-0.9-27.1,2.3-65.1,1.7-83.5c-0.9-28.4,4.6-84.2-6.4-147.7c-0.5-9.3-4.6-17.6-13.4-24.9%0A%09%09%09%09c5.9,16.5,4.4,34.5,6.7,52.6C3328.7,2208.5,3315.4,2277.8,3332.7,2345.1z" class="st27"></path>%0A%09%09%09<path d="M3591.6,2306.2l-189.3-113.8c2.9,8.8,4.9,17.1,6.2,24.9c28.4,14.5,51.2,39.4,57,68.5%0A%09%09%09%09c4.9,19.6,4.4,39.1-0.3,57.5c36.8,33.3,76.9,62.3,118.5,89.3C3596.9,2393.5,3597.6,2349.6,3591.6,2306.2z" class="st24"></path>%0A%09%09%09<path d="M3226.7,2062.8c-4.2-0.5-8.6-0.9-13.2-1.3c-89.6,102-96.5,485.4-63.4,524c10.1,11.8,36.5,17.9,71.6,18.6%0A%09%09%09%09c-2.7-1.6-5.1-3.5-7.3-5.6C3080,2450.9,3137.9,2222.8,3226.7,2062.8z" class="st23"></path>%0A%09%09%09<path d="M3465.3,2343.4c-8.1,31.8-28.7,60.1-55.8,78.8c-34.7,24-104.2,45.4-112.2,8%0A%09%09%09%09c-28.2-115.2-9.7-235.3-10.5-355.6c-15.1-5.1-34.8-9.1-60-11.8c-88.8,160-146.7,388.1-12.3,535.7c2.1,2.1,4.6,4,7.3,5.6%0A%09%09%09%09c79.8,1.5,205-25.2,288.3-77.9c38.4-24.3,61.5-56.9,73.7-93.5C3542.2,2405.6,3502.1,2376.6,3465.3,2343.4z" class="st25"></path>%0A%09%09</g>%0A%09%09<path d="M3123.6,1922.5c3.2,5.9-36.5,92.1-63.1,100.4c35,56.6,28,41.3,37.6,63.1c63.2-44,78.1-61.9,78.3-92.2%0A%09%09%09C3177.1,1914.4,3123.6,1922.5,3123.6,1922.5z" class="st30"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3972.8,2436.5c-19.3-100.6-1.9-197.3,30.9-292.1c1.9-7.7,9.7-13.5,11.6-23.2%0A%09%09%09c13.5-58,34.8-108.3,58-160.5c1.9-7.7,1.9-15.5,3.9-23.2c1.5-4.4,6.3-7.7,9.3-11.5c-108.6,18.8-247.9,49.9-313.3,64.9%0A%09%09%09c22.2,33.7,40.9,69.3,52.5,109.1c3.9,7.7,13.5,13.5,17.4,21.3c3.9,5.8,0,11.6,3.9,17.4c11.6,15.5,21.3,29,25.1,48.4%0A%09%09%09c1.9,3.9,7.7,5.8,7.7,9.7c0,94.8,7.7,189.6,0,284.3c-6.7,72.9-22.6,143.8-37.3,214.7c84.9-0.2,183-1.6,281.4-2.7%0A%09%09%09c-52.2-58.4-91.1-128-129.9-198.4C3984.4,2475.2,3976.6,2455.8,3972.8,2436.5z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M4194.9,2483.6c82.8-18.7,163-5.3,237.8,48.1c8,8,26.7,5.3,37.4,0%0A%09%09%09c58.6-34.6,128.4-61.3,198-68.7c-150.8-225.4-393-546.7-446.5-551.9c-23.2-2.2-74.3,4.4-135,14.8c-3.1,3.9-7.9,7.1-9.3,11.5%0A%09%09%09c-1.9,7.7-1.9,15.5-3.9,23.2c-23.2,52.2-44.5,102.5-58,160.5c-1.9,9.7-9.7,15.5-11.6,23.2c-32.9,94.8-50.3,191.5-30.9,292.1%0A%09%09%09c3.3,16.6,9.5,33.3,17.3,49.9C4050.6,2508.5,4130.6,2499.3,4194.9,2483.6z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4470.1,2531.7c-10.7,5.3-29.4,8-37.4,0c-74.8-53.4-155-66.8-237.8-48.1%0A%09%09%09c-64.3,15.7-144.3,24.9-204.8,2.8c1.3,2.7,2.6,5.4,3.9,8.1c38.9,70.4,77.7,140.1,129.9,198.4c233-2.6,467.2-3.9,529.1,13.9%0A%09%09%09c110.3,31.7,131,20.7,137.9-30.3c2.3-16.7-49.5-103.7-123-213.5C4598.5,2470.4,4528.6,2497,4470.1,2531.7z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3879.9,2196.6c0-3.9-5.8-5.8-7.7-9.7c-3.9-19.3-13.5-32.9-25.1-48.4c-3.9-5.8,0-11.6-3.9-17.4%0A%09%09%09c-3.9-7.7-13.5-13.5-17.4-21.3c-11.6-39.8-30.4-75.4-52.5-109.1c-23.2,5.3-37.1,8.6-37.1,8.6s-76.6,50.8-73.5,108.1%0A%09%09%09c3.1,57.3,7.7,545.5-0.1,585.4c44.9,2.2,107.7,2.8,180,2.6c14.8-70.9,30.6-141.8,37.3-214.7%0A%09%09%09C3887.6,2386.2,3879.9,2291.4,3879.9,2196.6z" class="st31"></path>%0A%09%09<path d="M3622.6,2308.8c7.7-30.9,11.6-63.8,40.6-85.1c3.9-3.9,1.9-9.7,5.8-13.5c21.7-17.1,39.8-41.6,63-53.7%0A%09%09%09c-6.4-58.7-17.6-101.8-29.1-95c-30.3,17.9-474.3,322.7-497.1,369.5s-42.1,123.7,13.1,152.8c0,0-20.7-133.5,59.3-157%0A%09%09%09c80-23.4,155.8,45.5,157.2,51c0.7,2.8,16.3,25.9,31.7,46.8c24.5-12.2,48.8-24.7,72.3-41.8%0A%09%09%09C3593.6,2440.4,3609.1,2376.5,3622.6,2308.8z" class="st32"></path>%0A%09%09<path d="M3669.1,2210.2c-3.9,3.9-1.9,9.7-5.8,13.5c-29,21.3-32.9,54.2-40.6,85.1c-13.5,67.7-29,131.5-83.2,174.1%0A%09%09%09c-23.4,17.1-47.7,29.6-72.3,41.8c14.9,20.3,29.7,38.6,30.4,34.1c1.4-9.2,146.2-90.6,205.5-136.8c36.9-28.8,39.6-168.5,29.1-265.5%0A%09%09%09C3708.8,2168.5,3690.8,2193.1,3669.1,2210.2z" class="st31"></path>%0A%09%09<path d="M3252.8,2424.8c-14.7,6.4-25.2,15.5-32.7,25.8c33.5,31.1,84.8,42,119.8,22.2c22.9-10.4,45.8-17.6,64.9-32.9%0A%09%09%09c-0.9-0.6-1.9-1.3-3.1-2.1C3385.9,2421.4,3321.1,2395.2,3252.8,2424.8z" class="st16"></path>%0A%09%09<path d="M3220.1,2450.6c-5.4,7.5-9.3,15.6-11.9,23.8c11.3,29.8,34.2,55.9,59.6,75.9%0A%09%09%09c39.9,36.8,89.5,48.9,140.2,47.1l4-152.6c0,0,0,0-7.2-4.8c-19.1,15.3-42,22.5-64.9,32.9%0A%09%09%09C3304.9,2492.6,3253.6,2481.7,3220.1,2450.6z" class="Graphic_x0020_Style_x0020_113"></path>%0A%09%09<path d="M3267.8,2550.4c-25.4-20-48.3-46.1-59.6-75.9c-0.6,1.9-1.2,3.9-1.7,5.8%0A%09%09%09c-3.2,12.6-4,25-3.7,35.5c0.4,15.7,3.1,26.9,3.1,26.9s73.1,121.3,186.1,122.7c14.5-13.8,14.5-13.8,14.5-13.8l0.5-17.8l0.7-24.6%0A%09%09%09l0.3-11.9C3357.3,2599.3,3307.7,2587.2,3267.8,2550.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3235.6,2602c0,0,20.6,1.7,15.5-3.8c-16.6-18-47.6-98.2-21.8-124.8c29.7-30.7,122.5-41.5,160.6-26.4%0A%09%09%09c-3.3-14.6-3.3-14.6-3.3-14.6s-76.5-31-120-13.1c-43.4,17.9-62.2,9.2-63.8,77c-1.7,67.8,9.5,101.6,23.2,107.8%0A%09%09%09C3239.7,2610.3,3235.6,2602,3235.6,2602z" class="st33"></path>%0A%09%09<path d="M3226,2604.1c0,0-34.8-98.6-3.2-143.2s183.6-37.2,209.7,22.5c15.9-4.6,15.9-4.6,15.9-4.6%0A%09%09%09s51.4-54.7-36.3-81.6c-87.8-26.9-216.5,9.7-228.4,92.5S3199.4,2597,3226,2604.1z" class="st20"></path>%0A%09%09<path d="M3340,2529c32.1-10.7,40.1-29.4,53.4-58.8c2.7-5.3,21.4,2.7,32.1-5.3%0A%09%09%09c34.7-32.1,80.1-48.1,120.2-32.1c9,3,17.6,7.1,26,11.5c-6.3-16.9-12.8-29.1-12.8-29.1s-3-1.5-7.6-3.6%0A%09%09%09c-11.7-5.4-33.9-14.8-44.8-14.3c-15.2,0.7-29.9,22.1-29.9,22.1s-32.8-9-49.4,0c-16.5,9-18.5,35.5-18.5,35.5s-15.9-1.7-33.9,7.3%0A%09%09%09s-6.2,37.2-6.2,37.2s-15.2-12.4-42.1,6.2c-20.5,12.6-13.4,51.1-1.3,85.4C3326.1,2565.1,3319.5,2533.5,3340,2529z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M3545.7,2432.8c-40.1-16-85.5,0-120.2,32.1c-10.7,8-29.4,0-32.1,5.3c-13.4,29.4-21.4,48.1-53.4,58.8%0A%09%09%09c-20.4,4.5-13.9,36.1-14.7,61.9c4.6,13,9.9,25.4,14.7,35.5c6.7,14.3,12.4,24,13.6,24.5c32.4,14.5,39.8-12.1,39.8-12.1%0A%09%09%09s7.4,27.2,34.4,26.6c27-0.6,13.8-43.4,13.8-43.4s36.8,33.1,54,29c17.2-4.1,4.1-42.1,4.1-42.1s23.4,27.6,48.3,21.4%0A%09%09%09c24.8-6.2-10.3-94-10.3-94s24.1,13.3,41.4-12.2c10.5-21.9,1.8-55.6-7.2-79.8C3563.2,2439.9,3554.7,2435.8,3545.7,2432.8z" class="st16"></path>%0A%09%09<path d="M3855.6,1746.2c-34.7-66.8-53.4-157.6-120.2-181.7c-70.3-26.7-149.3,8.2-227.2-3%0A%09%09%09c-21.3,43.8-31,95-34.5,140.3c-7.9,103.1,20.2,204.3,82.4,287.5c9.2,12.3,20.1,15.4,35.2,15.3c13.5-0.1,92.2-26.6,94.3-24.1%0A%09%09%09c0,0,89.2,104.8,138.8,155.4c3.9,4,7.6,7.6,11.1,10.9c41,38.7,55.1,33.2,55.1,33.2s66.2-16.5,80-60.7c13.8-44.1,68-261.3,68-261.3%0A%09%09%09s-2.5-6.5-5.6-15.8C3959.1,1845.2,3889.3,1813.7,3855.6,1746.2z" class="st16"></path>%0A%09%09<path d="M4022,1797.7c-2.8-24.8,81.8-357.6-168.2-366.8c-89.9-3.3-189,3.2-269.9,46.9%0A%09%09%09c-34.4,18.6-58.8,48.8-75.7,83.7c77.9,11.2,156.9-23.7,227.2,3c66.8,24,85.5,114.9,120.2,181.7c33.8,67.5,103.5,99,177.4,96.1%0A%09%09%09c-1.2-3.7-2.5-7.7-3.8-12.1C4026.1,1819.7,4023.1,1807.8,4022,1797.7z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4069.8,1569.7c-23-40.4-27.6-96.5-46-109.4c-0.8-25.3-12.8-44.3-33.2-58.9%0A%09%09%09c-26.3-18.9-66.6-30.6-114.7-39.4c-85.5-15.6-326.4,68.3-388.9,41.2c-46.2-20-44.1,85.7-44.1,85.7s-0.6,8.6,2.7,18.9%0A%09%09%09c0.8,2.6,1.9,5.3,3.4,8c6.8,13.1,21.3,26,51.9,25.5c61.6-0.9,148-35.8,156.3-17.5c8.3,18.4,0.9,143.8,12.9,163.8%0A%09%09%09c4.5,0.7,8.3,1.3,11.5,1.8c16,2.6,16,2.6,16,2.6s1.8-85.5,55.2-84.1c18.2,0.5,37.2,5.3,55.1,14.9c34.5,18.6,64.6,55.2,75.4,113.4%0A%09%09%09c16.6,88.2,147.1,77.2,147.1,77.2s2.3-7.5,5.9-19.9c5.1-17.8,12.8-45.6,20-75.9C4070,1659,4082.1,1591.2,4069.8,1569.7z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<polygon points="3720.5,1573.4 3453,1652.4 3452.3,1641 3736.1,1563.3" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09%09<path d="M3661.3,2544.8c-2.7-1-5.3-2.4-7.9-4.1c4.4,48.9,8.2,80.7,8.2,80.7l146.2-7.8%0A%09%09%09c0,0,5.8-43,13.8-101.1c-7.6,1.5-15.3,3.9-23,7.2C3756.1,2539,3707.8,2556.4,3661.3,2544.8z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3847.5,2157.6c-42.9-65.3-126-117.2-122.4-138.8c-110.1-35.4-87.2,349.7-71.6,521.9%0A%09%09%09c2.6,1.7,5.2,3.1,7.9,4.1c46.4,11.6,94.8-5.8,137.3-25.1c7.7-3.3,15.3-5.7,23-7.2c11.1-80.9,26.4-191.1,35.8-255.6%0A%09%09%09C3859.9,2240.5,3857.5,2172.8,3847.5,2157.6z" class="st32"></path>%0A%09%09<path d="M4242.6,2242.6c0,0,36.8,108.5,119.5,116.7c-13.8,52.4,206.2,183.4,206.2,183.4l9.8-23.8l-239.8-248.8%0A%09%09%09L4242.6,2242.6z" class="st34"></path>%0A%09%09<path d="M3298.6,2799c-8.5,5.6-14.3,9.3-14.8,9.1c-2.1-0.7-22.1,19.3-22.1,19.3%0A%09%09%09s33.8,2.8,36.5,0c0.5-0.5,4.9-3.2,11.4-7C3308.5,2811.6,3304.6,2802.8,3298.6,2799z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<path d="M3379,2744c0,0-53.6,37.3-80.3,55c3.9,2.5,6.9,7,8.8,12.3l95.8-56.5%0A%09%09%09C3402.9,2747.5,3396.9,2742.8,3379,2744z" class="Graphic_x0020_Style_x0020_112"></path>%0A%09%09<path d="M3307.5,2811.4c1.1,2.9,1.8,6,2.3,9.1c26.5-15.5,89.9-50.9,89.9-50.9%0A%09%09%09c2.2-5.4,3.8-10.5,3.6-14.7L3307.5,2811.4z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M4750.6,2686.6c-104.2,18.7-203,5.3-304.6,0c-109.5-2.7-227.1-26.7-334,16%0A%09%09%09c-80.1,29.4-171-21.4-261.8-2.7c-64.6,14.9-126.9,34.4-189.1,52.1c1.8,0.1,3.8,0.2,6,0.2c37.2,0,155.8-45.5,257.9-29%0A%09%09%09s212.4,30.3,251-6.9c96.5,5.5,601.2,41.4,650.9,26.2c10.9-23.2,13.8-50.2,10.6-77.7C4808.9,2673.1,4780.3,2680.7,4750.6,2686.6z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4112.1,2702.6c106.9-42.7,224.4-18.7,334-16c101.5,5.3,200.4,18.7,304.6,0c29.7-5.9,58.4-13.5,86.9-21.6%0A%09%09%09c-9.7-83.3-75.3-171.2-141.6-173.3c-45.6,12.2-90.4,22.8-134.1,31.9c-331.1,69.3-596.5,55.3-657.4,37%0A%09%09%09c-68.9-20.7-170.7,19.4-243.8,51.1c-73.1,31.7-122,56.6-95.8,74.6c-0.8,1.2-5,6.1-5.1,9.5c-0.1,3.5-5.8,5.5-8.7,8.7%0A%09%09%09c-8.6,9.5-7.7,26.2,7.4,27.1c1.8,0.1,3.6,0.3,5.3,0.6c20,3.4,31.7,17.6,60.9,4.9c30.3-4.1,30.3-4.1,30.3-4.1s-21.9,17.1,6.4,19.1%0A%09%09%09c62.2-17.7,124.5-37.2,189.1-52.1C3941.1,2681.3,4031.9,2732,4112.1,2702.6z" class="st16"></path>%0A%09%09<path d="M5017.7,2587.8c-2.7-5.3,2.7-13.4,0-18.7c-37.4-72.1-72.1-141.6-130.9-195%0A%09%09%09c-45.4-42.7-96.2-77.5-141.6-120.2c-64.1-53.4-101.5-125.6-173.7-165.6c-80.1-45.4-157.6-88.2-243.1-120.2%0A%09%09%09c-56.1-18.7-114.9-8-173.7-10.7c-8,0-13.4-8-18.7-8c-26.9-3.6-52.7-12-77.2-22.8l-4.1,6.3l-47.1,153.2l241.3,154.8%0A%09%09%09c0.7,4.9,2.5,10,5.3,15.1c70.7-21.4,153.8-12.5,210.4,35.3c58.8,50.8,77.5,133.6,138.9,176.3c50.8,37.4,117.6,48.1,155,101.5%0A%09%09%09c26.3,32.9,23.8,78.3-4.4,111.2c16.3,20,31.9,41.7,46.4,65.4c43.6,17.7,172.5,20.1,226.6-52.4%0A%09%09%09C5038.9,2660.1,5036.7,2621.8,5017.7,2587.8z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4666.9,2134.6c-215.1-230.3-311.2-220.2-404.5-226.6%0A%09%09%09c-58.4-29.4-93.8-48.3-120.4-4.6c-12.4-21.6-57-17.5-57-17.5l-26.1,40.5c24.5,10.8,50.2,19.2,77.2,22.8c5.3,0,10.7,8,18.7,8%0A%09%09%09c58.8,2.7,117.6-8,173.7,10.7c85.5,32.1,163,74.8,243.1,120.2c72.1,40.1,109.5,112.2,173.7,165.6c45.4,42.7,96.2,77.5,141.6,120.2%0A%09%09%09c58.8,53.4,93.5,122.9,130.9,195c2.7,5.3-2.7,13.4,0,18.7c18.9,34.1,21.2,72.4,9.5,105.5c14.4-19.2,23.5-43.8,24.4-74.7%0A%09%09%09C5055.7,2471,4882,2364.8,4666.9,2134.6z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M4758.6,2569.1c-37.4-53.4-104.2-64.1-155-101.5%0A%09%09%09c-61.4-42.7-80.1-125.6-138.9-176.3c-56.5-47.8-139.6-56.7-210.4-35.3c25.1,47.2,127.1,102.1,127.1,102.1s20.7,44.1,55.2,84.1%0A%09%09%09c30.5,35.4,193.5,85.8,317.6,238.2C4782.4,2647.3,4784.9,2601.9,4758.6,2569.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3715.8,2015.7l-33.4,5.8c0,0,86.9,194.9,81.4,227c99.3-46.4,98.4-56.1,98.4-56.1%0A%09%09%09l-7.4-38.1C3852.2,2113.2,3774.4,2063.6,3715.8,2015.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M4035.3,1825.7c0,0-127.3,345.2-108.9,400.3c60.7-14.7,108.9,4.6,108.9,4.6%0A%09%09%09s-11.5-222.5,55.6-345.6C4061.5,1845.5,4035.3,1825.7,4035.3,1825.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M3654.8,2733l130-51c-71.4,10.3-156.4,53.6-160.3,55.2C3633.4,2740.2,3654.8,2733,3654.8,2733z" class="st18"></path>%0A%09%09<path d="M3576.1,2735.8c0,0,55.9-47.6,182.8-76.5c-16.5-5.5-133.9,28.9-190.4,74.1%0A%09%09%09C3573.4,2738.5,3576.1,2735.8,3576.1,2735.8z" class="st18"></path>%0A%09%09<path d="M3558,2699.3c0,0,110.1-70.4,179-82.8c-35.9-12.4-176.2,71.6-176.2,71.6L3558,2699.3z" class="st18"></path>%0A%09%09<path d="M3834.5,1885.6c0,0-102,90.4-148.9,95c48.7,53.3,78.2,78.6,99.3,89.2%0A%09%09%09c0-99.3,91.9-168.2,83.7-237.2c-8.3-68.9-6.4-64.3-6.4-64.3S3863,1851.2,3834.5,1885.6z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M4897.2,2712.3c-24.8-45.5-111.6-233-210.3-220.6c0,0-65.2,9.2-99.4,20.8c-1.1,12.9,9.7,22,21.7,26.5%0A%09%09%09c104.1,32,201.6,111.9,214.5,216.4c41.8,6.1,86.6,20.3,88.3-2.4C4912.3,2747.3,4901.4,2720.1,4897.2,2712.3z" class="st20"></path>%0A%09%09<path d="M4609.1,2539c-12-4.5-22.8-13.6-21.7-26.5c-9.2,3.1-16.2,6.4-19,9.7c149.6,89.2,160.1,153.2,228.5,227.8%0A%09%09%09c9,2.3,18,4.1,26.7,5.4C4810.8,2650.9,4713.3,2571,4609.1,2539z" class="st35"></path>%0A%09%09<path d="M3389.9,2642.1c0,0-40.9-81.4-37.1-99.3c3.8-17.9-3.1-35.9,15.9-43.4c-6.2,13.8-11,29-10,45.5%0A%09%09%09c1,16.5,34.6,94,34.6,94L3389.9,2642.1z" class="st18"></path>%0A%09%09<path d="M3407,2460.9c0,0-9.2,34.9-1.9,66.6c7.4,31.7,30.8,93.9,37,97.1c6.2,3.2,6.2,3.2,6.2,3.2%0A%09%09%09S3398.3,2507.3,3407,2460.9z" class="st18"></path>%0A%09%09<path d="M3472.9,2418.4c0,0-17,55.4-15.2,76c1.8,20.7,41.7,120.8,41.7,120.8l2.9-3.5%0A%09%09%09c0,0-42.5-108.1-31.7-146c10.9-37.9,9.3-50.7,9.3-50.7L3472.9,2418.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3537.6,2454.9c0,0-9.2,72.2,0,81.4s20.4,7.3,20.4,7.3S3539.9,2483.9,3537.6,2454.9z" class="st18"></path>%0A%09%09<path d="M3543.3,2484.1c0,0-7.6,38.4-5.8,52.2c0.7,5.4,2.5,11.2,5.6,16.5c7.7,6.5,16.6,9.4,25.4,1.7%0A%09%09%09c15.6-12.5,17.4-32.6,17.5-52.1c-0.7-2.3-1.4-4.6-2.2-7" class="st16"></path>%0A%09%09<g>%0A%09%09%09<polygon points="3466.8,1624.2 3466.8,1624.2 3466.8,1624.2" class="st9"></polygon>%0A%09%09%09<path d="M3516.4,1675.9c-7.1-21.6-14.1-34.6-21-42.6c-3.4-4-6.9-6.7-10.3-8.4%0A%09%09%09%09c-3.4-1.7-6.8-2.3-9.8-2.3c-3.4,0-6.3,0.8-8.6,1.5c-4.1,1.3-8,4.5-10.7,9.6c-2.7,5.1-4.4,12.1-4.4,21.5%0A%09%09%09%09c0,12.2,2.8,28.6,10.1,50.4c6.4,19,13.3,30.6,20.3,37.6c3.5,3.5,7.1,5.8,10.5,7.3c3.4,1.4,6.8,2,9.7,2c2.7,0,5.1-0.4,7.1-0.9%0A%09%09%09%09c2-0.5,3.5-1.1,4.4-1.4l0,0c2.9-0.9,6.2-3.2,8.5-7.4c2.3-4.2,3.8-10.1,3.8-18.4C3526.2,1713.3,3523.6,1697.9,3516.4,1675.9z%0A%09%09%09%09 M3515.7,1738.9c-1.5,2.6-3.1,3.5-4.1,3.8c-1.2,0.4-2.5,0.9-4,1.3c-1.5,0.4-3.3,0.7-5.1,0.7c-2,0-4.3-0.3-6.7-1.4%0A%09%09%09%09c-3.7-1.5-7.9-4.6-12.5-10.9c-4.6-6.2-9.4-15.6-14-29.3c-7.1-21.2-9.7-36.9-9.7-47.9c0-8.5,1.5-14.2,3.5-17.9%0A%09%09%09%09c2-3.6,4.2-5.2,6.2-5.8l0,0c2-0.6,4.1-1.1,6.3-1.1c2,0,4,0.4,6.3,1.5c3.5,1.7,7.7,5.3,12.4,12.6c4.7,7.2,9.7,18.1,14.9,33.8%0A%09%09%09%09c7.1,21.4,9.4,36.2,9.4,46C3518.5,1731.7,3517.1,1736.3,3515.7,1738.9z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09</g>%0A%09</g>%0A%09<polygon points="4535.9,1753.6 4677.9,1982.4 4774.4,1982.4 4597.9,1697.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09<polygon points="4616.6,1659.7 4815.1,1982.4 4916.5,1982.4 4705.5,1586.9" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<polygon points="4597.9,1697.5 4644.4,1704.9 4815.1,1982.4 4774.4,1982.4" class="Graphic_x0020_Style_x0020_108"></polygon>%0A%09<polygon points="4791.1,1650.6 4705.5,1586.9 4916.5,1982.4 4939.2,1982.4 4939.2,1925.9" class="Graphic_x0020_Style_x0020_107"></polygon>%0A%09<path d="M4590.7,1773.7c0,0,19.3-16,39,11c19.6,27-20.3,47.3-33.4,30.1%0A%09%09C4583.1,1797.4,4579.5,1778.2,4590.7,1773.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09<path d="M4596.3,1780.1c0,0,13.5-11.2,27.3,7.7s-14.2,33.1-23.4,21.1%0A%09%09C4591,1796.7,4588.5,1783.2,4596.3,1780.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09<polygon points="4609.5,1841.2 4648,1821.1 4757.4,1982.4 4699.5,1982.4" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<ellipse ry="38.6" rx="31.7" cy="1701" cx="4703.2" class="Graphic_x0020_Style_x0020_104"></ellipse>%0A%09<polygon points="4705.5,1762.7 4757.4,1724.1 4766.2,1734.7 4712.4,1768.9" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4718.4,1793 4770.3,1754.3 4779,1764.9 4725.3,1799.2" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4731.2,1823.2 4783.2,1784.6 4791.9,1795.1 4738.1,1829.4" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<g>%0A%09%09<path d="M973.4,2494.7c-1.1-7.7-1.9-15.4-2.3-22.9c9.5-13.4,26.8-31.8,52.9-40.2c23.1-6.1,15.4-16.7,6-14.3%0A%09%09%09c-6.8,1.7-40.3,15-58.6,22.4c6.9-84.5,62.6-145.2,175.4-122.9c0,0,168.2-115.8,215,66.2c-26.6-8.7-77.4-22.7-81.8-5%0A%09%09%09c-5.6,22.6,45.1-7,86.4,25.8c2.5,13.6,4.5,28.6,5.7,45.1c0.4,18.1-4.3,37.3-12.2,56.6c-19.6-23.9-69.9-81.6-86.6-63.7%0A%09%09%09c-19.3,20.6,50.3,7.3,76.9,84.6c-10.3,19.7-23.2,39-36.6,56.7c-13.9-23.9-42.7-67.9-60.7-56.8c-7.2,6.3,6.6,15.6,21,31%0A%09%09%09c9.1,9.8,20.1,29.2,27,42.1c-32.6,40-64,68.5-64,68.5s-40.6-10.2-90-29.6c-2.2-17-5.6-50,0.5-58c8.3-10.9-3.5-21.2-17.7-9.4%0A%09%09%09c-11,9.1-13.4,36.4-10.2,55.9c-20.3-9-41-19.4-60.3-31.1c3.7-24.8,13.8-80.3,30.3-90.6c10.5-9.2,2.3-22.4-22.7-3.4%0A%09%09%09c-19.2,14.5-25.3,60.3-27.2,81.1C1004.8,2558,978.2,2528.6,973.4,2494.7z" class="st10"></path>%0A%09%09<path d="M1225.4,2633.4c0,0-71-217.9-78.6-316.8" class="st11"></path>%0A%09%09<path d="M1129.2,2552.6c0,0,15.4-40.3,50.3-75.4" class="st11"></path>%0A%09%09<path d="M1261.1,2488.4c0,0-59.5-46.7-90-43.7" class="st11"></path>%0A%09%09<path d="M1052.5,2468.5c0,0,69.2-57,107.6-70.5" class="st11"></path>%0A%09%09<path d="M1243.7,2349.5c0,0-52.8-23.4-93.7-5.9" class="st11"></path>%0A%09</g>%0A%09<path d="M3360.2,3327.1c-71.4-58-182.9-129.1-345.1-184.1c-329.3-111.6-176.9-187.3-303.6-225.2%0A%09%09s-430.3-22.5-784.9-68.8s-643.1-33.1-556-162c60.4-89.4,145-152.7,191.1-183.1l-109.7,8.4c-108.3,81.3-312.5,270.2,66.8,308.2%0A%09%09c486.5,48.7,1181.1,101.9,1192.6,208.2c9.2,84.8,440.1,200.1,610.2,307.3C3334,3333.3,3346.8,3330.3,3360.2,3327.1z" class="st22"></path>%0A%09<linearGradient y2="608.8419" x2="3633.9429" y1="608.8419" x1="3431.6741" gradientUnits="userSpaceOnUse" id="SVGID_9_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="101.1" rx="101.1" cy="608.8" cx="3532.8" class="st36"></ellipse>%0A%09<linearGradient y2="3174.8586" x2="1457.2415" y1="3174.8586" x1="1136.8959" gradientUnits="userSpaceOnUse" id="SVGID_10_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="106.3" rx="160.2" cy="3174.9" cx="1297.1" class="st37"></ellipse>%0A%09<linearGradient y2="2968.6479" x2="1266.5088" y1="2968.6479" x1="1085.6805" gradientUnits="userSpaceOnUse" id="SVGID_11_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="60" rx="90.4" cy="2968.6" cx="1176.1" class="st38"></ellipse>%0A%09<linearGradient y2="3078.0559" x2="5051.6841" y1="3078.0559" x1="4866.0625" gradientUnits="userSpaceOnUse" id="SVGID_12_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="92.8" rx="92.8" cy="3078.1" cx="4958.9" class="st39"></ellipse>%0A%09<path d="M2285.6,3438c0,0,206.8,24.5,420.7-87.7c42.5-28.4,62.6,33.1,35.4,53.2%0A%09%09c-27.2,20.1-168.9,100.4-399.3,87.4C2216,3486.1,2239.4,3435.8,2285.6,3438z" class="Graphic_x0020_Style_x0020_100"></path>%0A</g>%0A</svg>%0A';
290
- }
291
- });
292
- var useSignInStore, SignIn, signIn_default;
293
- var init_signIn = __esm({
294
- "src/pages/signIn/index.tsx"() {
295
- init_locale();
296
- init_logo();
297
- init_toolkitsProvider();
298
- init_constants();
299
- init_background();
300
- useSignInStore = create()((set) => ({
301
- unregistered: false,
302
- setUnregistered() {
303
- set({ unregistered: true });
304
- }
305
- }));
306
- SignIn = (props) => {
307
- const { extra } = props;
308
- const { unregistered } = useSignInStore();
309
- const {
310
- title: { text }
311
- } = useToolkitsStore((s) => s);
312
- const queryParams = new URLSearchParams(window.location.search);
313
- const { token, setToken, axios: axios2, mainPagePath } = useToolkitsStore((state) => state);
314
- const { t } = useTranslation();
315
- const { isLoading } = useSWR6(
316
- queryParams.has("ticket") ? `/api/usystem/user/login?ticket=${queryParams.get("ticket")}` : null,
317
- (url4) => axios2.get(url4).then((res) => res.data.data),
318
- {
319
- onSuccess: (data) => {
320
- if (data) {
321
- setToken(data.token);
322
- }
323
- }
324
- }
325
- );
326
- if (isLoading) {
327
- return /* @__PURE__ */ jsx("div", { className: "w-screen h-screen flex justify-center items-center", children: /* @__PURE__ */ jsx(Spin, {}) });
328
- }
329
- if (token) {
330
- const hashMode = !!window.location.hash;
331
- const path = mainPagePath;
332
- if (!hashMode) {
333
- return /* @__PURE__ */ jsx(Navigate, { replace: true, to: mainPagePath });
334
- }
335
- window.location.href = `${window.location.origin}${window.location.pathname}#${path}`;
336
- return null;
337
- }
338
- return /* @__PURE__ */ jsxs("div", { className: "w-screen h-screen relative flex overflow-hidden", children: [
339
- /* @__PURE__ */ jsx("div", { className: "absolute top-16 right-16 z-10", children: extra }),
340
- /* @__PURE__ */ jsx("div", { className: "absolute left-14 top-6", children: /* @__PURE__ */ jsxs(Space, { align: "center", children: [
341
- /* @__PURE__ */ jsx(Logo_default, { width: 48 }),
342
- /* @__PURE__ */ jsx("span", { className: "text-2xl font-bold", children: text })
343
- ] }) }),
344
- /* @__PURE__ */ jsx("div", { className: "flex-1 flex justify-center items-center bg-slate-50", children: /* @__PURE__ */ jsx("img", { src: background_default, alt: "background", className: "w-10/12" }) }),
345
- /* @__PURE__ */ jsx("div", { className: "w-[650px] relative top-0 left-0 right-0 bottom-0", children: /* @__PURE__ */ jsx("div", { className: "absolute top-1/2 -translate-y-1/2 left-0 right-0", children: /* @__PURE__ */ jsx("div", { className: "-translate-y-10 px-36", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-center", children: [
346
- /* @__PURE__ */ jsx("div", { className: "h-10", children: unregistered && /* @__PURE__ */ jsx(Alert, { banner: true, closable: true, message: t("SignIn.unregistered"), type: "error" }) }),
347
- /* @__PURE__ */ jsx(Typography.Title, { level: 2, children: t("SignIn.welcome") }),
348
- /* @__PURE__ */ jsx("div", { className: "mt-4", children: /* @__PURE__ */ jsxs(Form, { layout: "vertical", autoComplete: "off", children: [
349
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.username"), name: "username", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, {}) }),
350
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.password"), name: "password", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input.Password, {}) }),
351
- /* @__PURE__ */ jsx(Form.Item, { children: /* @__PURE__ */ jsx(Button, { block: true, type: "primary", shape: "round", htmlType: "submit", children: t("global.signIn") }) })
352
- ] }) }),
353
- /* @__PURE__ */ jsx(Divider, { plain: true, dashed: true, children: t("SignIn.thirdParty") }),
354
- /* @__PURE__ */ jsx("div", { className: "flex justify-center items-center", children: /* @__PURE__ */ jsxs(
355
- Button,
356
- {
357
- block: true,
358
- shape: "round",
359
- href: `${SSO_URL}/logout?service=${SSO_URL}/login?service=${window.location.href}`,
360
- target: "_self",
361
- children: [
362
- /* @__PURE__ */ jsx(Logo_default, { width: 18 }),
363
- t("SignIn.signInWithIDass")
364
- ]
365
- }
366
- ) })
367
- ] }) }) }) })
368
- ] });
369
- };
370
- signIn_default = SignIn;
371
- }
372
- });
373
- var requestInterceptorId, responseInterceptorId, Interceptors, Interceptors_default;
374
- var init_Interceptors = __esm({
375
- "src/components/interceptors/Interceptors.tsx"() {
376
- init_constants();
377
- init_signIn();
378
- init_toolkitsProvider();
379
- Interceptors = ({ children }) => {
380
- const { notification } = App.useApp();
381
- const { axios: axios2, interceptors, token, isGlobal, signInPath, gameId, clearToken, permissionVersion } = useToolkitsStore(
382
- (s) => s
383
- );
384
- const { setUnregistered } = useSignInStore();
385
- const navigate = useNavigate();
386
- axios2.interceptors.request.eject(requestInterceptorId);
387
- axios2.interceptors.response.eject(responseInterceptorId);
388
- if (interceptors?.request) {
389
- requestInterceptorId = axios2.interceptors.request.use(...interceptors.request);
390
- } else {
391
- requestInterceptorId = axios2.interceptors.request.use((config) => {
392
- if (config.skipRequestInterceptor) {
393
- return config;
394
- }
395
- const headers = new AxiosHeaders(config.headers);
396
- config.responseType = config.responseType || "json";
397
- if (token) {
398
- headers.setAuthorization(`Bearer ${token}`);
399
- }
400
- if (!headers.has(APP_ID_HEADER) && permissionVersion !== "v1" /* V1 */) {
401
- if (isGlobal || !gameId) {
402
- headers.set(APP_ID_HEADER, "global");
403
- } else {
404
- headers.set(APP_ID_HEADER, gameId);
405
- }
406
- }
407
- headers.set("Accept", config.responseType === "blob" ? "application/octet-stream" : "application/json");
408
- config.headers = headers;
409
- return config;
410
- });
411
- }
412
- if (interceptors?.response) {
413
- responseInterceptorId = axios2.interceptors.response.use(...interceptors.response);
414
- } else {
415
- responseInterceptorId = axios2.interceptors.response.use(
416
- (response) => {
417
- if (response.config.skipResponseInterceptor) {
418
- return response;
419
- }
420
- const responseType = response.request.responseType || "json";
421
- if (responseType === "json") {
422
- const data = response.data;
423
- if (data.code === 0 || data.code === 1 || data.code === 200 || data.status === 0 || data.errno === 0) {
424
- return response;
425
- } else {
426
- notification.error({
427
- message: "Request failed",
428
- description: data.msg
429
- });
430
- throw new Error(data.msg);
431
- }
432
- }
433
- return response;
434
- },
435
- (error) => {
436
- if (isAxiosError(error)) {
437
- const response = error.response;
438
- if (!response) {
439
- throw error;
440
- }
441
- if (response.status === 401 || response.status === 412) {
442
- clearToken?.();
443
- if (response.status === 412) {
444
- setUnregistered();
445
- }
446
- navigate(signInPath);
447
- } else if (response.status === 403) {
448
- notification.error({
449
- message: "Forbidden",
450
- description: "You do not have permission to access this resource."
451
- });
452
- } else {
453
- notification.error({
454
- message: "Request failed",
455
- description: response.data.msg
456
- });
457
- throw new Error(response.data.msg);
458
- }
459
- }
460
- throw error;
461
- }
462
- );
463
- }
464
- return children;
465
- };
466
- Interceptors_default = Interceptors;
467
- }
468
- });
469
-
470
- // src/components/interceptors/index.ts
471
- var init_interceptors = __esm({
472
- "src/components/interceptors/index.ts"() {
473
- init_Interceptors();
474
- }
475
- });
476
- function useToolkitsStore(selector) {
477
- const store = useContext(ToolkitsContext);
478
- if (!store) throw new Error("Missing ToolkitsProvider in the tree");
479
- return useStore(store, selector);
480
- }
481
- var ToolkitsContext, ToolkitsProvider, withContext, ToolkitsProvider_default;
482
- var init_ToolkitsProvider = __esm({
483
- "src/components/toolkitsProvider/ToolkitsProvider.tsx"() {
484
- init_stores();
485
- init_interceptors();
486
- ToolkitsContext = createContext(null);
487
- ToolkitsProvider = (props) => {
488
- const { children, ...restProps } = props;
489
- const storeRef = useRef();
490
- const parentState = useContext(ToolkitsContext)?.getState();
491
- if (!storeRef.current) {
492
- storeRef.current = createToolkitsStore({ ...parentState, ...restProps });
493
- }
494
- if (!storeRef.current.getState().signInPath) {
495
- throw new Error('ToolkitsProvider: \u8BF7\u914D\u7F6E "signInPath"');
496
- }
497
- return /* @__PURE__ */ jsx(ToolkitsContext.Provider, { value: storeRef.current, children: /* @__PURE__ */ jsx(App, { children: /* @__PURE__ */ jsx(Interceptors_default, { children }) }) });
498
- };
499
- withContext = (Component, providerProps) => {
500
- return (props) => {
501
- return /* @__PURE__ */ jsx(ToolkitsProvider, { ...providerProps, children: /* @__PURE__ */ jsx(Component, { ...props }) });
502
- };
503
- };
504
- if (process.env.NODE_ENV !== "production") {
505
- ToolkitsProvider.displayName = "ToolkitsProvider";
506
- }
507
- ToolkitsProvider_default = ToolkitsProvider;
508
- }
509
- });
510
-
511
- // src/components/toolkitsProvider/index.ts
512
- var init_toolkitsProvider = __esm({
513
- "src/components/toolkitsProvider/index.ts"() {
514
- init_ToolkitsProvider();
515
- }
516
- });
517
- function useTranslation() {
518
- const locale2 = useToolkitsStore((state) => state.locale);
519
- const t = useMemo(
520
- () => (key, data) => has(locale2, key) ? template(get(locale2, key))(data) : key,
521
- [locale2]
522
- );
523
- return { t };
524
- }
525
- var init_hooks = __esm({
526
- "src/components/locale/hooks.ts"() {
527
- init_toolkitsProvider();
528
- }
529
- });
530
-
531
- // src/components/locale/index.ts
532
- var init_locale = __esm({
533
- "src/components/locale/index.ts"() {
534
- init_hooks();
535
- }
536
- });
537
- var FilterFormWrapper, FilterFormWrapper_default;
538
- var init_FilterFormWrapper = __esm({
539
- "src/components/filterFormWrapper/FilterFormWrapper.tsx"() {
540
- init_locale();
541
- FilterFormWrapper = (props) => {
542
- const { extras, isConfirming, onConfirm, onReset, children, buttonsAlign = "left", showReset } = props;
543
- const { t } = useTranslation();
544
- const {
545
- token: { colorFillAlter, lineWidth, lineType, colorBorder, borderRadiusLG }
546
- } = theme.useToken();
547
- const style = {
548
- maxWidth: "none",
549
- background: colorFillAlter,
550
- borderWidth: lineWidth,
551
- borderStyle: lineType,
552
- borderColor: colorBorder,
553
- borderRadius: borderRadiusLG,
554
- padding: 24,
555
- marginBottom: 24
556
- };
557
- return /* @__PURE__ */ jsx("div", { style, children: /* @__PURE__ */ jsxs("div", { className: `flex ${buttonsAlign === "bottom" ? "flex-col" : "flex-row"}`, children: [
558
- /* @__PURE__ */ jsx("div", { className: `${buttonsAlign === "left" ? "flex-grow-0" : "flex-1"}`, children }),
559
- /* @__PURE__ */ jsx("div", { className: `${buttonsAlign === "bottom" ? "text-end" : "text-start"} ml-4`, children: /* @__PURE__ */ jsxs(Space, { children: [
560
- /* @__PURE__ */ jsx(Button, { type: "primary", loading: isConfirming, onClick: onConfirm, children: t("FilterFormWrapper.confirmText") }),
561
- extras?.map((item) => /* @__PURE__ */ jsx(Fragment$1, { children: item.children }, item.key)),
562
- showReset && /* @__PURE__ */ jsx(Button, { onClick: onReset, children: t("FilterFormWrapper.resetText") })
563
- ] }) })
564
- ] }) });
565
- };
566
- FilterFormWrapper_default = FilterFormWrapper;
567
- }
568
- });
569
-
570
- // src/components/filterFormWrapper/index.ts
571
- var init_filterFormWrapper = __esm({
572
- "src/components/filterFormWrapper/index.ts"() {
573
- init_FilterFormWrapper();
574
- }
575
- });
576
- function renderToString(node) {
577
- const container = document.createElement("div");
578
- const root = createRoot(container);
579
- return new Promise((resolve) => {
580
- setTimeout(() => {
581
- flushSync(() => {
582
- root.render(node);
583
- });
584
- resolve(container.innerHTML);
585
- });
586
- });
587
- }
588
- var splitByTags, Highlight, Highlight_default;
589
- var init_Highlight = __esm({
590
- "src/components/highlight/Highlight.tsx"() {
591
- splitByTags = (str) => {
592
- const regex = /(<[^>]*>)/;
593
- return str.split(regex).filter((part) => part !== "");
594
- };
595
- Highlight = (props) => {
596
- const { texts, children } = props;
597
- const [htmlString, setHtmlString] = useState("");
598
- useEffect(() => {
599
- renderToString(children).then((str) => {
600
- const result = splitByTags(str);
601
- for (const text of texts) {
602
- for (let index = 0; index < result.length; index++) {
603
- result[index] = result[index].replace(String(text), `<span style='color: #DC143C;'>${text}</span>`);
604
- }
605
- }
606
- setHtmlString(result.join(""));
607
- });
608
- }, [children, texts]);
609
- return /* @__PURE__ */ jsx("div", { dangerouslySetInnerHTML: { __html: htmlString } });
610
- };
611
- Highlight_default = Highlight;
612
- }
613
- });
614
-
615
- // src/components/highlight/index.ts
616
- var init_highlight = __esm({
617
- "src/components/highlight/index.ts"() {
618
- init_Highlight();
619
- }
620
- });
621
- function usePermission(code, config) {
622
- const { axios: axios2, permissionVersion } = useToolkitsStore((s) => s);
623
- const url4 = permissionVersion !== "v1" /* V1 */ ? "/api/usystem/user/checkV2" : "/api/usystem/user/check";
624
- const permissionCodes = typeof code !== "undefined" ? typeof code === "string" ? [code] : code : [];
625
- const body = { permissions: permissionCodes };
626
- const { data, ...rest } = useSWR6(
627
- permissionCodes.length > 0 ? [url4, body, config] : null,
628
- (args) => axios2.post(...args).then((response) => response.data.data)
629
- );
630
- let newData = true;
631
- if (typeof code === "string") {
632
- newData = data?.has_all ? true : data?.[code] ?? false;
633
- } else if (Array.isArray(code) && code.length > 0) {
634
- newData = permissionCodes.reduce((acc, curr) => {
635
- acc[curr] = data?.has_all ? true : data?.[curr] ?? false;
636
- return acc;
637
- }, {});
638
- }
639
- return {
640
- ...rest,
641
- data: newData
642
- };
643
- }
644
- function useMenuList() {
645
- const { signInPath, axios: axios2, gameId } = useToolkitsStore((s) => s);
646
- return useSWR6(
647
- window.location.pathname !== signInPath ? { url: "/api/usystem/menu/navbar", headers: { [APP_ID_HEADER]: gameId } } : null,
648
- ({ url: url4, headers }) => axios2(url4, { headers }).then((response) => response.data.data)
649
- );
650
- }
651
- var init_hooks2 = __esm({
652
- "src/hooks/index.ts"() {
653
- init_toolkitsProvider();
654
- init_constants();
655
- }
656
- });
657
- var useGames, useFindGame;
658
- var init_hooks3 = __esm({
659
- "src/components/layout/hooks.ts"() {
660
- init_toolkitsProvider();
661
- useGames = () => {
662
- const { axios: axios2, gameApiV2, permissionVersion } = useToolkitsStore((s) => s);
663
- return useSWR6(
664
- permissionVersion !== "v1" /* V1 */ ? gameApiV2 ? "/api/game/list" : "/api/usystem/game/all" : null,
665
- async (url4) => {
666
- if (gameApiV2) {
667
- const response = await axios2(url4);
668
- return response.data.data.list ?? [];
669
- } else {
670
- const response = await axios2(url4);
671
- return response.data.data ?? [];
672
- }
673
- }
674
- );
675
- };
676
- useFindGame = (id2) => {
677
- const { data } = useGames();
678
- const { gameApiV2 } = useToolkitsStore((s) => s);
679
- return data?.find((item) => String(gameApiV2 ? item.game_id : item.id) === String(id2));
680
- };
681
- }
682
- });
683
- var useNavStore;
684
- var init_stores2 = __esm({
685
- "src/components/navMenu/stores.ts"() {
686
- useNavStore = create()(
687
- persist(
688
- (set) => ({
689
- openKeys: [],
690
- setOpenKeys: (keys) => set({ openKeys: keys }),
691
- selectedKeys: [],
692
- setSelectedKeys: (keys) => set({ selectedKeys: keys })
693
- }),
694
- {
695
- name: "nav",
696
- storage: createJSONStorage(() => localStorage),
697
- partialize: (state) => ({
698
- openKeys: state.openKeys,
699
- selectedKeys: state.selectedKeys
700
- })
701
- }
702
- )
703
- );
704
- }
705
- });
706
- function transformItems(items) {
707
- const result = [];
708
- if (items) {
709
- for (let i = 0; i < items.length; i++) {
710
- if (items[i] === null || items[i].type === "divider") {
711
- result[i] = items[i];
712
- } else if (items[i].children) {
713
- const { children, ...rest } = items[i];
714
- result[i] = {
715
- ...rest,
716
- children: transformItems(children)
717
- };
718
- } else {
719
- const { route, label, ...rest } = items[i];
720
- const labelNode = route ? /* @__PURE__ */ jsx(Link, { to: route, children: label }) : label;
721
- result[i] = {
722
- ...rest,
723
- label: labelNode
724
- };
725
- }
726
- }
727
- }
728
- return result;
729
- }
730
- function flatItems(items, result = [], keypath = []) {
731
- for (const item of items) {
732
- const children = item?.children;
733
- if (Array.isArray(children)) {
734
- const keys = item.type !== "group" && item.key ? [...keypath, item.key] : keypath;
735
- flatItems(children, result, keys);
736
- } else if (item) {
737
- result.push(Object.assign(item, { keypath }));
738
- }
739
- }
740
- return result;
741
- }
742
- var init_utils2 = __esm({
743
- "src/components/navMenu/utils.tsx"() {
744
- }
745
- });
746
- var NavMenu, NavMenu_default;
747
- var init_NavMenu = __esm({
748
- "src/components/navMenu/NavMenu.tsx"() {
749
- init_stores2();
750
- init_utils2();
751
- NavMenu = memo(function NavMenu2(props) {
752
- const { items, theme: theme4, loading } = props;
753
- const location = useLocation();
754
- const flattenItems = useMemo(() => flatItems(items ?? []), [items]);
755
- const internalItems = useMemo(() => transformItems(items ?? []), [items]);
756
- const { openKeys, selectedKeys, setOpenKeys, setSelectedKeys } = useNavStore();
757
- const onOpenChange = useCallback(
758
- (keys) => {
759
- const lastOpenKey = keys?.find((key) => openKeys?.indexOf(key) === -1);
760
- const match = flattenItems.find((item) => lastOpenKey === item.key);
761
- setOpenKeys(match?.keypath ?? [lastOpenKey]);
762
- },
763
- [flattenItems, openKeys, setOpenKeys]
764
- );
765
- useEffect(() => {
766
- const match = flattenItems.find((item) => location.pathname === item.route);
767
- if (match) {
768
- const key = match.key;
769
- const keypath = match.keypath;
770
- setSelectedKeys([key]);
771
- setOpenKeys(keypath);
772
- }
773
- }, [flattenItems, location]);
774
- if (loading) {
775
- return /* @__PURE__ */ jsx("div", { className: "flex justify-center items-center", style: { height: "calc(100vh - 64px)" }, children: /* @__PURE__ */ jsx(Spin, {}) });
776
- }
777
- return /* @__PURE__ */ jsx(
778
- Menu,
779
- {
780
- theme: theme4,
781
- style: { borderRight: "none" },
782
- items: internalItems,
783
- mode: "inline",
784
- openKeys,
785
- selectedKeys,
786
- onOpenChange
787
- }
788
- );
789
- });
790
- if (process.env.NODE_ENV === "development") {
791
- NavMenu.displayName = "NavMenu";
792
- }
793
- NavMenu_default = NavMenu;
794
- }
795
- });
796
-
797
- // src/components/navMenu/index.ts
798
- var init_navMenu = __esm({
799
- "src/components/navMenu/index.ts"() {
800
- init_NavMenu();
801
- }
802
- });
803
- var Spin4, RequireGame, RequireGame_default;
804
- var init_RequireGame = __esm({
805
- "src/components/requireGame/RequireGame.tsx"() {
806
- init_layout();
807
- init_locale();
808
- init_toolkitsProvider();
809
- ({ Spin: Spin4 } = Antd2);
810
- RequireGame = ({ children }) => {
811
- const { permissionVersion, gameId, isGlobal } = useToolkitsStore((s) => s);
812
- const { isLoading } = useGames();
813
- const { t } = useTranslation();
814
- if (isLoading) {
815
- return /* @__PURE__ */ jsx(
816
- "div",
817
- {
818
- style: {
819
- display: "flex",
820
- justifyContent: "center",
821
- alignItems: "center",
822
- height: 400
823
- },
824
- children: /* @__PURE__ */ jsx(Spin4, {})
825
- }
826
- );
827
- }
828
- if (permissionVersion === "v1" /* V1 */ || isGlobal) {
829
- return children;
830
- }
831
- if (!gameId) {
832
- return /* @__PURE__ */ jsx(Empty, { image: Empty.PRESENTED_IMAGE_SIMPLE, description: t("RequireGame.description") });
833
- }
834
- return /* @__PURE__ */ jsx(Fragment$1, { children }, gameId);
835
- };
836
- RequireGame_default = RequireGame;
837
- }
838
- });
839
-
840
- // src/components/requireGame/index.ts
841
- var init_requireGame = __esm({
842
- "src/components/requireGame/index.ts"() {
843
- init_RequireGame();
844
- }
845
- });
846
- var UserWidget, UserWidget_default;
847
- var init_UserWidget = __esm({
848
- "src/components/userWidget/UserWidget.tsx"() {
849
- init_locale();
850
- init_toolkitsProvider();
851
- UserWidget = () => {
852
- const { t } = useTranslation();
853
- const navigate = useNavigate();
854
- const { clearToken, getUser, signInPath } = useToolkitsStore((s) => s);
855
- const user = getUser();
856
- const items = [
857
- {
858
- key: "1",
859
- icon: /* @__PURE__ */ jsx(LogoutOutlined, {}),
860
- label: /* @__PURE__ */ jsx(
861
- "a",
862
- {
863
- onClick: () => {
864
- clearToken();
865
- navigate(signInPath);
866
- },
867
- children: t("UserWidget.signOutText")
868
- }
869
- )
870
- }
871
- ];
872
- return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
873
- Dropdown,
874
- {
875
- menu: {
876
- selectable: true,
877
- items
878
- },
879
- placement: "bottomRight",
880
- children: /* @__PURE__ */ jsx(
881
- "a",
882
- {
883
- onClick: (e) => {
884
- e.preventDefault();
885
- },
886
- children: /* @__PURE__ */ jsxs(Space, { align: "center", children: [
887
- /* @__PURE__ */ jsx("span", { children: user?.authorityId }),
888
- /* @__PURE__ */ jsx(UserOutlined, { style: { fontSize: "16px" } })
889
- ] })
890
- }
891
- )
892
- }
893
- ) });
894
- };
895
- UserWidget_default = UserWidget;
896
- }
897
- });
898
-
899
- // src/components/userWidget/index.ts
900
- var init_userWidget = __esm({
901
- "src/components/userWidget/index.ts"() {
902
- init_UserWidget();
903
- }
904
- });
905
- var Text, GameSelect, GameSelect_default;
906
- var init_GameSelect = __esm({
907
- "src/components/layout/GameSelect.tsx"() {
908
- init_locale();
909
- init_toolkitsProvider();
910
- init_hooks3();
911
- ({ Text } = Typography);
912
- GameSelect = (props) => {
913
- const { filter, options } = props;
914
- const { t } = useTranslation();
915
- const { gameApiV2, gameId, setGameId } = useToolkitsStore((s) => s);
916
- const { data, isLoading } = useGames();
917
- const { cache } = useSWRConfig();
918
- const filteredData = data?.filter((item) => filter?.(item) ?? true);
919
- const _options = typeof options === "function" ? options(filteredData) : filteredData?.map((item) => ({
920
- label: item.name,
921
- value: gameApiV2 ? item.game_id : item.id
922
- }));
923
- const onChange = (value) => {
924
- clearCache();
925
- setGameId(value);
926
- };
927
- const clearCache = () => {
928
- for (const key of cache.keys()) {
929
- if (key !== "/api/game/list" && key !== "/api/usystem/game/all") {
930
- cache.delete(key);
931
- }
932
- }
933
- };
934
- useEffect(() => {
935
- if (data && data.length > 0) {
936
- const firstId = gameApiV2 ? data[0].game_id : data[0].id;
937
- if (data.every((item) => String(item.game_id || item.id) !== String(gameId))) {
938
- setGameId(firstId);
939
- }
940
- }
941
- }, [data]);
942
- return /* @__PURE__ */ jsxs(Space, { children: [
943
- /* @__PURE__ */ jsx(Text, { children: t("GameSelect.label") }),
944
- /* @__PURE__ */ jsx(
945
- Select,
946
- {
947
- showSearch: true,
948
- optionFilterProp: "label",
949
- value: gameId,
950
- placeholder: t("GameSelect.placeholder"),
951
- loading: isLoading,
952
- style: { width: "200px" },
953
- options: _options,
954
- onChange
955
- }
956
- )
957
- ] });
958
- };
959
- GameSelect_default = GameSelect;
960
- }
961
- });
962
- var Spin5, theme3, Header, Sider, Content, Layout2, Layout_default;
963
- var init_Layout = __esm({
964
- "src/components/layout/Layout.tsx"() {
965
- init_logo();
966
- init_navMenu();
967
- init_requireGame();
968
- init_toolkitsProvider();
969
- init_userWidget();
970
- init_GameSelect();
971
- ({ Spin: Spin5, theme: theme3 } = Antd2);
972
- ({ Header, Sider, Content } = Antd2.Layout);
973
- Layout2 = (props) => {
974
- const {
975
- collapsible,
976
- isMenuLoading,
977
- items,
978
- headerExtra,
979
- children,
980
- navWidth,
981
- hideGameSelect,
982
- filter,
983
- gameSelectOptions
984
- } = props;
985
- const {
986
- token: { colorBgContainer, colorBorder }
987
- } = theme3.useToken();
988
- const {
989
- permissionVersion,
990
- title: { text, fontSize },
991
- navWidth: globalNavWidth,
992
- collapsible: globalCollapsible,
993
- mainPagePath,
994
- collapsed,
995
- setContext
996
- } = useToolkitsStore((s) => s);
997
- const [internalCollapsed, setInternalCollapsed] = useState(collapsed);
998
- const onCollapse = async () => {
999
- setInternalCollapsed(!internalCollapsed);
1000
- setContext({ collapsed: !internalCollapsed });
1001
- };
1002
- const internalCollapsible = collapsible ?? globalCollapsible ?? false;
1003
- return /* @__PURE__ */ jsxs(Antd2.Layout, { children: [
1004
- /* @__PURE__ */ jsxs(
1005
- Sider,
1006
- {
1007
- collapsible: internalCollapsible,
1008
- theme: "light",
1009
- trigger: null,
1010
- collapsed: internalCollapsed,
1011
- width: navWidth ?? globalNavWidth,
1012
- style: {
1013
- height: "100vh",
1014
- overflowX: "hidden",
1015
- overflowY: "auto",
1016
- borderRightWidth: 1,
1017
- borderRightStyle: "solid",
1018
- borderRightColor: colorBorder
1019
- },
1020
- children: [
1021
- /* @__PURE__ */ jsx(Link, { to: mainPagePath, children: /* @__PURE__ */ jsxs("div", { className: "flex px-6 py-4 font-bold", children: [
1022
- /* @__PURE__ */ jsx(Logo_default, { width: 32, height: 32 }),
1023
- /* @__PURE__ */ jsx(
1024
- "div",
1025
- {
1026
- className: `h-8 flex items-center ml-2 collapse-text ${internalCollapsed ? "opacity-0" : "animate__fadeIn delay-200"} `,
1027
- style: { fontSize },
1028
- children: text
1029
- }
1030
- )
1031
- ] }) }),
1032
- /* @__PURE__ */ jsx(NavMenu_default, { items, loading: isMenuLoading })
1033
- ]
1034
- }
1035
- ),
1036
- /* @__PURE__ */ jsxs(Antd2.Layout, { children: [
1037
- /* @__PURE__ */ jsx(
1038
- Header,
1039
- {
1040
- style: {
1041
- padding: "0 24px",
1042
- background: colorBgContainer
1043
- },
1044
- children: /* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center h-full", children: [
1045
- /* @__PURE__ */ jsxs(Space, { size: "small", split: /* @__PURE__ */ jsx(Divider, { type: "vertical" }), className: "mr-6", children: [
1046
- internalCollapsible && /* @__PURE__ */ jsx(
1047
- Button,
1048
- {
1049
- type: "text",
1050
- icon: internalCollapsed ? /* @__PURE__ */ jsx(MenuUnfoldOutlined, {}) : /* @__PURE__ */ jsx(MenuFoldOutlined, {}),
1051
- style: { fontSize: "16px" },
1052
- onClick: onCollapse
1053
- }
1054
- ),
1055
- permissionVersion !== "v1" /* V1 */ && !hideGameSelect && /* @__PURE__ */ jsx(GameSelect_default, { filter, options: gameSelectOptions }),
1056
- headerExtra?.left?.map((extra) => /* @__PURE__ */ jsx("span", { children: extra.children }, extra.key))
1057
- ] }),
1058
- /* @__PURE__ */ jsxs(Space, { size: "small", split: /* @__PURE__ */ jsx(Divider, { type: "vertical" }), children: [
1059
- headerExtra?.right?.map((extra) => /* @__PURE__ */ jsx("span", { children: extra.children }, extra.key)),
1060
- /* @__PURE__ */ jsx(UserWidget_default, {})
1061
- ] })
1062
- ] })
1063
- }
1064
- ),
1065
- /* @__PURE__ */ jsx(
1066
- Content,
1067
- {
1068
- style: {
1069
- overflow: "auto",
1070
- padding: "24px 16px",
1071
- maxHeight: "calc(100vh - 64px)"
1072
- },
1073
- children: /* @__PURE__ */ jsx(
1074
- Suspense,
1075
- {
1076
- fallback: /* @__PURE__ */ jsx(
1077
- Spin5,
1078
- {
1079
- style: {
1080
- display: "flex",
1081
- justifyContent: "center",
1082
- alignItems: "center",
1083
- height: "200px"
1084
- }
1085
- }
1086
- ),
1087
- children: /* @__PURE__ */ jsx(RequireGame_default, { children })
1088
- }
1089
- )
1090
- }
1091
- )
1092
- ] })
1093
- ] });
1094
- };
1095
- Layout_default = Layout2;
1096
- }
1097
- });
1098
-
1099
- // src/components/layout/types.ts
1100
- var init_types = __esm({
1101
- "src/components/layout/types.ts"() {
1102
- }
1103
- });
1104
-
1105
- // src/components/layout/index.ts
1106
- var init_layout = __esm({
1107
- "src/components/layout/index.ts"() {
1108
- init_hooks3();
1109
- init_Layout();
1110
- init_types();
1111
- }
1112
- });
1113
- var useModalStore;
1114
- var init_stores3 = __esm({
1115
- "src/components/modal/stores.ts"() {
1116
- useModalStore = create((set, get2) => ({
1117
- open: /* @__PURE__ */ new Map(),
1118
- isOpen: (uuid) => get2().open.get(uuid) ?? false,
1119
- show(uuid) {
1120
- set({ open: new Map(get2().open).set(uuid, true) });
1121
- },
1122
- hide(uuid) {
1123
- set({ open: new Map(get2().open).set(uuid, false) });
1124
- },
1125
- hideAll() {
1126
- set({ open: /* @__PURE__ */ new Map() });
1127
- }
1128
- }));
1129
- }
1130
- });
1131
- function useModal(props) {
1132
- const { content, onConfirm, afterOpen, ...modalProps } = props;
1133
- const _id = useMemo(() => ++id, []);
1134
- const { show, hide, isOpen } = useModalStore();
1135
- const open = isOpen(_id);
1136
- const [confirmLoading, setConfirmLoading] = useState(false);
1137
- const isRenderFunction = typeof content === "function";
1138
- const _show = async () => {
1139
- show(_id);
1140
- await afterOpen?.();
1141
- };
1142
- const _hide = () => {
1143
- hide(_id);
1144
- };
1145
- const onCancel = () => {
1146
- _hide();
1147
- };
1148
- const onOk = async () => {
1149
- try {
1150
- setConfirmLoading(true);
1151
- await onConfirm?.();
1152
- _hide();
1153
- } finally {
1154
- setConfirmLoading(false);
1155
- }
1156
- };
1157
- const internalModal = /* @__PURE__ */ jsx(Modal, { ...modalProps, open, confirmLoading, onOk, onCancel, children: isRenderFunction ? content({ hide: _hide }) : content });
1158
- return {
1159
- id: _id,
1160
- show: _show,
1161
- hide: _hide,
1162
- modal: internalModal
1163
- };
1164
- }
1165
- var id;
1166
- var init_modal = __esm({
1167
- "src/components/modal/modal.tsx"() {
1168
- init_stores3();
1169
- id = 0;
1170
- }
1171
- });
1172
- function useFormModal(props) {
1173
- const { content, form, formProps, onConfirm, onSuccess, ...modalProps } = props;
1174
- const [internalExtraValues, setInternalExtraValues] = useState({});
1175
- let [internalForm] = Form.useForm();
1176
- internalForm = form || internalForm;
1177
- const isRenderFunction = typeof content === "function";
1178
- const hanldeConfirm = async () => {
1179
- const values = await internalForm.validateFields();
1180
- await onConfirm?.(values, internalExtraValues);
1181
- onSuccess?.();
1182
- hide();
1183
- };
1184
- const afterClose = () => {
1185
- internalForm.resetFields();
1186
- };
1187
- const { id: id2, show, hide, modal } = useModal({
1188
- ...modalProps,
1189
- content: (operation) => /* @__PURE__ */ jsx(Form, { ...formProps, form: internalForm, children: isRenderFunction ? content(internalExtraValues, operation) : content }),
1190
- onConfirm: hanldeConfirm,
1191
- afterClose
1192
- });
1193
- const onShow = (options) => {
1194
- const { initialValues, extraValues } = options || {};
1195
- if (extraValues) {
1196
- setInternalExtraValues(extraValues);
1197
- }
1198
- if (initialValues) {
1199
- internalForm.setFieldsValue(initialValues);
1200
- }
1201
- show();
1202
- };
1203
- return {
1204
- id: id2,
1205
- show: onShow,
1206
- hide,
1207
- modal
1208
- };
1209
- }
1210
- var init_formModal = __esm({
1211
- "src/components/modal/formModal.tsx"() {
1212
- init_modal();
1213
- }
1214
- });
1215
-
1216
- // src/components/modal/index.ts
1217
- var init_modal2 = __esm({
1218
- "src/components/modal/index.ts"() {
1219
- init_formModal();
1220
- init_modal();
1221
- init_stores3();
1222
- }
1223
- });
1224
- var PermissionButton, PermissionButton_default;
1225
- var init_PermissionButton = __esm({
1226
- "src/components/permissionButton/PermissionButton.tsx"() {
1227
- init_hooks2();
1228
- init_locale();
1229
- PermissionButton = (props) => {
1230
- const { children, code, showLoading, disabled, config, ...restProps } = props;
1231
- const codes = code ? Array.isArray(code) ? code : [code] : [];
1232
- const { data, isLoading } = usePermission(codes, config);
1233
- const { t } = useTranslation();
1234
- if (isLoading) {
1235
- return /* @__PURE__ */ jsx(Button, { loading: showLoading, disabled: !showLoading, ...restProps, children });
1236
- }
1237
- if (typeof data === "boolean" || data && Object.values(data).some(Boolean)) {
1238
- return /* @__PURE__ */ jsx(Button, { disabled, ...restProps, children });
1239
- }
1240
- return /* @__PURE__ */ jsx(Tooltip, { defaultOpen: false, title: t("global.noEntitlement"), children: /* @__PURE__ */ jsx(Button, { disabled: true, ...restProps, children }) });
1241
- };
1242
- PermissionButton_default = PermissionButton;
1243
- }
1244
- });
1245
-
1246
- // src/components/permissionButton/index.ts
1247
- var init_permissionButton = __esm({
1248
- "src/components/permissionButton/index.ts"() {
1249
- init_PermissionButton();
1250
- }
1251
- });
1252
- var useQueryListStore;
1253
- var init_stores4 = __esm({
1254
- "src/components/queryList/stores.ts"() {
1255
- useQueryListStore = create((set, get2) => ({
1256
- keyMap: /* @__PURE__ */ new Map(),
1257
- payloadMap: /* @__PURE__ */ new Map(),
1258
- getPayload(key) {
1259
- return get2().payloadMap.get(key) ?? { page: 1 };
1260
- },
1261
- setPayload(key, payload) {
1262
- set((state) => ({
1263
- payloadMap: new Map(state.payloadMap).set(key, payload)
1264
- }));
1265
- },
1266
- refetch(key, payload) {
1267
- const prevPayload = get2().getPayload(key);
1268
- const nextPayload = { ...prevPayload, ...payload };
1269
- if (isEqual(prevPayload, nextPayload)) {
1270
- get2().mutate(key, void 0);
1271
- } else {
1272
- get2().setPayload(key, nextPayload);
1273
- }
1274
- },
1275
- mutate(key, data, opts) {
1276
- const swrKey = get2().keyMap.get(key);
1277
- return mutate(swrKey, data, opts);
1278
- }
1279
- }));
1280
- }
1281
- });
1282
- var QueryListAction, InternalQueryList, QueryList, QueryList_default;
1283
- var init_QueryList = __esm({
1284
- "src/components/queryList/QueryList.tsx"() {
1285
- init_hooks2();
1286
- init_filterFormWrapper();
1287
- init_locale();
1288
- init_toolkitsProvider();
1289
- init_stores4();
1290
- QueryListAction = /* @__PURE__ */ ((QueryListAction2) => {
1291
- QueryListAction2[QueryListAction2["Confirm"] = 0] = "Confirm";
1292
- QueryListAction2[QueryListAction2["Reset"] = 1] = "Reset";
1293
- QueryListAction2[QueryListAction2["Jump"] = 2] = "Jump";
1294
- QueryListAction2[QueryListAction2["Init"] = 3] = "Init";
1295
- return QueryListAction2;
1296
- })(QueryListAction || {});
1297
- InternalQueryList = (props, ref) => {
1298
- const internalProps = {
1299
- method: "GET",
1300
- defaultSize: 10,
1301
- refreshInterval: 0,
1302
- getTotal: (data2) => data2?.data?.total,
1303
- getDataSource: (data2) => data2?.data?.list,
1304
- ...props
1305
- };
1306
- const {
1307
- url: url4,
1308
- code,
1309
- headers,
1310
- onePage,
1311
- method,
1312
- buttonsAlign,
1313
- showReset,
1314
- defaultSize,
1315
- refreshInterval,
1316
- tableExtra,
1317
- form,
1318
- body,
1319
- params,
1320
- renderForm,
1321
- afterSuccess,
1322
- getTotal,
1323
- getDataSource,
1324
- footer,
1325
- pageSizeOptions,
1326
- ...tableProps
1327
- } = internalProps;
1328
- if (!url4) {
1329
- throw new Error("url property is required");
1330
- }
1331
- const { t } = useTranslation();
1332
- const [_form] = Form.useForm(form);
1333
- const action = useRef(3 /* Init */);
1334
- const { data: accessible, isLoading: isChecking } = usePermission(code);
1335
- const [isValid, setIsValid] = useState(false);
1336
- const { keyMap, getPayload, refetch } = useQueryListStore();
1337
- const { page, size = defaultSize, formValue } = getPayload(url4);
1338
- const payload = { page, size, formValue };
1339
- const _body = typeof body === "function" ? body(payload) : typeof body === "undefined" ? method === "POST" ? {
1340
- ...formValue,
1341
- page: !onePage ? page : void 0,
1342
- size: !onePage ? size : void 0
1343
- } : void 0 : body;
1344
- const _params = typeof params === "function" ? params(payload) : typeof params === "undefined" ? method === "GET" ? {
1345
- ...formValue,
1346
- page: !onePage ? page : void 0,
1347
- size: !onePage ? size : void 0
1348
- } : void 0 : params;
1349
- const _headers = typeof headers === "function" ? headers(_form) : headers;
1350
- const shouldPoll = useRef(false);
1351
- const requestConfig = {
1352
- url: url4,
1353
- method,
1354
- data: _body,
1355
- params: _params,
1356
- headers: _headers
1357
- };
1358
- const key = useMemo(() => {
1359
- if (!accessible || !isValid) {
1360
- return null;
1361
- }
1362
- const serializedKey = unstable_serialize(requestConfig);
1363
- keyMap.set(url4, serializedKey);
1364
- return serializedKey;
1365
- }, [accessible, isValid, url4, requestConfig]);
1366
- const { axios: axios2 } = useToolkitsStore((s) => s);
1367
- const { data, isLoading } = useSWR6(
1368
- key,
1369
- async () => {
1370
- const response = await axios2.request(requestConfig);
1371
- return response.data;
1372
- },
1373
- {
1374
- shouldRetryOnError: false,
1375
- revalidateOnFocus: false,
1376
- refreshInterval: shouldPoll.current ? refreshInterval : 0,
1377
- onSuccess(_data) {
1378
- shouldPoll.current = true;
1379
- afterSuccess?.(action.current, _form, _data);
1380
- }
1381
- }
1382
- );
1383
- const dataSource = getDataSource(data, _form);
1384
- const total = getTotal(data);
1385
- const pagination = !onePage && {
1386
- pageSizeOptions,
1387
- showSizeChanger: true,
1388
- showQuickJumper: true,
1389
- current: page,
1390
- pageSize: size,
1391
- total,
1392
- onChange: async (currentPage, currentSize) => {
1393
- action.current = 2 /* Jump */;
1394
- refetch(url4, {
1395
- page: currentPage,
1396
- size: currentSize
1397
- });
1398
- }
1399
- };
1400
- const onConfirm = async () => {
1401
- action.current = 0 /* Confirm */;
1402
- try {
1403
- await _form.validateFields();
1404
- setIsValid(true);
1405
- refetch(url4, {
1406
- page: 1,
1407
- formValue: _form.getFieldsValue()
1408
- });
1409
- } catch (error) {
1410
- setIsValid(false);
1411
- }
1412
- };
1413
- const onReset = async () => {
1414
- action.current = 1 /* Reset */;
1415
- _form.resetFields();
1416
- try {
1417
- await _form.validateFields({ validateOnly: true });
1418
- setIsValid(true);
1419
- refetch(url4, {
1420
- page: 1,
1421
- formValue: _form.getFieldsValue()
1422
- });
1423
- } catch (error) {
1424
- setIsValid(false);
1425
- }
1426
- };
1427
- useEffect(() => {
1428
- const init = async () => {
1429
- if (!accessible) {
1430
- return;
1431
- }
1432
- try {
1433
- _form.resetFields();
1434
- const value = await _form.validateFields({ validateOnly: true });
1435
- refetch(url4, {
1436
- page: 1,
1437
- formValue: value
1438
- });
1439
- setIsValid(true);
1440
- } catch (err) {
1441
- setIsValid(false);
1442
- }
1443
- };
1444
- setTimeout(() => {
1445
- init();
1446
- }, 300);
1447
- }, [accessible, form]);
1448
- useImperativeHandle(ref, () => ({
1449
- data,
1450
- dataSource,
1451
- form: _form
1452
- }));
1453
- if (isChecking) {
1454
- return /* @__PURE__ */ jsx(
1455
- Spin,
1456
- {
1457
- style: {
1458
- display: "flex",
1459
- justifyContent: "center",
1460
- alignItems: "center",
1461
- height: 300
1462
- }
1463
- }
1464
- );
1465
- }
1466
- if (!accessible) {
1467
- return /* @__PURE__ */ jsx(Result, { status: 403, subTitle: t("global.noEntitlement") });
1468
- }
1469
- const formRenderer = typeof renderForm === "function" ? /* @__PURE__ */ jsx(
1470
- FilterFormWrapper_default,
1471
- {
1472
- showReset,
1473
- buttonsAlign,
1474
- isConfirming: isLoading,
1475
- onReset,
1476
- onConfirm,
1477
- children: cloneElement(renderForm(_form), {
1478
- onKeyUp: (e) => {
1479
- if (e.key === "Enter") {
1480
- onConfirm();
1481
- }
1482
- }
1483
- })
1484
- }
1485
- ) : (
1486
- // 屏蔽 Form 组件的警告(Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?)
1487
- /* @__PURE__ */ jsx(Form, { form: _form })
1488
- );
1489
- const renderFooter = footer && (() => footer(data));
1490
- return /* @__PURE__ */ jsxs("div", { children: [
1491
- formRenderer,
1492
- typeof tableExtra === "function" ? tableExtra(_form, data) : tableExtra,
1493
- /* @__PURE__ */ jsx(
1494
- Table,
1495
- {
1496
- ...tableProps,
1497
- dataSource,
1498
- loading: isLoading,
1499
- pagination,
1500
- footer: renderFooter
1501
- }
1502
- )
1503
- ] });
1504
- };
1505
- QueryList = forwardRef(InternalQueryList);
1506
- QueryList_default = QueryList;
1507
- }
1508
- });
1509
-
1510
- // src/components/queryList/index.ts
1511
- var init_queryList = __esm({
1512
- "src/components/queryList/index.ts"() {
1513
- init_QueryList();
1514
- init_stores4();
1515
- }
1516
- });
1517
-
1518
- // src/features/menu/constants/index.ts
1519
- var url;
1520
- var init_constants2 = __esm({
1521
- "src/features/menu/constants/index.ts"() {
1522
- url = "/api/usystem/menu/list";
1523
- }
1524
- });
1525
- function useCreateMenu() {
1526
- const { axios: axios2 } = useToolkitsStore((s) => s);
1527
- return useSWRMutation2(
1528
- "/api/usystem/menu/set",
1529
- (url4, { arg }) => axios2.post(url4, { ...arg, id: 0, is_model: true })
1530
- );
1531
- }
1532
- function useUpdateMenu() {
1533
- const { axios: axios2 } = useToolkitsStore((s) => s);
1534
- return useSWRMutation2(
1535
- "/api/usystem/menu/set",
1536
- (url4, { arg }) => axios2.post(url4, { ...arg, is_model: true })
1537
- );
1538
- }
1539
- function useRemoveMenu() {
1540
- const { axios: axios2 } = useToolkitsStore((s) => s);
1541
- return useSWRMutation2(
1542
- "/api/usystem/menu/delete",
1543
- (url4, { arg }) => axios2.post(url4, null, { params: { id: arg } })
1544
- );
1545
- }
1546
- var init_hooks4 = __esm({
1547
- "src/features/menu/hooks/index.ts"() {
1548
- init_toolkitsProvider();
1549
- }
1550
- });
1551
-
1552
- // src/features/menu/index.ts
1553
- var init_menu = __esm({
1554
- "src/features/menu/index.ts"() {
1555
- init_constants2();
1556
- init_hooks4();
1557
- }
1558
- });
1559
-
1560
- // src/pages/menu/menuItemList/index.tsx
1561
- var menuItemList_exports = {};
1562
- __export(menuItemList_exports, {
1563
- default: () => menuItemList_default
1564
- });
1565
- var MenuItemList, menuItemList_default;
1566
- var init_menuItemList = __esm({
1567
- "src/pages/menu/menuItemList/index.tsx"() {
1568
- init_highlight();
1569
- init_locale();
1570
- init_queryList();
1571
- init_toolkitsProvider();
1572
- init_menu();
1573
- init_hooks4();
1574
- init_hooks2();
1575
- MenuItemList = withContext(
1576
- () => {
1577
- const { t } = useTranslation();
1578
- const { message } = App.useApp();
1579
- const remove = useRemoveMenu();
1580
- const { refetch } = useQueryListStore();
1581
- const { mutate: mutate2 } = useMenuList();
1582
- const navigate = useNavigate();
1583
- const columns = [
1584
- {
1585
- title: "\u83DC\u5355\u540D\u79F0",
1586
- dataIndex: "category",
1587
- key: "category"
1588
- },
1589
- {
1590
- title: "\u524D\u7AEF\u8DEF\u7531",
1591
- dataIndex: "front_route"
1592
- },
1593
- {
1594
- title: "Order",
1595
- dataIndex: "order"
1596
- },
1597
- {
1598
- title: "Is Common",
1599
- dataIndex: "is_common",
1600
- key: "is_common",
1601
- render: (value) => value ? "\u662F" : "\u5426"
1602
- },
1603
- {
1604
- title: "\u6A21\u677F\u540D\u79F0",
1605
- dataIndex: "model_name",
1606
- key: "model_name"
1607
- },
1608
- // {
1609
- // title: '是否预设',
1610
- // dataIndex: 'is_model',
1611
- // key: 'is_model',
1612
- // render: value => (value ? '否' : '是'),
1613
- // },
1614
- {
1615
- title: "\u64CD\u4F5C",
1616
- key: "action",
1617
- width: 150,
1618
- align: "center",
1619
- render(_, record) {
1620
- if (record.is_model) {
1621
- return /* @__PURE__ */ jsxs(Space, { size: "small", children: [
1622
- /* @__PURE__ */ jsx(
1623
- Button,
1624
- {
1625
- type: "link",
1626
- onClick: () => {
1627
- navigate(`./update/${record.id}`);
1628
- },
1629
- children: t("global.update")
1630
- }
1631
- ),
1632
- /* @__PURE__ */ jsx(
1633
- Popconfirm,
1634
- {
1635
- title: "\u5220\u9664\u83DC\u5355",
1636
- placement: "topRight",
1637
- description: /* @__PURE__ */ jsxs(Highlight_default, { texts: [record.category], children: [
1638
- "\u786E\u5B9A\u8981\u5220\u9664\u83DC\u5355 ",
1639
- record.category,
1640
- " \u5417\uFF1F"
1641
- ] }),
1642
- onConfirm: async () => {
1643
- await remove.trigger(record.id);
1644
- refetch(url);
1645
- mutate2();
1646
- message.success("\u5220\u9664\u6210\u529F");
1647
- },
1648
- children: /* @__PURE__ */ jsx(Button, { danger: true, type: "link", size: "small", children: t("global.delete") })
1649
- }
1650
- )
1651
- ] });
1652
- }
1653
- return null;
1654
- }
1655
- }
1656
- ];
1657
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
1658
- Card,
1659
- {
1660
- title: "\u83DC\u5355\u7BA1\u7406",
1661
- extra: /* @__PURE__ */ jsx(
1662
- Button,
1663
- {
1664
- type: "primary",
1665
- onClick: () => {
1666
- navigate("./create");
1667
- },
1668
- children: "\u521B\u5EFA\u83DC\u5355\u9879"
1669
- }
1670
- ),
1671
- children: /* @__PURE__ */ jsx(
1672
- QueryList_default,
1673
- {
1674
- onePage: true,
1675
- code: "9900001",
1676
- rowKey: "id",
1677
- url,
1678
- columns,
1679
- getDataSource: (response) => response
1680
- }
1681
- )
1682
- }
1683
- ) });
1684
- },
1685
- { isGlobal: true }
1686
- );
1687
- menuItemList_default = MenuItemList;
1688
- }
1689
- });
1690
-
1691
- // src/pages/menu/createMenuItem/index.tsx
1692
- var createMenuItem_exports = {};
1693
- __export(createMenuItem_exports, {
1694
- default: () => createMenuItem_default
1695
- });
1696
- var CreateMenuItem, createMenuItem_default;
1697
- var init_createMenuItem = __esm({
1698
- "src/pages/menu/createMenuItem/index.tsx"() {
1699
- init_toolkitsProvider();
1700
- init_constants();
1701
- init_menu();
1702
- init_hooks2();
1703
- CreateMenuItem = withContext(
1704
- () => {
1705
- const { message } = App.useApp();
1706
- const [form] = Form.useForm();
1707
- const navigate = useNavigate();
1708
- const { trigger } = useCreateMenu();
1709
- const { mutate: mutate2 } = useMenuList();
1710
- const onFinish = async (values) => {
1711
- const { permissions, front_route, ...rest } = values;
1712
- await trigger({
1713
- ...rest,
1714
- front_route: FRONTEND_ROUTE_PREFIX + front_route,
1715
- permissions: permissions ? JSON.parse(permissions) : void 0
1716
- });
1717
- mutate2();
1718
- message.success("\u521B\u5EFA\u6210\u529F", 0.8, () => navigate("..", { relative: "route" }));
1719
- };
1720
- return /* @__PURE__ */ jsx(Card, { title: "\u521B\u5EFA\u83DC\u5355\u9879", children: /* @__PURE__ */ jsxs(
1721
- Form,
1722
- {
1723
- scrollToFirstError: true,
1724
- form,
1725
- labelCol: { flex: "120px" },
1726
- initialValues: { is_common: false, is_model: false, order: 0 },
1727
- onFinish,
1728
- children: [
1729
- /* @__PURE__ */ jsx(Form.Item, { label: "\u83DC\u5355\u9879\u540D\u79F0", name: "category", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, {}) }),
1730
- /* @__PURE__ */ jsx(Form.Item, { label: "\u524D\u7AEF\u8DEF\u7531", name: "front_route", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, { prefix: FRONTEND_ROUTE_PREFIX }) }),
1731
- /* @__PURE__ */ jsx(Form.Item, { label: "\u6A21\u677F\u540D\u79F0", name: "model_name", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, {}) }),
1732
- /* @__PURE__ */ jsx(Form.Item, { label: "Is Common", name: "is_common", rules: [{ required: true }], valuePropName: "checked", children: /* @__PURE__ */ jsx(Switch, {}) }),
1733
- /* @__PURE__ */ jsx(Form.Item, { label: "Order", name: "order", children: /* @__PURE__ */ jsx(InputNumber, { className: "w-full" }) }),
1734
- /* @__PURE__ */ jsx(Form.Item, { label: "\u63A5\u53E3\u89C4\u5219", name: "permissions", children: /* @__PURE__ */ jsx(
1735
- Editor,
1736
- {
1737
- theme: "vs-dark",
1738
- height: "300px",
1739
- language: "json",
1740
- options: {
1741
- minimap: {
1742
- enabled: false
1743
- }
1744
- }
1745
- }
1746
- ) }),
1747
- /* @__PURE__ */ jsx(Form.Item, { label: "Schema", name: "scheme", rules: [{ required: true }], children: /* @__PURE__ */ jsx(
1748
- Editor,
1749
- {
1750
- theme: "vs-dark",
1751
- height: "600px",
1752
- language: "json",
1753
- options: {
1754
- minimap: {
1755
- enabled: false
1756
- }
1757
- }
1758
- }
1759
- ) }),
1760
- /* @__PURE__ */ jsx(Form.Item, { label: "Ext", name: "ext", children: /* @__PURE__ */ jsx(Input.TextArea, { rows: 5 }) }),
1761
- /* @__PURE__ */ jsx(Form.Item, { children: /* @__PURE__ */ jsxs("div", { className: "flex justify-center gap-8", children: [
1762
- /* @__PURE__ */ jsx(Button, { type: "primary", htmlType: "submit", children: "\u63D0\u4EA4" }),
1763
- /* @__PURE__ */ jsx(
1764
- Button,
1765
- {
1766
- onClick: () => {
1767
- navigate("..", { relative: "path" });
1768
- },
1769
- children: "\u53D6\u6D88"
1770
- }
1771
- )
1772
- ] }) })
1773
- ]
1774
- }
1775
- ) });
1776
- },
1777
- { isGlobal: true }
1778
- );
1779
- createMenuItem_default = CreateMenuItem;
1780
- }
1781
- });
1782
-
1783
- // src/pages/menu/updateMenuItem/index.tsx
1784
- var updateMenuItem_exports = {};
1785
- __export(updateMenuItem_exports, {
1786
- default: () => updateMenuItem_default
1787
- });
1788
- var EditMenuItem, updateMenuItem_default;
1789
- var init_updateMenuItem = __esm({
1790
- "src/pages/menu/updateMenuItem/index.tsx"() {
1791
- init_toolkitsProvider();
1792
- init_constants();
1793
- init_menu();
1794
- init_hooks2();
1795
- EditMenuItem = withContext(
1796
- () => {
1797
- const { message } = App.useApp();
1798
- const [form] = Form.useForm();
1799
- const navigate = useNavigate();
1800
- const { trigger } = useUpdateMenu();
1801
- const params = useParams();
1802
- const { mutate: mutate2 } = useMenuList();
1803
- const { axios: axios2 } = useToolkitsStore((s) => s);
1804
- const { data, isLoading } = useSWR6(
1805
- `/api/usystem/menu/info?id=${params.id}`,
1806
- (url4) => axios2(url4).then((response) => response.data.data)
1807
- );
1808
- const onFinish = async (values) => {
1809
- const { permissions, front_route, ...rest } = values;
1810
- await trigger({
1811
- ...rest,
1812
- permissions: permissions ? JSON.parse(permissions) : void 0,
1813
- front_route: FRONTEND_ROUTE_PREFIX + front_route,
1814
- id: +params.id
1815
- });
1816
- mutate2();
1817
- message.success("\u66F4\u65B0\u6210\u529F", 0.8, () => navigate("../..", { relative: "route" }));
1818
- };
1819
- useEffect(() => {
1820
- const { permissions, front_route, ...rest } = data ?? {};
1821
- const permissionsString = JSON.stringify(permissions || [], null, 2);
1822
- const frontRoute = front_route?.replace(FRONTEND_ROUTE_PREFIX, "");
1823
- form.setFieldsValue({
1824
- ...rest,
1825
- permissions: permissionsString,
1826
- front_route: frontRoute
1827
- });
1828
- }, [data]);
1829
- return /* @__PURE__ */ jsx(Card, { title: "\u66F4\u65B0\u83DC\u5355\u9879", loading: isLoading, children: /* @__PURE__ */ jsxs(
1830
- Form,
1831
- {
1832
- scrollToFirstError: true,
1833
- form,
1834
- labelCol: { flex: "120px" },
1835
- initialValues: { is_common: false, is_model: false, order: 0 },
1836
- onFinish,
1837
- children: [
1838
- /* @__PURE__ */ jsx(Form.Item, { label: "\u83DC\u5355\u9879\u540D\u79F0", name: "category", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, {}) }),
1839
- /* @__PURE__ */ jsx(Form.Item, { label: "\u524D\u7AEF\u8DEF\u7531", name: "front_route", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, { prefix: FRONTEND_ROUTE_PREFIX }) }),
1840
- /* @__PURE__ */ jsx(Form.Item, { label: "\u6A21\u677F\u540D\u79F0", name: "model_name", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, {}) }),
1841
- /* @__PURE__ */ jsx(Form.Item, { label: "Is Common", name: "is_common", rules: [{ required: true }], valuePropName: "checked", children: /* @__PURE__ */ jsx(Switch, {}) }),
1842
- /* @__PURE__ */ jsx(Form.Item, { label: "Order", name: "order", children: /* @__PURE__ */ jsx(InputNumber, { className: "w-full" }) }),
1843
- /* @__PURE__ */ jsx(Form.Item, { label: "\u63A5\u53E3\u89C4\u5219", name: "permissions", children: /* @__PURE__ */ jsx(
1844
- Editor,
1845
- {
1846
- theme: "vs-dark",
1847
- height: "300px",
1848
- language: "json",
1849
- options: {
1850
- minimap: {
1851
- enabled: false
1852
- }
1853
- }
1854
- }
1855
- ) }),
1856
- /* @__PURE__ */ jsx(Form.Item, { label: "Schema", name: "scheme", rules: [{ required: true }], children: /* @__PURE__ */ jsx(
1857
- Editor,
1858
- {
1859
- theme: "vs-dark",
1860
- height: "600px",
1861
- language: "json",
1862
- options: {
1863
- minimap: {
1864
- enabled: false
1865
- }
1866
- }
1867
- }
1868
- ) }),
1869
- /* @__PURE__ */ jsx(Form.Item, { label: "Ext", name: "ext", children: /* @__PURE__ */ jsx(Input.TextArea, { rows: 5 }) }),
1870
- /* @__PURE__ */ jsx(Form.Item, { children: /* @__PURE__ */ jsxs("div", { className: "flex justify-center gap-8", children: [
1871
- /* @__PURE__ */ jsx(Button, { type: "primary", htmlType: "submit", children: "\u63D0\u4EA4" }),
1872
- /* @__PURE__ */ jsx(
1873
- Button,
1874
- {
1875
- onClick: () => {
1876
- navigate("../..", { relative: "path" });
1877
- },
1878
- children: "\u53D6\u6D88"
1879
- }
1880
- )
1881
- ] }) })
1882
- ]
1883
- }
1884
- ) });
1885
- },
1886
- { isGlobal: true }
1887
- );
1888
- updateMenuItem_default = EditMenuItem;
1889
- }
1890
- });
1891
- function useAllPermissions() {
1892
- const { axios: axios2 } = useToolkitsStore((s) => s);
1893
- return useSWR6(
1894
- "/api/usystem/user/allPermssions",
1895
- (url4) => axios2.get(url4).then((response) => response.data.data)
1896
- );
1897
- }
1898
- function useAllPermissionsV2() {
1899
- const { axios: axios2 } = useToolkitsStore((s) => s);
1900
- return useSWR6(
1901
- "/api/usystem/user/allPermissionsV2",
1902
- (url4) => axios2.get(url4).then((response) => response.data.data)
1903
- );
1904
- }
1905
- function useAllRoles() {
1906
- const { axios: axios2 } = useToolkitsStore((s) => s);
1907
- return useSWR6(
1908
- "/api/usystem/role/all",
1909
- (url4) => axios2.get(url4).then((response) => response.data.data)
1910
- );
1911
- }
1912
- function useRole(name) {
1913
- const { axios: axios2 } = useToolkitsStore((s) => s);
1914
- const permissionVersion = useToolkitsStore((state) => state.permissionVersion);
1915
- return useSWR6(
1916
- `/api/usystem/role/${permissionVersion === "v2" /* V2 */ ? "infoV2" : "info"}?name=${name}`,
1917
- (url4) => axios2.get(url4).then((response) => response.data.data)
1918
- );
1919
- }
1920
- function useCreateRole() {
1921
- const { axios: axios2, permissionVersion } = useToolkitsStore((s) => s);
1922
- return useSWRMutation2(
1923
- permissionVersion === "v2" /* V2 */ ? "/api/usystem/role/createV2" : "/api/usystem/role/create",
1924
- (url4, {
1925
- arg
1926
- }) => axios2.post(url4, arg)
1927
- );
1928
- }
1929
- function useUpdateRole() {
1930
- const { axios: axios2, permissionVersion } = useToolkitsStore((s) => s);
1931
- return useSWRMutation2(
1932
- permissionVersion === "v2" /* V2 */ ? "/api/usystem/role/updateV2" : "/api/usystem/role/update",
1933
- (url4, {
1934
- arg
1935
- }) => axios2.post(url4, arg)
1936
- );
1937
- }
1938
- function useRemoveRole() {
1939
- const { axios: axios2 } = useToolkitsStore((s) => s);
1940
- return useSWRMutation2(
1941
- "/api/usystem/role/delete",
1942
- (url4, {
1943
- arg
1944
- }) => axios2.post(url4, arg)
1945
- );
1946
- }
1947
- function useCreateUser() {
1948
- const { axios: axios2 } = useToolkitsStore((s) => s);
1949
- return useSWRMutation2(
1950
- "/api/usystem/user/create",
1951
- (url4, {
1952
- arg
1953
- }) => axios2.post(url4, arg)
1954
- );
1955
- }
1956
- function useUpdateUser() {
1957
- const { axios: axios2 } = useToolkitsStore((s) => s);
1958
- return useSWRMutation2(
1959
- "/api/usystem/user/update",
1960
- (url4, {
1961
- arg
1962
- }) => axios2.post(url4, arg)
1963
- );
1964
- }
1965
- function useRemoveUser() {
1966
- const { axios: axios2 } = useToolkitsStore((s) => s);
1967
- return useSWRMutation2(
1968
- "/api/usystem/user/delete",
1969
- (url4, {
1970
- arg
1971
- }) => axios2.post(url4, arg)
1972
- );
1973
- }
1974
- var Text2, useCreateRoleModal, useUpdateRoleModal, useCreateUserModal, useUpdateUserModal, GroupSelect, GameSelect2, UserModalContentV2, useCreateUserModalV2, useUpdateUserModalV2;
1975
- var init_hooks5 = __esm({
1976
- "src/features/permission/hooks/index.tsx"() {
1977
- init_locale();
1978
- init_modal2();
1979
- init_toolkitsProvider();
1980
- init_constants();
1981
- init_components();
1982
- ({ Text: Text2 } = Typography);
1983
- useCreateRoleModal = ({ onSuccess } = {}) => {
1984
- const { t } = useTranslation();
1985
- const { trigger } = useCreateRole();
1986
- return useFormModal({
1987
- title: t("Role.createTitle"),
1988
- width: "50vw",
1989
- formProps: {
1990
- layout: "vertical"
1991
- },
1992
- content: /* @__PURE__ */ jsxs(Fragment, { children: [
1993
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.name"), name: "name", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, { addonBefore: "role_" }) }),
1994
- /* @__PURE__ */ jsx(Form.Item, { name: "permissions", children: /* @__PURE__ */ jsx(permissionList_default, {}) })
1995
- ] }),
1996
- onConfirm: async (values) => {
1997
- await trigger({
1998
- name: `role_${values.name}`,
1999
- permissions: values.permissions
2000
- });
2001
- onSuccess?.();
2002
- }
2003
- });
2004
- };
2005
- useUpdateRoleModal = ({ onSuccess } = {}) => {
2006
- const { t } = useTranslation();
2007
- const { trigger } = useUpdateRole();
2008
- return useFormModal({
2009
- title: t("Role.updateTitle"),
2010
- width: "50vw",
2011
- formProps: {
2012
- layout: "vertical"
2013
- },
2014
- content: /* @__PURE__ */ jsxs(Fragment, { children: [
2015
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.name"), name: "name", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, { disabled: true, addonBefore: "role_" }) }),
2016
- /* @__PURE__ */ jsx(Form.Item, { name: "permissions", children: /* @__PURE__ */ jsx(permissionList_default, {}) })
2017
- ] }),
2018
- onConfirm: async (values, extraValues) => {
2019
- await trigger({
2020
- id: extraValues?.id,
2021
- name: `role_${values.name}`,
2022
- permissions: values.permissions
2023
- });
2024
- onSuccess?.();
2025
- }
2026
- });
2027
- };
2028
- useCreateUserModal = ({ onSuccess } = {}) => {
2029
- const { t } = useTranslation();
2030
- const { data: roles, isLoading } = useAllRoles();
2031
- const { trigger } = useCreateUser();
2032
- return useFormModal({
2033
- title: t("User.createTitle"),
2034
- width: 600,
2035
- formProps: {
2036
- autoComplete: "off",
2037
- labelCol: { flex: "80px" }
2038
- },
2039
- content: /* @__PURE__ */ jsxs(Fragment, { children: [
2040
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.name"), name: "name", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, {}) }),
2041
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.role"), name: "roles", children: /* @__PURE__ */ jsx(
2042
- Select,
2043
- {
2044
- allowClear: true,
2045
- showSearch: true,
2046
- mode: "multiple",
2047
- loading: isLoading,
2048
- optionFilterProp: "label",
2049
- options: roles?.map((role) => ({ label: role.name, value: role.name }))
2050
- }
2051
- ) })
2052
- ] }),
2053
- onConfirm: async (values) => {
2054
- await trigger(values);
2055
- onSuccess?.();
2056
- }
2057
- });
2058
- };
2059
- useUpdateUserModal = ({ onSuccess } = {}) => {
2060
- const { t } = useTranslation();
2061
- const { data: roles, isLoading } = useAllRoles();
2062
- const { trigger } = useUpdateUser();
2063
- return useFormModal({
2064
- title: t("User.updateTitle"),
2065
- width: 600,
2066
- formProps: {
2067
- autoComplete: "off",
2068
- labelCol: { flex: "80px" }
2069
- },
2070
- content: /* @__PURE__ */ jsxs(Fragment, { children: [
2071
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.name"), name: "name", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, { disabled: true }) }),
2072
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.role"), name: "roles", children: /* @__PURE__ */ jsx(
2073
- Select,
2074
- {
2075
- allowClear: true,
2076
- showSearch: true,
2077
- mode: "multiple",
2078
- loading: isLoading,
2079
- optionFilterProp: "label",
2080
- options: roles?.map((role) => ({ label: role.name, value: role.name }))
2081
- }
2082
- ) })
2083
- ] }),
2084
- onConfirm: async (values, extraValues) => {
2085
- await trigger({ ...values, id: extraValues?.id });
2086
- onSuccess?.();
2087
- }
2088
- });
2089
- };
2090
- GroupSelect = (props) => {
2091
- const { onChange, ...rest } = props;
2092
- const { axios: axios2 } = useToolkitsStore((s) => s);
2093
- const { data, isLoading } = useSWR6(
2094
- "/api/enum/get?enum=game_group&type=all",
2095
- (path) => axios2.get(path).then((response) => response.data.data)
2096
- );
2097
- const options = [{ label: "\u901A\u7528", value: WILDCARD }].concat(
2098
- data?.map((group) => ({ label: group, value: group })) ?? []
2099
- );
2100
- const onValueChange = (value) => {
2101
- if (last(value) === WILDCARD) {
2102
- onChange?.([WILDCARD]);
2103
- } else if (first(value) === WILDCARD) {
2104
- onChange?.(value.slice(1));
2105
- } else {
2106
- onChange?.(value);
2107
- }
2108
- };
2109
- return /* @__PURE__ */ jsx(
2110
- Select,
2111
- {
2112
- ...rest,
2113
- allowClear: true,
2114
- showSearch: true,
2115
- mode: "tags",
2116
- optionFilterProp: "label",
2117
- loading: isLoading,
2118
- options,
2119
- onChange: onValueChange
2120
- }
2121
- );
2122
- };
2123
- GameSelect2 = (props) => {
2124
- const { groups, onChange, ...rest } = props;
2125
- const { axios: axios2 } = useToolkitsStore((s) => s);
2126
- const { data, isLoading } = useSWR6(
2127
- groups?.length ? `/api/enum/game_group/get_game_ids?game_groups=${groups.join(",")}` : null,
2128
- (path) => axios2.get(path).then((response) => response.data.data.list)
2129
- );
2130
- const options = data?.map((group) => ({ label: group.name, value: group.id }));
2131
- const onValueChange = (value) => {
2132
- if (last(value) === WILDCARD) {
2133
- onChange?.([WILDCARD]);
2134
- } else if (first(value) === WILDCARD) {
2135
- onChange?.(value.slice(1));
2136
- } else {
2137
- onChange?.(value);
2138
- }
2139
- };
2140
- return /* @__PURE__ */ jsx(
2141
- Select,
2142
- {
2143
- ...rest,
2144
- allowClear: true,
2145
- showSearch: true,
2146
- optionFilterProp: "label",
2147
- mode: "tags",
2148
- loading: isLoading,
2149
- options,
2150
- onChange: onValueChange
2151
- }
2152
- );
2153
- };
2154
- UserModalContentV2 = ({ isCreate }) => {
2155
- const { t } = useTranslation();
2156
- const { axios: axios2 } = useToolkitsStore((s) => s);
2157
- const { data: roles, isLoading: isRolesLoading } = useAllRoles();
2158
- const { data: groups, isLoading: isGroupsLoading } = useSWR6(
2159
- "/api/enum/get?enum=game_group&type=all",
2160
- (path) => axios2.get(path).then((response) => response.data.data)
2161
- );
2162
- [{ label: "\u901A\u7528", value: WILDCARD }].concat(
2163
- groups?.map((group) => ({ label: group, value: group })) ?? []
2164
- );
2165
- return /* @__PURE__ */ jsxs(Fragment, { children: [
2166
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.name"), name: "name", rules: [{ required: true }], children: /* @__PURE__ */ jsx(Input, { disabled: !isCreate }) }),
2167
- /* @__PURE__ */ jsx(Form.List, { name: "permissions", children: (fields, { add, remove }) => /* @__PURE__ */ jsxs(Row, { gutter: 8, children: [
2168
- /* @__PURE__ */ jsx(Col, { span: 8, className: "text-center mb-4", children: /* @__PURE__ */ jsx(Text2, { strong: true, children: t("global.projectGroup") }) }),
2169
- /* @__PURE__ */ jsx(Col, { span: 10, className: "text-center mb-4", children: /* @__PURE__ */ jsx(Text2, { strong: true, children: t("global.game") }) }),
2170
- /* @__PURE__ */ jsx(Col, { span: 6, className: "text-center mb-4", children: /* @__PURE__ */ jsx(Text2, { strong: true, children: t("global.role") }) }),
2171
- fields.map((field) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
2172
- /* @__PURE__ */ jsx(Col, { span: 8, children: /* @__PURE__ */ jsx(Form.Item, { noStyle: true, shouldUpdate: true, children: ({ setFieldValue }) => /* @__PURE__ */ jsx(Form.Item, { name: [field.name, "game_group"], children: /* @__PURE__ */ jsx(
2173
- GroupSelect,
2174
- {
2175
- onChange: () => {
2176
- setFieldValue(["permissions", field.name, "game_ids"], []);
2177
- }
2178
- }
2179
- ) }) }) }),
2180
- /* @__PURE__ */ jsx(Col, { span: 10, children: /* @__PURE__ */ jsx(
2181
- Form.Item,
2182
- {
2183
- noStyle: true,
2184
- shouldUpdate: (prevValues, nextValues) => prevValues.permissions[field.name]?.game_group !== nextValues.permissions[field.name]?.game_group,
2185
- children: ({ getFieldValue }) => {
2186
- const _groups = getFieldValue(["permissions", field.name, "game_group"]);
2187
- return /* @__PURE__ */ jsx(
2188
- Form.Item,
2189
- {
2190
- name: [field.name, "game_ids"],
2191
- dependencies: [["permissions", field.name, "game_group"]],
2192
- rules: [{ required: _groups?.length, message: "\u8BF7\u9009\u62E9\u6E38\u620F" }],
2193
- children: /* @__PURE__ */ jsx(GameSelect2, { groups: _groups })
2194
- }
2195
- );
2196
- }
2197
- }
2198
- ) }),
2199
- /* @__PURE__ */ jsx(Col, { span: 6, children: /* @__PURE__ */ jsxs("div", { className: "flex", children: [
2200
- /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
2201
- Form.Item,
2202
- {
2203
- name: [field.name, "role"],
2204
- rules: [
2205
- { required: true, message: "\u8BF7\u9009\u62E9\u89D2\u8272" },
2206
- ({ getFieldValue }) => ({
2207
- validator(_rule, value) {
2208
- const items = getFieldValue("permissions");
2209
- const otherItems = items.filter((item, index) => !!item && index !== field.name);
2210
- if (otherItems.some((item) => item.role === value)) {
2211
- return Promise.reject(new Error("\u8BF7\u52FF\u91CD\u590D\u9009\u62E9\u89D2\u8272"));
2212
- }
2213
- return Promise.resolve();
2214
- }
2215
- })
2216
- ],
2217
- children: /* @__PURE__ */ jsx(
2218
- Select,
2219
- {
2220
- allowClear: true,
2221
- showSearch: true,
2222
- optionFilterProp: "label",
2223
- loading: isRolesLoading,
2224
- options: roles?.map((role) => ({ label: role.name, value: role.name }))
2225
- }
2226
- )
2227
- }
2228
- ) }),
2229
- /* @__PURE__ */ jsx("div", { className: "w-8 text-center", children: /* @__PURE__ */ jsx(Form.Item, { children: /* @__PURE__ */ jsx(
2230
- MinusCircleOutlined,
2231
- {
2232
- onClick: () => {
2233
- remove(field.name);
2234
- }
2235
- }
2236
- ) }) })
2237
- ] }) })
2238
- ] }, field.key)),
2239
- fields.length === 0 && /* @__PURE__ */ jsx(Col, { span: 24, children: /* @__PURE__ */ jsx(Empty, { className: "mb-6" }) }),
2240
- /* @__PURE__ */ jsx(Col, { span: 24, children: /* @__PURE__ */ jsx(Button, { block: true, type: "dashed", onClick: () => add(), children: t("global.add") }) })
2241
- ] }) })
2242
- ] });
2243
- };
2244
- useCreateUserModalV2 = ({ onSuccess } = {}) => {
2245
- const { t } = useTranslation();
2246
- const { trigger } = useCreateUser();
2247
- return useFormModal({
2248
- title: t("User.createTitle"),
2249
- width: "50vw",
2250
- formProps: {
2251
- autoComplete: "off",
2252
- labelCol: { flex: "80px" }
2253
- },
2254
- content: /* @__PURE__ */ jsx(UserModalContentV2, { isCreate: true }),
2255
- onConfirm: async (values) => {
2256
- await trigger(values);
2257
- onSuccess?.();
2258
- }
2259
- });
2260
- };
2261
- useUpdateUserModalV2 = ({ onSuccess } = {}) => {
2262
- const { t } = useTranslation();
2263
- const { trigger } = useUpdateUser();
2264
- return useFormModal({
2265
- title: t("User.updateTitle"),
2266
- width: "50vw",
2267
- formProps: {
2268
- autoComplete: "off",
2269
- labelCol: { flex: "80px" }
2270
- },
2271
- content: /* @__PURE__ */ jsx(UserModalContentV2, {}),
2272
- onConfirm: async (values, extraValues) => {
2273
- await trigger({ ...values, id: extraValues?.id });
2274
- onSuccess?.();
2275
- }
2276
- });
2277
- };
2278
- }
2279
- });
2280
- var PermissionCollapse, permissionCollapse_default;
2281
- var init_permissionCollapse = __esm({
2282
- "src/features/permission/components/permissionCollapse/index.tsx"() {
2283
- init_locale();
2284
- PermissionCollapse = (props) => {
2285
- const { permissions, readonly, expand, value, onChange } = props;
2286
- const [activeKey, setActiveKey] = useState([]);
2287
- const [checkedMap, setCheckedMap] = useState({});
2288
- const [internalValue, setInternalValue] = useState(value ?? []);
2289
- const { t } = useTranslation();
2290
- const [, startTransition] = useTransition();
2291
- const onCollapseChange = useCallback((key) => {
2292
- setActiveKey(key);
2293
- }, []);
2294
- const getCheckedValue = (checkedValue, codes) => {
2295
- let tempValue = [];
2296
- if (checkedValue) {
2297
- tempValue = [...new Set(internalValue.concat(codes))];
2298
- } else {
2299
- tempValue = internalValue.slice();
2300
- codes.forEach((code) => {
2301
- const index = tempValue.findIndex((item) => item === code);
2302
- if (index > -1) {
2303
- tempValue.splice(index, 1);
2304
- }
2305
- });
2306
- }
2307
- return tempValue;
2308
- };
2309
- const onCheckChange = (e, codes) => {
2310
- const checkedValue = getCheckedValue(e.target.checked, codes);
2311
- setInternalValue(checkedValue);
2312
- onChange?.(checkedValue);
2313
- };
2314
- useEffect(() => {
2315
- setInternalValue(value ?? []);
2316
- }, [value]);
2317
- useEffect(() => {
2318
- if (expand) {
2319
- startTransition(() => {
2320
- setActiveKey((permissions ?? []).map(({ category }) => category));
2321
- });
2322
- }
2323
- }, []);
2324
- useEffect(() => {
2325
- const checkedValue = (permissions ?? []).reduce(
2326
- (acc, curr) => {
2327
- acc[curr.category] = curr.permissions.every((item) => internalValue?.includes(item.value));
2328
- return acc;
2329
- },
2330
- {}
2331
- );
2332
- setCheckedMap(checkedValue);
2333
- }, [internalValue, permissions]);
2334
- const items = (permissions ?? []).map((item) => ({
2335
- key: item.category,
2336
- label: item.category,
2337
- extra: !readonly && /* @__PURE__ */ jsx(
2338
- Checkbox,
2339
- {
2340
- checked: checkedMap[item.category],
2341
- onChange: (e) => {
2342
- onCheckChange(
2343
- e,
2344
- item.permissions?.map((permission) => permission.value)
2345
- );
2346
- },
2347
- children: t("global.selectAll")
2348
- }
2349
- ),
2350
- children: /* @__PURE__ */ jsx(Checkbox.Group, { style: { width: "100%" }, value: internalValue, disabled: readonly, children: /* @__PURE__ */ jsx(Row, { gutter: [10, 10], style: { width: "100%" }, children: item.permissions?.map((permission) => /* @__PURE__ */ jsx(Col, { span: 6, children: /* @__PURE__ */ jsx(
2351
- Checkbox,
2352
- {
2353
- value: permission.value,
2354
- onChange: (e) => {
2355
- onCheckChange(e, [permission.value]);
2356
- },
2357
- children: permission.label
2358
- }
2359
- ) }, permission.value)) }) })
2360
- }));
2361
- return /* @__PURE__ */ jsx(
2362
- Collapse,
2363
- {
2364
- style: { width: "100%" },
2365
- collapsible: "header",
2366
- activeKey,
2367
- items,
2368
- onChange: onCollapseChange
2369
- }
2370
- );
2371
- };
2372
- permissionCollapse_default = PermissionCollapse;
2373
- }
2374
- });
2375
- var Text3, Option2, PermissionWithGame, PermissionWithGame_default;
2376
- var init_PermissionWithGame = __esm({
2377
- "src/features/permission/components/permissionList/PermissionWithGame.tsx"() {
2378
- init_locale();
2379
- init_hooks5();
2380
- init_permissionCollapse();
2381
- ({ Text: Text3 } = Typography);
2382
- ({ Option: Option2 } = Select);
2383
- PermissionWithGame = (props) => {
2384
- const { expand = true, value, readonly, onChange } = props;
2385
- const { data: { permission, game: games } = {}, isLoading, error } = useAllPermissionsV2();
2386
- const [gameList, setGameList] = useState([]);
2387
- const globalPermissions = permission?.filter((item) => item.is_common);
2388
- const gamePermissions = permission?.filter((item) => !item.is_common);
2389
- const { t } = useTranslation();
2390
- useEffect(() => {
2391
- const list = [];
2392
- Object.keys(value ?? {}).forEach((key) => {
2393
- if (key !== "global") {
2394
- list.push({ gameId: key, permissions: value?.[key] ?? [] });
2395
- }
2396
- });
2397
- setGameList(list);
2398
- }, [value]);
2399
- if (error) {
2400
- return /* @__PURE__ */ jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx(Text3, { type: "danger", children: t("PermissionList.failedDescription") }) });
2401
- }
2402
- const addGame = () => {
2403
- setGameList((prev) => [...prev, { gameId: "", permissions: [] }]);
2404
- };
2405
- const removeGame = (index) => {
2406
- setGameList((prev) => prev.filter((_, i) => i !== index));
2407
- };
2408
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-col w-full", children: [
2409
- /* @__PURE__ */ jsx("div", { className: "mb-12", children: /* @__PURE__ */ jsx(Divider, { dashed: true, children: t("PermissionList.baseSectionTitle") }) }),
2410
- /* @__PURE__ */ jsx(Skeleton, { active: true, loading: isLoading, children: /* @__PURE__ */ jsx(
2411
- permissionCollapse_default,
2412
- {
2413
- value: value?.global,
2414
- readonly,
2415
- permissions: globalPermissions,
2416
- expand,
2417
- onChange: (newValue) => {
2418
- onChange?.({
2419
- ...value,
2420
- global: newValue
2421
- });
2422
- }
2423
- }
2424
- ) }),
2425
- /* @__PURE__ */ jsx("div", { className: "my-12", children: /* @__PURE__ */ jsx(Divider, { dashed: true, children: t("PermissionList.gameSectionTitle") }) }),
2426
- gameList.map((item, index) => /* @__PURE__ */ jsx(
2427
- Card,
2428
- {
2429
- title: /* @__PURE__ */ jsxs(Space, { children: [
2430
- /* @__PURE__ */ jsx(Text3, { children: t("global.game") }),
2431
- readonly ? /* @__PURE__ */ jsx(Text3, { children: games?.find((game) => String(game.id) === item.gameId)?.name }) : /* @__PURE__ */ jsx(
2432
- Select,
2433
- {
2434
- disabled: readonly,
2435
- value: gameList[index].gameId || void 0,
2436
- style: { width: "160px" },
2437
- placeholder: t("PermissionList.gameSelectPlaceholder"),
2438
- onChange: (selectedValue) => {
2439
- setGameList((pev) => {
2440
- const temp = pev.slice();
2441
- temp[index].gameId = selectedValue;
2442
- return temp;
2443
- });
2444
- },
2445
- children: games?.map((game) => /* @__PURE__ */ jsx(
2446
- Option2,
2447
- {
2448
- value: game.id,
2449
- disabled: gameList.some(({ gameId }) => gameId === String(game.id)),
2450
- children: game.name
2451
- },
2452
- game.id
2453
- ))
2454
- }
2455
- )
2456
- ] }),
2457
- className: "mb-6",
2458
- extra: !readonly && /* @__PURE__ */ jsx(
2459
- Button,
2460
- {
2461
- type: "link",
2462
- onClick: () => {
2463
- removeGame(index);
2464
- },
2465
- children: t("PermissionList.removeText")
2466
- }
2467
- ),
2468
- children: gameList[index].gameId ? /* @__PURE__ */ jsx(Skeleton, { active: true, loading: isLoading, children: /* @__PURE__ */ jsx(
2469
- permissionCollapse_default,
2470
- {
2471
- value: value?.[gameList[index].gameId],
2472
- readonly,
2473
- expand,
2474
- permissions: gamePermissions,
2475
- onChange: (newValue) => {
2476
- onChange?.({
2477
- ...value,
2478
- [gameList[index].gameId]: newValue
2479
- });
2480
- }
2481
- }
2482
- ) }) : /* @__PURE__ */ jsx(Empty, { description: t("PermissionList.gameSectionDescription") })
2483
- },
2484
- index
2485
- )),
2486
- !readonly && /* @__PURE__ */ jsx(Button, { block: true, type: "dashed", onClick: addGame, children: t("PermissionList.addText") })
2487
- ] });
2488
- };
2489
- PermissionWithGame_default = PermissionWithGame;
2490
- }
2491
- });
2492
- var Text4, PermissionWithoutGame, PermissionWithoutGame_default;
2493
- var init_PermissionWithoutGame = __esm({
2494
- "src/features/permission/components/permissionList/PermissionWithoutGame.tsx"() {
2495
- init_locale();
2496
- init_hooks5();
2497
- init_permissionCollapse();
2498
- ({ Text: Text4 } = Typography);
2499
- PermissionWithoutGame = (props) => {
2500
- const { expand = true, value, readonly, onChange } = props;
2501
- const { data: permissions, isLoading, error } = useAllPermissions();
2502
- const { t } = useTranslation();
2503
- if (error) {
2504
- return /* @__PURE__ */ jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx(Text4, { type: "danger", children: t("PermissionList.failedDescription") }) });
2505
- }
2506
- return /* @__PURE__ */ jsx(Skeleton, { active: true, loading: isLoading, children: /* @__PURE__ */ jsx(
2507
- permissionCollapse_default,
2508
- {
2509
- value,
2510
- permissions,
2511
- readonly,
2512
- expand,
2513
- onChange
2514
- }
2515
- ) });
2516
- };
2517
- PermissionWithoutGame_default = PermissionWithoutGame;
2518
- }
2519
- });
2520
- var PermissionList, permissionList_default;
2521
- var init_permissionList = __esm({
2522
- "src/features/permission/components/permissionList/index.tsx"() {
2523
- init_toolkitsProvider();
2524
- init_PermissionWithGame();
2525
- init_PermissionWithoutGame();
2526
- PermissionList = (props) => {
2527
- const { value } = props;
2528
- const version = useToolkitsStore((state) => state.permissionVersion);
2529
- return /* @__PURE__ */ jsx(Fragment, { children: version === "v2" /* V2 */ ? /* @__PURE__ */ jsx(PermissionWithGame_default, { ...props, value }) : /* @__PURE__ */ jsx(PermissionWithoutGame_default, { ...props, value }) });
2530
- };
2531
- permissionList_default = PermissionList;
2532
- }
2533
- });
2534
-
2535
- // src/features/permission/components/index.ts
2536
- var init_components = __esm({
2537
- "src/features/permission/components/index.ts"() {
2538
- init_permissionList();
2539
- }
2540
- });
2541
-
2542
- // src/features/permission/types/index.ts
2543
- var init_types2 = __esm({
2544
- "src/features/permission/types/index.ts"() {
2545
- }
2546
- });
2547
-
2548
- // src/features/permission/index.ts
2549
- var init_permission = __esm({
2550
- "src/features/permission/index.ts"() {
2551
- init_components();
2552
- init_hooks5();
2553
- init_types2();
2554
- }
2555
- });
2556
-
2557
- // src/pages/permission/userList/index.tsx
2558
- var userList_exports = {};
2559
- __export(userList_exports, {
2560
- default: () => userList_default
2561
- });
2562
- var url2, UserList, userList_default;
2563
- var init_userList = __esm({
2564
- "src/pages/permission/userList/index.tsx"() {
2565
- init_highlight();
2566
- init_locale();
2567
- init_permissionButton();
2568
- init_queryList();
2569
- init_toolkitsProvider();
2570
- init_permission();
2571
- url2 = "/api/usystem/user/list";
2572
- UserList = () => {
2573
- const { modal, message } = App.useApp();
2574
- const { t } = useTranslation();
2575
- const remove = useRemoveUser();
2576
- const { mutate: mutate2, refetch } = useQueryListStore();
2577
- const { permissionVersion } = useToolkitsStore((s) => s);
2578
- const isV1 = permissionVersion === "v1" /* V1 */;
2579
- const isV3 = permissionVersion === "v3" /* V3 */;
2580
- const { show: showCreateModal, modal: createModal } = useCreateUserModal({
2581
- onSuccess() {
2582
- refetch(url2, { page: 1 });
2583
- message.success(t("User.createSuccessfully"));
2584
- }
2585
- });
2586
- const { show: showUpdateModal, modal: updateModal } = useUpdateUserModal({
2587
- onSuccess() {
2588
- refetch(url2);
2589
- message.success(t("User.updateSuccessfully"));
2590
- }
2591
- });
2592
- const { show: showCreateModalV2, modal: createModalV2 } = useCreateUserModalV2({
2593
- onSuccess() {
2594
- refetch(url2, { page: 1 });
2595
- message.success(t("User.createSuccessfully"));
2596
- }
2597
- });
2598
- const { show: showUpdateModalV2, modal: updateModalV2 } = useUpdateUserModalV2({
2599
- onSuccess() {
2600
- refetch(url2);
2601
- message.success(t("User.updateSuccessfully"));
2602
- }
2603
- });
2604
- const columns = [
2605
- {
2606
- title: t("global.name"),
2607
- dataIndex: "name",
2608
- key: "name",
2609
- render(value, record) {
2610
- if (isV3) {
2611
- return /* @__PURE__ */ jsx(Link, { to: `./${record.id}`, children: value });
2612
- }
2613
- return value;
2614
- }
2615
- },
2616
- {
2617
- title: "ID",
2618
- dataIndex: "id",
2619
- key: "id"
2620
- },
2621
- (isV1 || isV3) && {
2622
- title: t("global.role"),
2623
- dataIndex: "roles",
2624
- key: "roles",
2625
- width: "40%",
2626
- render(value) {
2627
- return /* @__PURE__ */ jsx(Row, { gutter: [4, 4], children: (value || []).map((item) => /* @__PURE__ */ jsx(Col, { children: item === "root" ? /* @__PURE__ */ jsx(Tag, { color: "#f50", children: item }) : /* @__PURE__ */ jsx(Tag, { color: "#ff5a00", children: /* @__PURE__ */ jsx(Link, { to: `../role/${item}`, children: item }) }) }, item)) });
2628
- }
2629
- },
2630
- {
2631
- title: t("global.creationTime"),
2632
- dataIndex: "Ctime",
2633
- key: "ctime"
2634
- },
2635
- {
2636
- title: t("global.operation"),
2637
- width: 150,
2638
- align: "center",
2639
- render: (_, record) => {
2640
- const { name, permissions, roles, id: id2 } = record;
2641
- return /* @__PURE__ */ jsxs(Space, { children: [
2642
- /* @__PURE__ */ jsx(
2643
- PermissionButton_default,
2644
- {
2645
- size: "small",
2646
- type: "link",
2647
- code: "100003",
2648
- onClick: () => {
2649
- if (isV3) {
2650
- showUpdateModalV2({
2651
- initialValues: {
2652
- name,
2653
- permissions
2654
- },
2655
- extraValues: {
2656
- id: id2
2657
- }
2658
- });
2659
- } else {
2660
- showUpdateModal({
2661
- initialValues: {
2662
- name,
2663
- roles
2664
- },
2665
- extraValues: {
2666
- id: id2
2667
- }
2668
- });
2669
- }
2670
- },
2671
- children: t("global.update")
2672
- }
2673
- ),
2674
- /* @__PURE__ */ jsx(
2675
- PermissionButton_default,
2676
- {
2677
- danger: true,
2678
- size: "small",
2679
- code: "100004",
2680
- type: "link",
2681
- onClick: () => {
2682
- modal.confirm({
2683
- title: t("User.deleteTitle"),
2684
- content: /* @__PURE__ */ jsx(Highlight_default, { texts: [name], children: t("User.deleteContent", { user: name }) }),
2685
- async onOk() {
2686
- await remove.trigger({
2687
- id: id2,
2688
- name
2689
- });
2690
- mutate2(url2, (prev) => {
2691
- return produce(prev, (draft) => {
2692
- const index = draft?.List?.findIndex((item) => item.id === id2);
2693
- if (index) {
2694
- draft?.List?.splice(index, 1);
2695
- }
2696
- });
2697
- });
2698
- message.success(t("User.deleteSuccessfully"));
2699
- }
2700
- });
2701
- },
2702
- children: t("global.delete")
2703
- }
2704
- )
2705
- ] });
2706
- }
2707
- }
2708
- ].filter(Boolean);
2709
- return /* @__PURE__ */ jsxs(Fragment, { children: [
2710
- /* @__PURE__ */ jsx(
2711
- Card,
2712
- {
2713
- title: t("global.user"),
2714
- extra: /* @__PURE__ */ jsx(
2715
- PermissionButton_default,
2716
- {
2717
- type: "primary",
2718
- icon: /* @__PURE__ */ jsx(UserAddOutlined, {}),
2719
- code: "100002",
2720
- onClick: () => {
2721
- if (isV3) {
2722
- showCreateModalV2();
2723
- } else {
2724
- showCreateModal();
2725
- }
2726
- },
2727
- children: t("User.createTitle")
2728
- }
2729
- ),
2730
- children: /* @__PURE__ */ jsx(
2731
- QueryList_default,
2732
- {
2733
- code: "100001",
2734
- url: url2,
2735
- rowKey: "id",
2736
- columns,
2737
- getTotal: (data) => data?.data.Total,
2738
- getDataSource: (data) => data?.data.List,
2739
- renderForm: isV3 ? (form) => /* @__PURE__ */ jsx(Form, { form, children: /* @__PURE__ */ jsx(Form.Item, { label: "\u540D\u79F0", name: "name", children: /* @__PURE__ */ jsx(Input, {}) }) }) : void 0
2740
- }
2741
- )
2742
- }
2743
- ),
2744
- createModal,
2745
- updateModal,
2746
- createModalV2,
2747
- updateModalV2
2748
- ] });
2749
- };
2750
- userList_default = withContext(UserList, { isGlobal: true });
2751
- }
2752
- });
2753
-
2754
- // src/pages/permission/userDetail/index.tsx
2755
- var userDetail_exports = {};
2756
- __export(userDetail_exports, {
2757
- default: () => userDetail_default
2758
- });
2759
- var UserDetail, userDetail_default;
2760
- var init_userDetail = __esm({
2761
- "src/pages/permission/userDetail/index.tsx"() {
2762
- init_layout();
2763
- init_locale();
2764
- init_permissionButton();
2765
- init_toolkitsProvider();
2766
- init_constants();
2767
- init_permission();
2768
- init_hooks2();
2769
- UserDetail = () => {
2770
- const { message } = App.useApp();
2771
- const params = useParams();
2772
- const { t } = useTranslation();
2773
- const { axios: axios2, gameApiV2 } = useToolkitsStore((s) => s);
2774
- const { data, isLoading, mutate: mutate2 } = useSWR6(
2775
- params.id ? `/api/usystem/user/info?id=${params.id}` : null,
2776
- (url4) => axios2.get(url4).then((res) => res.data.data)
2777
- );
2778
- const { data: games } = useGames();
2779
- const { data: roleViewable } = usePermission("200005");
2780
- const { show, modal } = useUpdateUserModalV2({
2781
- onSuccess() {
2782
- mutate2();
2783
- message.success(t("User.updateSuccessfully"));
2784
- }
2785
- });
2786
- const columns = [
2787
- {
2788
- key: "group",
2789
- title: t("global.projectGroup"),
2790
- dataIndex: "game_group",
2791
- render(value) {
2792
- return value.map((item) => {
2793
- return /* @__PURE__ */ jsx(Tag, { children: item === WILDCARD ? "\u901A\u7528" : item }, item);
2794
- });
2795
- }
2796
- },
2797
- {
2798
- key: "game",
2799
- title: t("global.game"),
2800
- dataIndex: "game_ids",
2801
- render(value) {
2802
- return value.map((item) => {
2803
- const matchedGame = games?.find((game) => String(gameApiV2 ? game.game_id : game.id) === item);
2804
- return /* @__PURE__ */ jsx(Tag, { children: matchedGame?.name ?? (item === WILDCARD ? "\u901A\u7528" : item) }, item);
2805
- });
2806
- }
2807
- },
2808
- {
2809
- key: "role",
2810
- title: t("global.role"),
2811
- dataIndex: "role",
2812
- render(value) {
2813
- return roleViewable ? /* @__PURE__ */ jsx(Link, { to: `../../role/${value}`, relative: "path", children: value }) : value;
2814
- }
2815
- }
2816
- ];
2817
- return /* @__PURE__ */ jsxs(Fragment, { children: [
2818
- /* @__PURE__ */ jsx(
2819
- Breadcrumb,
2820
- {
2821
- className: "mb-6",
2822
- items: [
2823
- {
2824
- key: "1",
2825
- title: /* @__PURE__ */ jsx(Link, { to: "..", relative: "path", children: t("global.user") })
2826
- },
2827
- {
2828
- key: "2",
2829
- title: "\u7528\u6237\u8BE6\u60C5"
2830
- }
2831
- ]
2832
- }
2833
- ),
2834
- /* @__PURE__ */ jsx(
2835
- Card,
2836
- {
2837
- title: "\u7528\u6237\u8BE6\u60C5",
2838
- loading: isLoading,
2839
- extra: /* @__PURE__ */ jsx(
2840
- PermissionButton_default,
2841
- {
2842
- code: "100003",
2843
- onClick: () => {
2844
- show({
2845
- initialValues: {
2846
- name: data?.name,
2847
- permissions: data?.permissions
2848
- },
2849
- extraValues: {
2850
- id: data.id
2851
- }
2852
- });
2853
- },
2854
- children: t("global.update")
2855
- }
2856
- ),
2857
- children: /* @__PURE__ */ jsxs(Descriptions, { bordered: true, column: 1, children: [
2858
- /* @__PURE__ */ jsx(Descriptions.Item, { label: t("global.name"), children: data?.name }),
2859
- /* @__PURE__ */ jsx(Descriptions.Item, { label: "ID", children: data?.id }),
2860
- /* @__PURE__ */ jsx(Descriptions.Item, { label: t("global.role"), children: /* @__PURE__ */ jsx(Table, { rowKey: "role", columns, dataSource: data?.permissions, pagination: false }) })
2861
- ] })
2862
- }
2863
- ),
2864
- modal
2865
- ] });
2866
- };
2867
- userDetail_default = UserDetail;
2868
- }
2869
- });
2870
-
2871
- // src/pages/permission/roleList/index.tsx
2872
- var roleList_exports = {};
2873
- __export(roleList_exports, {
2874
- default: () => roleList_default
2875
- });
2876
- var url3, RoleList, roleList_default;
2877
- var init_roleList = __esm({
2878
- "src/pages/permission/roleList/index.tsx"() {
2879
- init_highlight();
2880
- init_locale();
2881
- init_permissionButton();
2882
- init_queryList();
2883
- init_stores4();
2884
- init_toolkitsProvider();
2885
- init_permission();
2886
- init_hooks2();
2887
- url3 = "/api/usystem/role/list";
2888
- RoleList = () => {
2889
- const { modal, message } = App.useApp();
2890
- const { data: viewable } = usePermission("200005");
2891
- const { t } = useTranslation();
2892
- const { axios: axios2, permissionVersion } = useToolkitsStore((s) => s);
2893
- const { mutate: mutate2, refetch } = useQueryListStore();
2894
- const { show: showCreateModal, modal: createModal } = useCreateRoleModal({
2895
- onSuccess() {
2896
- refetch(url3, { page: 1 });
2897
- message.success(t("Role.createSuccessfully"));
2898
- }
2899
- });
2900
- const { show: showUpdateModal, modal: updateModal } = useUpdateRoleModal({
2901
- onSuccess() {
2902
- mutate2(url3);
2903
- message.success(t("Role.updateSuccessfully"));
2904
- }
2905
- });
2906
- const remove = useRemoveRole();
2907
- const handleUpdateBtnClick = async (record) => {
2908
- const response = await axios2.get(
2909
- `/api/usystem/role/info${permissionVersion === "v2" /* V2 */ ? "V2" : ""}?name=${record.name}`
2910
- );
2911
- const data = response.data.data;
2912
- showUpdateModal({
2913
- initialValues: {
2914
- permissions: data?.permissions,
2915
- name: data?.name.replace(/^role_/, "")
2916
- },
2917
- extraValues: {
2918
- id: data?.id
2919
- }
2920
- });
2921
- };
2922
- const columns = [
2923
- {
2924
- title: t("global.name"),
2925
- key: "name",
2926
- render(value) {
2927
- if (viewable) {
2928
- return /* @__PURE__ */ jsx(Link, { to: `${value.name}`, relative: "path", children: value.name });
2929
- } else {
2930
- return /* @__PURE__ */ jsx(Fragment, { children: value.name });
2931
- }
2932
- }
2933
- },
2934
- {
2935
- title: "ID",
2936
- dataIndex: "id",
2937
- key: "id"
2938
- },
2939
- {
2940
- title: t("global.creationTime"),
2941
- dataIndex: "ctime",
2942
- key: "ctime"
2943
- },
2944
- {
2945
- title: t("global.operation"),
2946
- width: 150,
2947
- align: "center",
2948
- render: (_, record) => {
2949
- return /* @__PURE__ */ jsxs(Space, { size: "small", children: [
2950
- /* @__PURE__ */ jsx(
2951
- PermissionButton_default,
2952
- {
2953
- code: "200003",
2954
- size: "small",
2955
- type: "link",
2956
- onClick: async () => {
2957
- handleUpdateBtnClick(record);
2958
- },
2959
- children: t("global.update")
2960
- }
2961
- ),
2962
- /* @__PURE__ */ jsx(
2963
- PermissionButton_default,
2964
- {
2965
- danger: true,
2966
- code: "200004",
2967
- size: "small",
2968
- type: "link",
2969
- onClick: () => {
2970
- modal.confirm({
2971
- title: t("Role.deleteTitle"),
2972
- content: /* @__PURE__ */ jsx(Highlight_default, { texts: [record.name], children: t("Role.deleteContent", { role: record.name }) }),
2973
- async onOk() {
2974
- await remove.trigger({
2975
- id: record.id,
2976
- name: record.name
2977
- });
2978
- mutate2(url3, (prev) => {
2979
- return produce(prev, (draft) => {
2980
- const index = draft?.List?.findIndex((item) => item.id === record.id);
2981
- if (index) {
2982
- draft?.List?.splice(index, 1);
2983
- }
2984
- });
2985
- });
2986
- message.success(t("Role.deleteSuccessfully"));
2987
- }
2988
- });
2989
- },
2990
- children: t("global.delete")
2991
- }
2992
- )
2993
- ] });
2994
- }
2995
- }
2996
- ];
2997
- return /* @__PURE__ */ jsxs(Fragment, { children: [
2998
- /* @__PURE__ */ jsx(
2999
- Card,
3000
- {
3001
- title: t("global.role"),
3002
- extra: /* @__PURE__ */ jsx(
3003
- PermissionButton_default,
3004
- {
3005
- type: "primary",
3006
- code: "200002",
3007
- icon: /* @__PURE__ */ jsx(UsergroupAddOutlined, {}),
3008
- onClick: () => {
3009
- showCreateModal();
3010
- },
3011
- children: t("Role.createTitle")
3012
- }
3013
- ),
3014
- children: /* @__PURE__ */ jsx(
3015
- QueryList_default,
3016
- {
3017
- rowKey: "name",
3018
- columns,
3019
- code: "200001",
3020
- url: url3,
3021
- getTotal: (data) => data?.data.Total,
3022
- getDataSource: (data) => data?.data.List
3023
- }
3024
- )
3025
- }
3026
- ),
3027
- createModal,
3028
- updateModal
3029
- ] });
3030
- };
3031
- roleList_default = withContext(RoleList, {
3032
- isGlobal: true
3033
- });
3034
- }
3035
- });
3036
-
3037
- // src/pages/permission/roleDetail/index.tsx
3038
- var roleDetail_exports = {};
3039
- __export(roleDetail_exports, {
3040
- default: () => roleDetail_default
3041
- });
3042
- var RoleDetail, roleDetail_default;
3043
- var init_roleDetail = __esm({
3044
- "src/pages/permission/roleDetail/index.tsx"() {
3045
- init_locale();
3046
- init_permissionButton();
3047
- init_toolkitsProvider();
3048
- init_permission();
3049
- RoleDetail = () => {
3050
- const { message } = App.useApp();
3051
- const params = useParams();
3052
- const { t } = useTranslation();
3053
- const { data, isLoading, mutate: mutate2 } = useRole(params.name);
3054
- const { show, modal } = useUpdateRoleModal({
3055
- onSuccess() {
3056
- mutate2();
3057
- message.success(t("Role.updateSuccessfully"));
3058
- }
3059
- });
3060
- const handleUpdateBtnClick = async () => {
3061
- show({
3062
- initialValues: {
3063
- permissions: data?.permissions,
3064
- name: data?.name.replace(/^role_/, "")
3065
- },
3066
- extraValues: {
3067
- id: data.id
3068
- }
3069
- });
3070
- };
3071
- return /* @__PURE__ */ jsxs(Fragment, { children: [
3072
- /* @__PURE__ */ jsx(
3073
- Breadcrumb,
3074
- {
3075
- style: { marginBottom: 24 },
3076
- items: [
3077
- {
3078
- key: "1",
3079
- title: /* @__PURE__ */ jsx(Link, { to: "..", relative: "path", children: t("global.role") })
3080
- },
3081
- {
3082
- key: "2",
3083
- title: t("RoleDetail.title")
3084
- }
3085
- ]
3086
- }
3087
- ),
3088
- /* @__PURE__ */ jsx(
3089
- Card,
3090
- {
3091
- title: t("RoleDetail.title"),
3092
- extra: /* @__PURE__ */ jsx(PermissionButton_default, { code: "200003", onClick: handleUpdateBtnClick, children: t("global.update") }),
3093
- children: /* @__PURE__ */ jsxs(Skeleton, { loading: isLoading, children: [
3094
- /* @__PURE__ */ jsxs(Descriptions, { column: 2, layout: "vertical", className: "mb-6", children: [
3095
- /* @__PURE__ */ jsx(Descriptions.Item, { label: t("global.name"), children: data?.name }),
3096
- /* @__PURE__ */ jsx(Descriptions.Item, { label: "ID", children: data?.id }),
3097
- /* @__PURE__ */ jsx(Descriptions.Item, { label: t("global.creationTime"), children: data?.ctime })
3098
- ] }),
3099
- /* @__PURE__ */ jsx(permissionList_default, { readonly: true, value: data?.permissions })
3100
- ] })
3101
- }
3102
- ),
3103
- modal
3104
- ] });
3105
- };
3106
- roleDetail_default = withContext(RoleDetail, { isGlobal: true });
3107
- }
3108
- });
3109
-
3110
- // src/components/dynamicTags/DynamicTags.tsx
3111
- init_locale();
3112
- var DynamicTags = (props) => {
3113
- const { initialTags, addable, removable, addCallback, removeCallback } = props;
3114
- const { t } = useTranslation();
3115
- const { token } = theme.useToken();
3116
- const [tags, setTags] = useState([]);
3117
- const [inputVisible, setInputVisible] = useState(false);
3118
- const [inputValue, setInputValue] = useState("");
3119
- const [editInputIndex, setEditInputIndex] = useState(-1);
3120
- const [editInputValue, setEditInputValue] = useState("");
3121
- const inputRef = useRef(null);
3122
- const editInputRef = useRef(null);
3123
- useEffect(() => {
3124
- setTags(initialTags ?? []);
3125
- }, [initialTags]);
3126
- useEffect(() => {
3127
- if (inputVisible) {
3128
- inputRef.current?.focus();
3129
- }
3130
- }, [inputVisible]);
3131
- useEffect(() => {
3132
- editInputRef.current?.focus();
3133
- }, [inputValue]);
3134
- const handleClose = async (removedTag) => {
3135
- const success = await removeCallback?.(removedTag);
3136
- if (success) {
3137
- const newTags = tags.filter((tag) => tag !== removedTag);
3138
- setTags(newTags);
3139
- }
3140
- };
3141
- const showInput = () => {
3142
- setInputVisible(true);
3143
- };
3144
- const handleInputChange = (e) => {
3145
- setInputValue(e.target.value);
3146
- };
3147
- const handleInputConfirm = async () => {
3148
- if (inputValue && tags.indexOf(inputValue) === -1) {
3149
- const success = await addCallback?.(inputValue);
3150
- if (success) {
3151
- setTags([...tags, inputValue]);
3152
- }
3153
- }
3154
- setInputVisible(false);
3155
- setInputValue("");
3156
- };
3157
- const handleEditInputChange = (e) => {
3158
- setEditInputValue(e.target.value);
3159
- };
3160
- const handleEditInputConfirm = () => {
3161
- const newTags = [...tags];
3162
- newTags[editInputIndex] = editInputValue;
3163
- setTags(newTags);
3164
- setEditInputIndex(-1);
3165
- setInputValue("");
3166
- };
3167
- const tagInputStyle = {
3168
- width: 78,
3169
- verticalAlign: "top"
3170
- };
3171
- const tagPlusStyle = {
3172
- background: token.colorBgContainer,
3173
- borderStyle: "dashed"
3174
- };
3175
- return /* @__PURE__ */ jsxs(Space, { wrap: true, size: [0, 8], children: [
3176
- /* @__PURE__ */ jsx(Space, { wrap: true, size: [0, 8], children: tags.map((tag, index) => {
3177
- if (editInputIndex === index) {
3178
- return /* @__PURE__ */ jsx(
3179
- Input,
3180
- {
3181
- ref: editInputRef,
3182
- size: "small",
3183
- style: tagInputStyle,
3184
- value: editInputValue,
3185
- onChange: handleEditInputChange,
3186
- onBlur: handleEditInputConfirm,
3187
- onPressEnter: handleEditInputConfirm
3188
- },
3189
- tag
3190
- );
3191
- }
3192
- return /* @__PURE__ */ jsx(
3193
- Tag,
3194
- {
3195
- closable: removable,
3196
- style: { userSelect: "none" },
3197
- onClose: async (e) => {
3198
- e.preventDefault();
3199
- await handleClose(tag);
3200
- },
3201
- children: /* @__PURE__ */ jsx(
3202
- "span",
3203
- {
3204
- onDoubleClick: (e) => {
3205
- if (index !== 0) {
3206
- setEditInputIndex(index);
3207
- setEditInputValue(tag);
3208
- e.preventDefault();
3209
- }
3210
- },
3211
- children: tag
3212
- }
3213
- )
3214
- },
3215
- tag
3216
- );
3217
- }) }),
3218
- addable && (inputVisible ? /* @__PURE__ */ jsx(
3219
- Input,
3220
- {
3221
- ref: inputRef,
3222
- type: "text",
3223
- size: "small",
3224
- style: tagInputStyle,
3225
- value: inputValue,
3226
- onChange: handleInputChange,
3227
- onBlur: handleInputConfirm,
3228
- onPressEnter: handleInputConfirm
3229
- }
3230
- ) : /* @__PURE__ */ jsxs(Tag, { style: tagPlusStyle, onClick: showInput, children: [
3231
- /* @__PURE__ */ jsx(PlusOutlined, {}),
3232
- "\xA0",
3233
- t("global.add")
3234
- ] }))
3235
- ] });
3236
- };
3237
- var DynamicTags_default = DynamicTags;
3238
- var ExpandableParagraph = (props) => {
3239
- const { children, ...restProps } = props;
3240
- const [expanded, setExpanded] = useState(false);
3241
- return /* @__PURE__ */ jsx(
3242
- Typography.Paragraph,
3243
- {
3244
- ...restProps,
3245
- className: "mb-0",
3246
- ellipsis: {
3247
- rows: 2,
3248
- expandable: "collapsible",
3249
- expanded,
3250
- onExpand: (_, info) => {
3251
- setExpanded(info.expanded);
3252
- }
3253
- },
3254
- children
3255
- }
3256
- );
3257
- };
3258
- var ExpandableParagraph_default = ExpandableParagraph;
3259
-
3260
- // src/index.ts
3261
- init_filterFormWrapper();
3262
- init_highlight();
3263
-
3264
- // src/components/infiniteList/InfiniteList.tsx
3265
- init_hooks2();
3266
- init_filterFormWrapper();
3267
- init_locale();
3268
- init_toolkitsProvider();
3269
- var InternalInfiniteList = (props, ref) => {
3270
- const {
3271
- code,
3272
- url: url4,
3273
- tableExtra,
3274
- headers,
3275
- getRowKey,
3276
- getDataSource,
3277
- getHasMore,
3278
- renderForm,
3279
- params,
3280
- footer,
3281
- form,
3282
- buttonsAlign,
3283
- showReset,
3284
- ...tableProps
3285
- } = props;
3286
- const { t } = useTranslation();
3287
- const [_form] = Form.useForm(form);
3288
- const [isValid, setIsValid] = useState(false);
3289
- const [formValues, setFormValues] = useState();
3290
- const { axios: axios2 } = useToolkitsStore((s) => s);
3291
- const getKey = (pageIndex, previousPageData) => {
3292
- if (!isValid) return null;
3293
- const rowKey = getRowKey?.(previousPageData, pageIndex);
3294
- const args = params(formValues, pageIndex, rowKey);
3295
- const queryString = qs.stringify(args);
3296
- return queryString ? `${url4}?${qs.stringify(args)}` : url4;
3297
- };
3298
- const _headers = typeof headers === "function" ? headers(_form) : headers;
3299
- const { data: accessible, isLoading } = usePermission(code);
3300
- const {
3301
- data,
3302
- size,
3303
- setSize,
3304
- isValidating: isListValidating,
3305
- mutate: mutate2
3306
- } = useSWRInfinite(
3307
- getKey,
3308
- async (arg) => {
3309
- const response = await axios2.get(arg, { headers: _headers });
3310
- return response.data;
3311
- },
3312
- {
3313
- shouldRetryOnError: false,
3314
- revalidateOnFocus: false,
3315
- revalidateFirstPage: false
3316
- }
3317
- );
3318
- const dataSource = getDataSource(data);
3319
- const isLoadingMore = isListValidating || size > 0 && data && typeof data[size - 1] === "undefined";
3320
- const isReachingEnd = typeof getHasMore !== "undefined" ? !getHasMore(last(data)) : false;
3321
- const isEmpty = !dataSource || dataSource.length === 0;
3322
- const onConfirm = async () => {
3323
- const values = await _form.getFieldsValue();
3324
- setFormValues(values);
3325
- try {
3326
- await _form.validateFields();
3327
- setIsValid(true);
3328
- mutate2();
3329
- } catch (_) {
3330
- setSize(0);
3331
- setIsValid(false);
3332
- }
3333
- };
3334
- const loadMore = () => {
3335
- setSize(size + 1);
3336
- };
3337
- const onReset = async () => {
3338
- try {
3339
- _form.resetFields();
3340
- await _form.validateFields({ validateOnly: true });
3341
- mutate2();
3342
- } catch (error) {
3343
- setSize(0);
3344
- }
3345
- };
3346
- useEffect(() => {
3347
- setTimeout(() => {
3348
- if (accessible) {
3349
- _form.validateFields({ validateOnly: true }).then((values) => {
3350
- setFormValues(values);
3351
- setIsValid(true);
3352
- }).catch(() => {
3353
- setIsValid(false);
3354
- });
3355
- }
3356
- }, 300);
3357
- }, [accessible]);
3358
- useImperativeHandle(ref, () => ({
3359
- data,
3360
- dataSource,
3361
- form: _form,
3362
- mutate: mutate2,
3363
- size,
3364
- setSize
3365
- }));
3366
- if (isLoading) {
3367
- return /* @__PURE__ */ jsx(
3368
- Spin,
3369
- {
3370
- style: {
3371
- display: "flex",
3372
- justifyContent: "center",
3373
- alignItems: "center",
3374
- height: 300
3375
- }
3376
- }
3377
- );
3378
- }
3379
- if (!accessible) {
3380
- return /* @__PURE__ */ jsx(Result, { status: 403, subTitle: t("global.noEntitlement") });
3381
- }
3382
- const renderFooter = footer && (() => footer(data));
3383
- const formRenderer = typeof renderForm === "function" ? /* @__PURE__ */ jsx(
3384
- FilterFormWrapper_default,
3385
- {
3386
- showReset,
3387
- buttonsAlign,
3388
- isConfirming: isListValidating,
3389
- onReset,
3390
- onConfirm,
3391
- children: cloneElement(renderForm(_form), {
3392
- onKeyUp: (e) => {
3393
- if (e.key === "Enter") {
3394
- onConfirm();
3395
- }
3396
- }
3397
- })
3398
- }
3399
- ) : (
3400
- // 屏蔽 Form 组件的警告(Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?)
3401
- /* @__PURE__ */ jsx(Form, { form: _form })
3402
- );
3403
- return /* @__PURE__ */ jsxs(Fragment, { children: [
3404
- formRenderer,
3405
- typeof tableExtra === "function" ? tableExtra(_form, dataSource) : tableExtra,
3406
- /* @__PURE__ */ jsx(Table, { ...tableProps, dataSource, loading: isLoadingMore, pagination: false, footer: renderFooter }),
3407
- !isEmpty && /* @__PURE__ */ jsx(
3408
- Button,
3409
- {
3410
- block: true,
3411
- loading: isLoadingMore,
3412
- type: "link",
3413
- htmlType: "button",
3414
- disabled: isLoadingMore || isReachingEnd,
3415
- onClick: loadMore,
3416
- children: isLoadingMore ? t("InfiniteList.loadingText") : isReachingEnd ? t("InfiniteList.reachEndText") : t("InfiniteList.loadMoreText")
3417
- }
3418
- )
3419
- ] });
3420
- };
3421
- var InfiniteList = forwardRef(InternalInfiniteList);
3422
- var InfiniteList_default = InfiniteList;
3423
-
3424
- // src/index.ts
3425
- init_layout();
3426
- init_modal2();
3427
- init_navMenu();
3428
- init_permissionButton();
3429
- init_queryList();
3430
- init_requireGame();
3431
-
3432
- // src/components/requirePermission/RequirePermission.tsx
3433
- init_hooks2();
3434
- init_locale();
3435
- var RequirePermission = (props) => {
3436
- const { code, config, children } = props;
3437
- const { data: accessible, isValidating } = usePermission(code, config);
3438
- const { t } = useTranslation();
3439
- if (isValidating) {
3440
- return /* @__PURE__ */ jsx(
3441
- Spin,
3442
- {
3443
- style: {
3444
- display: "flex",
3445
- justifyContent: "center",
3446
- alignItems: "center",
3447
- height: 200
3448
- }
3449
- }
3450
- );
3451
- }
3452
- if (!accessible) {
3453
- return /* @__PURE__ */ jsx(Result, { status: "403", subTitle: t("global.noEntitlement") });
3454
- }
3455
- return /* @__PURE__ */ jsx(Fragment, { children });
3456
- };
3457
- var RequirePermission_default = RequirePermission;
3458
-
3459
- // src/index.ts
3460
- init_toolkitsProvider();
3461
- init_userWidget();
3462
- init_constants();
3463
- init_hooks2();
3464
- var MenuItemList2 = lazy(() => Promise.resolve().then(() => (init_menuItemList(), menuItemList_exports)));
3465
- var CreateMenuItem2 = lazy(() => Promise.resolve().then(() => (init_createMenuItem(), createMenuItem_exports)));
3466
- var UpdateMenuItem = lazy(() => Promise.resolve().then(() => (init_updateMenuItem(), updateMenuItem_exports)));
3467
- var menu_default = /* @__PURE__ */ jsxs(Routes, { children: [
3468
- /* @__PURE__ */ jsx(Route, { index: true, element: /* @__PURE__ */ jsx(MenuItemList2, {}) }),
3469
- /* @__PURE__ */ jsx(Route, { path: "create", element: /* @__PURE__ */ jsx(CreateMenuItem2, {}) }),
3470
- /* @__PURE__ */ jsx(Route, { path: "update/:id", element: /* @__PURE__ */ jsx(UpdateMenuItem, {}) })
3471
- ] });
3472
-
3473
- // src/pages/notFound/index.tsx
3474
- init_locale();
3475
- var NotFound = (props) => {
3476
- const { redirectUrl } = props;
3477
- const navigate = useNavigate();
3478
- const { t } = useTranslation();
3479
- return /* @__PURE__ */ jsx("div", { className: "h-screen flex justify-center items-center", children: /* @__PURE__ */ jsx(
3480
- Result,
3481
- {
3482
- status: "404",
3483
- title: "404",
3484
- subTitle: t("NotFound.subTitle"),
3485
- extra: redirectUrl && /* @__PURE__ */ jsx(
3486
- Button,
3487
- {
3488
- type: "primary",
3489
- onClick: () => {
3490
- navigate(redirectUrl);
3491
- },
3492
- children: t("NotFound.buttonText")
3493
- }
3494
- )
3495
- }
3496
- ) });
3497
- };
3498
- var notFound_default = NotFound;
3499
- init_locale();
3500
- init_queryList();
3501
- init_toolkitsProvider();
3502
- var { Option } = Select;
3503
- var OperationLogList = () => {
3504
- const { t } = useTranslation();
3505
- const columns = [
3506
- {
3507
- key: "username",
3508
- title: t("global.username"),
3509
- dataIndex: "uname",
3510
- width: 100
3511
- },
3512
- {
3513
- key: "label",
3514
- title: t("global.label"),
3515
- dataIndex: "label",
3516
- width: 150
3517
- },
3518
- {
3519
- key: "method",
3520
- title: t("global.method"),
3521
- dataIndex: "method",
3522
- width: 100
3523
- },
3524
- {
3525
- key: "route",
3526
- title: t("global.route"),
3527
- dataIndex: "route",
3528
- width: 200
3529
- },
3530
- {
3531
- key: "request",
3532
- title: t("global.request"),
3533
- dataIndex: "request",
3534
- render(value) {
3535
- return /* @__PURE__ */ jsx(ExpandableParagraph_default, { children: value });
3536
- }
3537
- },
3538
- {
3539
- key: "response",
3540
- title: t("global.response"),
3541
- dataIndex: "response",
3542
- render(value) {
3543
- return /* @__PURE__ */ jsx(ExpandableParagraph_default, { children: value });
3544
- }
3545
- },
3546
- {
3547
- key: "creation_time",
3548
- title: t("global.creationTime"),
3549
- dataIndex: "ctime",
3550
- width: 200,
3551
- render(value) {
3552
- return dayjs(value).format("YYYY-MM-DD HH:mm:ss");
3553
- }
3554
- }
3555
- ];
3556
- return /* @__PURE__ */ jsx(Card, { title: "\u64CD\u4F5C\u65E5\u5FD7", children: /* @__PURE__ */ jsx(
3557
- QueryList_default,
3558
- {
3559
- rowKey: "id",
3560
- code: "300001",
3561
- columns,
3562
- tableLayout: "fixed",
3563
- url: "/api/usystem/log/list",
3564
- getTotal: (data) => data?.data?.Total,
3565
- getDataSource: (data) => data?.data?.List,
3566
- renderForm: (form) => /* @__PURE__ */ jsxs(Form, { form, layout: "inline", children: [
3567
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.username"), name: "uname", children: /* @__PURE__ */ jsx(Input, { allowClear: true }) }),
3568
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.route"), name: "route", children: /* @__PURE__ */ jsx(Input, { allowClear: true }) }),
3569
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.method"), name: "method", children: /* @__PURE__ */ jsxs(Select, { allowClear: true, style: { width: "100px" }, children: [
3570
- /* @__PURE__ */ jsx(Option, { value: "get", children: "GET" }),
3571
- /* @__PURE__ */ jsx(Option, { value: "post", children: "POST" })
3572
- ] }) }),
3573
- /* @__PURE__ */ jsx(Form.Item, { label: t("global.label"), name: "label", children: /* @__PURE__ */ jsx(Input, { allowClear: true }) })
3574
- ] })
3575
- }
3576
- ) });
3577
- };
3578
- var operationLogList_default = withContext(OperationLogList, { isGlobal: true });
3579
- var UserList2 = lazy(() => Promise.resolve().then(() => (init_userList(), userList_exports)));
3580
- var UserDetail2 = lazy(() => Promise.resolve().then(() => (init_userDetail(), userDetail_exports)));
3581
- var RoleList2 = lazy(() => Promise.resolve().then(() => (init_roleList(), roleList_exports)));
3582
- var RoleDetail2 = lazy(() => Promise.resolve().then(() => (init_roleDetail(), roleDetail_exports)));
3583
- var permission_default = /* @__PURE__ */ jsxs(Routes, { children: [
3584
- /* @__PURE__ */ jsx(Route, { index: true, element: /* @__PURE__ */ jsx(Navigate, { to: "user" }) }),
3585
- /* @__PURE__ */ jsx(Route, { path: "user", element: /* @__PURE__ */ jsx(UserList2, {}) }),
3586
- /* @__PURE__ */ jsx(Route, { path: "user/:id", element: /* @__PURE__ */ jsx(UserDetail2, {}) }),
3587
- /* @__PURE__ */ jsx(Route, { path: "role", element: /* @__PURE__ */ jsx(RoleList2, {}) }),
3588
- /* @__PURE__ */ jsx(Route, { path: "role/:name", element: /* @__PURE__ */ jsx(RoleDetail2, {}) })
3589
- ] });
3590
-
3591
- // src/index.ts
3592
- init_signIn();
3593
- init_utils();
3594
-
3595
- export { APP_ID_HEADER, DynamicTags_default as DynamicTags, ExpandableParagraph_default as ExpandableParagraph, FRONTEND_ROUTE_PREFIX, FilterFormWrapper_default as FilterFormWrapper, Highlight_default as Highlight, InfiniteList_default as InfiniteList, Layout_default as Layout, NavMenu_default as NavMenu, notFound_default as NotFound, operationLogList_default as OperationLogList, PermissionButton_default as PermissionButton, PermissionVersion, QueryList_default as QueryList, QueryListAction, RequireGame_default as RequireGame, RequirePermission_default as RequirePermission, SSO_URL, signIn_default as SignIn, ToolkitsProvider_default as ToolkitsProvider, UserWidget_default as UserWidget, WILDCARD, menu_default as menuRoutes, mixedStorage, permission_default as permissionRoutes, useFindGame, useFormModal, useGames, useMenuList, useModal, useModalStore, usePermission, useQueryListStore, useToolkitsStore, withContext };
1
+ import Ur,{AxiosHeaders,isAxiosError}from'axios';import {jwtDecode}from'jwt-decode';import {useStore,create,createStore}from'zustand';import {persist,createJSONStorage}from'zustand/middleware';import Kr from'./logo-L6MFCL6M.png';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import*as Ke from'antd';import {Modal,Form,Spin,Result,Table,Button,Card,Input,Select,App,Space,Popconfirm,Switch,InputNumber,theme,Tag,Typography,Alert,Divider,Menu,Row,Col,Breadcrumb,Descriptions,Skeleton,Empty,Dropdown,Tooltip,Checkbox,Collapse}from'antd';import {Routes,Route,Navigate,useNavigate,useParams,useLocation,Link}from'react-router-dom';import Ie,{mutate,unstable_serialize,useSWRConfig}from'swr';import {forwardRef,lazy,useContext,useMemo,useState,useEffect,useImperativeHandle,cloneElement,useRef,createContext,memo,useCallback,Fragment as Fragment$1,Suspense,useTransition}from'react';import {last,has,template,get,isEqual,first}from'lodash-es';import {flushSync}from'react-dom';import {createRoot}from'react-dom/client';import en from'swr/immutable';import {PlusOutlined,UserAddOutlined,UsergroupAddOutlined,LogoutOutlined,UserOutlined,MenuUnfoldOutlined,MenuFoldOutlined,MinusCircleOutlined}from'@ant-design/icons';import De from'swr/mutation';import {Editor}from'@monaco-editor/react';import {produce}from'immer';import'animate.css';import es from'query-string';import ja from'swr/infinite';import n1 from'dayjs';var Er=Object.defineProperty;var g=(o,t)=>()=>(o&&(t=o(o=0)),t);var he=(o,t)=>{for(var e in t)Er(o,e,{get:t[e],enumerable:!0});};var So,vt=g(()=>{So={getItem:o=>sessionStorage.getItem(o)||localStorage.getItem(o),setItem:(o,t)=>{sessionStorage.setItem(o,t),localStorage.setItem(o,t);},removeItem(o){sessionStorage.removeItem(o),localStorage.removeItem(o);}};});var _o,Co=g(()=>{_o=()=>({axios:Ur.create()});});var Or,Io,wo=g(()=>{Or={global:{noEntitlement:"No permission, please contact the administrator.",name:"Name",creationTime:"Creation Time",operation:"Operation",update:"Update",edit:"Edit",delete:"Delete",selectAll:"Select All",game:"Game",user:"User",role:"Role",username:"Username",password:"Password",label:"Label",method:"Method",route:"Route",request:"Request",response:"Response",add:"Add",signIn:"Sign In",projectGroup:"Project Group",view:"View"},SignIn:{title:"Sign In Method",thirdParty:"Third party sign in",signInWithIDass:"Sign in with IDass",unregistered:"You are not yet registered on the platform, please contact the administrator",welcome:"Welcome"},NotFound:{subTitle:"The page you visited does not exist",buttonText:"Return to homepage"},FilterFormWrapper:{confirmText:"Search",resetText:"Reset"},FormModal:{confirmText:"Confirm",cancelText:"Cancel"},GameSelect:{label:"Current Game",placeholder:"Please select a game"},RequireGame:{description:"Please select a game"},UserWidget:{signOutText:"Sign Out"},User:{createTitle:"Create User",createSuccessfully:"User created successfully",updateTitle:"Update User",updateSuccessfully:"User updated successfully",deleteTitle:"Delete User",deleteContent:"Are you sure you want to delete user <%= user %>?",deleteSuccessfully:"User deleted successfully"},Role:{createTitle:"Create Role",createSuccessfully:"Role created successfully",updateTitle:"Update Role",updateSuccessfully:"Role updated successfully",deleteTitle:"Delete Role",deleteContent:"Are you sure you want to delete role <%= role %>?",deleteSuccessfully:"Role deleted successfully"},PermissionList:{failedDescription:"Failed to get permission list",baseSectionTitle:"Platform Basic Permissions",gameSectionTitle:"Game Permissions",gameSectionDescription:"Please select a game first",gameSelectPlaceholder:"Please select a game first",removeText:"Remove",addText:"Add Game Permissions"},RoleDetail:{title:"Role Details"},InfiniteList:{loadingText:"Loading...",reachEndText:"You've reached the end",loadMoreText:"Load more"}},Io=Or;});var Pt,ce,ye,Ue,j,oe=g(()=>{Pt="https://idaas.ifunplus.cn/enduser/api/application/plugin_FunPlus/sso/v1",ce="App-ID",ye="/console/",Ue=(s=>(s.V1="v1",s.V2="v2",s.V3="v3",s))(Ue||{}),j="*";});var vo,Po=g(()=>{wo();vo=o=>({locale:Io,gameApiV2:!1,isGlobal:!1,signInPath:"/sign_in",mainPagePath:"/",title:{fontSize:18},permissionVersion:"v1",setContext(t){o(e=>({...e,...t}));}});});var Mo,ko=g(()=>{Mo=o=>({setGameId:t=>{o({gameId:t});}});});var To,Fo=g(()=>{To=(o,t)=>({getUser:()=>{let e=t().token;if(e)try{return jwtDecode(e)}catch{return null}return null},setToken:e=>o({token:e})});});var Ro,Do=g(()=>{vt();Co();Po();ko();Fo();Ro=o=>createStore()(persist((...t)=>{let[e,s,r]=t;return {...To(...t),...Mo(...t),...vo(...t),..._o(...t),clearToken(){s().setToken(""),r.persist.clearStorage();},...o}},{name:"toolkits",storage:createJSONStorage(()=>So),partialize:t=>({token:t.token,gameId:t.gameId,collapsed:t.collapsed})}));});var Hr,we,Lo=g(()=>{Hr=o=>jsx("img",{src:Kr,alt:"logo",...o}),we=Hr;});var Mt=g(()=>{Lo();});var Go,Vo=g(()=>{Go='data:image/svg+xml,<svg xml:space="preserve" style="enable-background:new 0 0 6000 4000;" viewBox="0 0 6000 4000" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" id="Layer_1" version="1.1">%0A<style type="text/css">%0A%09.Graphic_x0020_Style_x0020_100{fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_101{fill:url(%23SVGID_1_);}%0A%09.Graphic_x0020_Style_x0020_102{fill:url(%23SVGID_2_);}%0A%09.Graphic_x0020_Style_x0020_104{fill:%23DB6767;}%0A%09.Graphic_x0020_Style_x0020_105{fill:%23FFDE70;}%0A%09.Graphic_x0020_Style_x0020_106{fill:%23FFB114;}%0A%09.Graphic_x0020_Style_x0020_107{fill:%236584C6;}%0A%09.Graphic_x0020_Style_x0020_108{fill:%23102140;}%0A%09.Graphic_x0020_Style_x0020_109{fill:%233B546B;}%0A%09.Graphic_x0020_Style_x0020_110{fill:%23152A52;}%0A%09.Graphic_x0020_Style_x0020_111{fill:%23E8766F;}%0A%09.Graphic_x0020_Style_x0020_112{fill:%23EF5668;}%0A%09.Graphic_x0020_Style_x0020_113{fill:%23FC9590;}%0A%09.Graphic_x0020_Style_x0020_114{fill:%23912433;}%0A%09.Graphic_x0020_Style_x0020_115{opacity:0.5;fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_116{fill:%231A1A1A;}%0A%09.Graphic_x0020_Style_x0020_117{fill:%23535353;}%0A%09.Graphic_x0020_Style_x0020_118{fill:%23DBD2DB;}%0A%09.Graphic_x0020_Style_x0020_119{fill:%234D73C6;}%0A%09.Graphic_x0020_Style_x0020_120{fill:%23D1334A;}%0A%09.Graphic_x0020_Style_x0020_123{fill:url(%23SVGID_3_);}%0A%09.st0{fill:url(%23SVGID_4_);}%0A%09.st1{fill:url(%23SVGID_5_);}%0A%09.st2{fill:url(%23SVGID_6_);}%0A%09.st3{fill:%239D8A9D;}%0A%09.st4{fill:url(%23SVGID_7_);}%0A%09.st5{fill:url(%23SVGID_8_);}%0A%09.st6{fill:%233B546B;}%0A%09.st7{fill:%23A8A1A8;}%0A%09.st8{fill:%23DBD2DB;}%0A%09.st9{fill:%23FFFFFF;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st10{fill:%23339E7E;}%0A%09.st11{fill:none;stroke:%2310663F;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st12{fill:%2300593B;}%0A%09.st13{fill:none;stroke:%233DBE88;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st14{fill:none;stroke:%23134411;stroke-width:8.0149;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st15{fill:%23EF5668;}%0A%09.st16{fill:%23FC9590;}%0A%09.st17{fill:%23102140;}%0A%09.st18{fill:%23DB6767;}%0A%09.st19{fill:%231A1A1A;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st20{fill:%23FFFFFF;}%0A%09.st21{fill:%23535353;}%0A%09.st22{fill:%23F9EBF9;}%0A%09.st23{fill:%23D896D8;}%0A%09.st24{fill:%238E3D8E;}%0A%09.st25{fill:%23CA74CA;}%0A%09.st26{fill:%23D590D5;}%0A%09.st27{fill:%23160A16;}%0A%09.st28{fill:%23384A6E;}%0A%09.st29{fill:%23B7C0D4;}%0A%09.st30{fill:%23E8766F;}%0A%09.st31{fill:%23FFB114;}%0A%09.st32{fill:%23FFDE70;}%0A%09.st33{fill:%23434343;}%0A%09.st34{fill:%23664708;}%0A%09.st35{fill:%23D9D9D9;}%0A%09.st36{fill:url(%23SVGID_9_);}%0A%09.st37{fill:url(%23SVGID_10_);}%0A%09.st38{fill:url(%23SVGID_11_);}%0A%09.st39{fill:url(%23SVGID_12_);}%0A</style>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_1_">%0A%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_2_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_3_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A</linearGradient>%0A<g>%0A%09<linearGradient y2="3014.9536" x2="4941.2124" y1="3014.9536" x1="1288.5804" gradientUnits="userSpaceOnUse" id="SVGID_4_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1288.6,2793.9c55.3,134.1,186.5,387.6,453.7,503.3c220.8,95.6,442.9,57.4,694.7,14.2%0A%09%09c343.1-59,344.3-140.4,552.9-134.7c282.5,7.8,357.3,159.3,673.4,219.7c66.5,12.7,309.6,47.5,574.2-28.4%0A%09%09c360.6-103.4,734.8-407.2,701.8-560C4895.4,2605.9,4103.5,2505.3,1288.6,2793.9z" class="st0"></path>%0A%09<linearGradient y2="1994.5433" x2="5456.5684" y1="1994.5433" x1="686.3356" gradientUnits="userSpaceOnUse" id="SVGID_5_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5428.3,1649.1c-131.4-612.4-697.6-977.3-1155.4-1020.7c-232.1-22-245.1,56.7-616.7,117%0A%09%09c-821.7,133.2-1081-199.5-1850.1-85.1c-341.2,50.8-687.6,102.3-914.4,382.8C519.9,1502.7,718.2,2270,973.9,2621.3%0A%09%09c165.2,227,392.7,363.9,392.7,363.9c68.9,41.5,168.6,100.4,304.8,131.1c237.9,53.7,359.9-29.9,560-42.5%0A%09%09c342.7-21.6,401.6,197.2,772.6,276.4c190.7,40.7,257.4,0.5,1084.5-212.6c811.7-209.1,858.2-198.9,974.7-297.7%0A%09%09C5379.4,2571.8,5521.7,2084.7,5428.3,1649.1z M2709.5,2042.7v-2.7V2042.7z" class="st1"></path>%0A%09<linearGradient y2="1859.5726" x2="5227.9292" y1="1859.5726" x1="1116.5316" gradientUnits="userSpaceOnUse" id="SVGID_6_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5148.1,1664.4c-146.3-421.8-552.5-838.3-943.2-819c-297.4,14.6-412.5,273.3-678.4,215.1%0A%09%09c-227.7-49.8-217.9-255.8-471.6-405.4c-401.7-236.8-1083-107.4-1265.9,223.4c-99.3,179.7-11.7,346.7-173.7,521.2%0A%09%09c-113.5,122.3-192.5,78.9-314.4,198.6c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1%0A%09%09c827.4,146.2,1654.7,292.3,2482.1,438.5c80.8,13.1,529.4,77.9,879.7-216.7C5295.8,2609,5272.6,2023.2,5148.1,1664.4z%0A%09%09 M2709.5,2042.7v-2.7V2042.7z" class="st2"></path>%0A%09<path d="M5224.3,2042.5c-143.7-88.6-413.9-68.2-740.1-95.9c-488.7-41.5-1188.7,312.8-1437,221.4%0A%09%09c-95.1-35-167.4-141.7-220.4-260v1053.6c291.4,51.5,582.8,103,874.2,154.4l1292.2-269.1C5190,2615.6,5243.4,2314,5224.3,2042.5z" class="st3"></path>%0A%09<linearGradient y2="1741.7239" x2="2757.678" y1="1741.7239" x1="1116.5317" gradientUnits="userSpaceOnUse" id="SVGID_7_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.3,179.7-11.7,346.7-173.7,521.2c-113.5,122.3-192.5,78.9-314.4,198.6%0A%09%09c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1c411.1,72.6,822.2,145.3,1233.4,217.9V550.2%0A%09%09C2377.7,484.9,1931.7,620.4,1789.1,878.4z M2709.5,2042.7v-2.7V2042.7z" class="st4"></path>%0A%09<linearGradient y2="1215.4698" x2="2649.5779" y1="1215.4698" x1="1137.9542" gradientUnits="userSpaceOnUse" id="SVGID_8_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.4,179.7-11.7,346.7-173.7,521.2c-113.6,122.3-192.5,78.9-314.4,198.6%0A%09%09c-79.1,77.6-134.7,183-163,298.8c82.9-108.4,187.6-189.5,319.3-210.4c445.6-70.8,892.8,45.1,1192.3-113.7V537.1%0A%09%09C2296.9,511.3,1918.4,644.5,1789.1,878.4z" class="st5"></path>%0A%09<polygon points="1937.1,644.5 1937.1,2265.3 1979.7,2269.9 1983,640.9" class="st6"></polygon>%0A%09<path d="M2757.7,550.2c-35.6-6.1-71.7-10.5-108.1-13.1v1035.7c38.6-20.4,74.7-45.4,108.1-76V550.2z" class="st7"></path>%0A%09<path d="M1117.4,850.5c-15.5,9-30.8,18.5-45.8,28.5v1689.5l42.6,5.1L1117.4,850.5z" class="st6"></path>%0A%09<path d="M2826.8,564.5c-22.7-5.5-45.8-10.3-69.1-14.3v2399.3c23,4.1,46.1,8.1,69.1,12.2V564.5z" class="st8"></path>%0A%09<g>%0A%09%09<path d="M1121,2361c0,0-98.3-110.7,84.2-222.1c-25.3,43.4-118,92.3-52.4,202.9%0A%09%09%09c27.1,62.9-12.8,89.7-12.8,89.7S1080.6,2436.5,1121,2361z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<g>%0A%09%09%09<path d="M1282.2,2470.4c-15.5,28.9-215.1,26.5-315.7,23.4c-1.1-4.4-2.1-8.7-3.1-13c-1.8-7.8-3.5-15.5-5-23.2%0A%09%09%09%09C1035.2,2452.4,1299.9,2437.2,1282.2,2470.4z" class="st9"></path>%0A%09%09%09<path d="M1282.2,2470.4l-16.7,216.9c-25.9,39.1-25.5,89.5-36,137.5c-4.3,22.7-20.4,30.2-38.6,29.2%0A%09%09%09%09c-39.4-34.1-82.1-74.2-124.2-119.9c-50-80.3-81.3-162.6-100.3-240.3C1067.1,2496.9,1266.7,2499.4,1282.2,2470.4z" class="st9"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1331.3,2151c12.7,12.2,30.7,16,43,17c5.5-2.7,11.1-5.7,16.6-8.9c24.3-13.9,39.8-38.8,49.7-66.7%0A%09%09%09%09c-16.1,5.8-51.8,17.4-67.4,11.2c-20.4-8.1-12.5-17.1-3-14.1c11.7,6,55.7-6.5,75.3-12.5c4.1-14.9,6.8-30.2,8.6-44.8%0A%09%09%09%09c-13.9,8.3-34.9,15.8-44.4,12.6c-12.3-4.2-7.4-14.4,2.7-13.2c7.4,0.8,31.4-12,43.6-18.8c2.2-29.7,0.8-53.4,0.4-59.6%0A%09%09%09%09c-0.1-1-0.1-1.6-0.1-1.6s-29-8.6-66.9-14.1c-8,8.1-19.9,20.8-24.9,29.3c-8,13.3-11.7,24.3-18.1,22.2%0A%09%09%09%09c-12.7-6.6,13.3-37.6,27.8-53.4c-16.5-1.8-34.1-2.9-51.4-2.3c-51.5,40.6-24.5,76.1-44.7,71.8c-17.5-3.7,13.5-51.5,26.6-70.5%0A%09%09%09%09c-16.3,1.8-31.9,5.4-45.3,11.6c-12.1,6.2-22.8,12.2-32.4,18.1c-14.5,34.4,20,53.7,1.7,57.9c-14.3,3.3-16.2-30.4-16.2-48.5%0A%09%09%09%09c-124.9,86.7,2.8,144.8,2.8,144.8c0.1,0.5,0.2,1,0.3,1.6c11.4,70.5,70.1,82,134.6,58.3c-10-8-28.1-22.8-31-26.1%0A%09%09%09%09C1315,2147.7,1321.1,2139.9,1331.3,2151z" class="st10"></path>%0A%09%09%09<path d="M1433.5,1969.4c0,0-146,112.4-218.2,149.3" class="st11"></path>%0A%09%09%09<path d="M1396.4,2051c0,0-33.9,4.5-68.8-3.9" class="st11"></path>%0A%09%09%09<path d="M1316.2,1996.6c0,0-20.5,49.4-10.8,65.9" class="st11"></path>%0A%09%09%09<path d="M1352,2122.6c0,0-59.6-20.8-79-38.4" class="st11"></path>%0A%09%09%09<path d="M1216.4,2052.4c0,0-4.7,37.9,18.4,55.6" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M882.7,2066.4c10.6,1.3,21,2.9,31.1,4.8c13.6,13.1,30.4,35.2,30.3,62.7c-1.8,23.8,15.4,19.7,16.3,10%0A%09%09%09%09c0.7-7-2.6-43-4.5-62.6c108.1,32.2,164.1,103.7,86.8,204.4c0,0,80.5,195.4-178.5,184.8c22.7-22.7,62.8-66.9,41.4-76.4%0A%09%09%09%09c-27.3-12.2-10,45.1-70.7,74.5c-19-1.7-39.5-4.4-61.7-8.2c-24-5.1-47.2-15.4-69.1-28.8c39.7-11.4,137-41.9,120.6-63.3%0A%09%09%09%09c-18.9-24.6-31,45.8-143.9,47.6c-21.5-15.8-41.4-33.9-58.9-52.1c37.3-6,107.4-20.1,100.5-40.6c-5.2-8.8-23.3,1.5-49.6,10.6%0A%09%09%09%09c-16.7,5.7-46.9,10.3-66.7,12.9c-38.7-43.2-62.7-81.8-62.7-81.8s30.7-35.6,77.3-76.8c23.3,3.1,68.1,9.9,76,18.1%0A%09%09%09%09c10.7,11.2,29.3,3.1,19.9-14.1c-7.3-13.2-42.1-23.8-69.1-26.7c20.4-16.6,42.9-33.2,66.6-48c31,11.1,99.6,37.5,106.2,56.3%0A%09%09%09%09c7.6,12.8,28.5,9,14.2-20.6c-10.9-22.7-68.4-42.4-95-50.5C786.1,2077.1,836.1,2060.7,882.7,2066.4z" class="st12"></path>%0A%09%09%09<path d="M593.2,2264.5c0,0,316.6-1.6,449.7,21.1" class="st13"></path>%0A%09%09%09<path d="M740.2,2197.3c0,0,46.4,26.9,77.7,70.8" class="st13"></path>%0A%09%09%09<path d="M768.3,2342.5c0,0,86.7-42.5,95.7-72.6" class="st13"></path>%0A%09%09%09<path d="M883.4,2149.7c0,0,45.4,83.2,46.7,123.9" class="st13"></path>%0A%09%09%09<path d="M958.3,2368c0,0,53.3-43.2,47.7-87.5" class="st13"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M924,1810c7.6,5.4,14.9,11,21.8,16.7c4.5,17.1,7.4,43.4-5.2,67.8c-12.3,20.5,2.9,23.7,8,15.4%0A%09%09%09%09c3.7-5.9,17.7-39.3,25.2-57.5c68.8,71.8,79.4,157.7-26.4,216.5c0,0-27.1,205.9-222.4,93.1c27.9-11.1,79.1-34.4,67-51.4%0A%09%09%09%09c-15.5-21.8-28.3,36.1-88.6,38c-13.9-9.1-28.5-19.7-43.9-32c-16.2-14.1-29.4-32.6-40.2-53.2c35.9,5.7,125,17.5,122.1-8.1%0A%09%09%09%09c-3.3-29.5-44.9,28.3-132.9-15.1c-9.4-22.6-16.5-46.7-21.7-69.8c31.6,9.6,92.2,25,96.2,4c0-9.9-18.7-8-43.2-10.4%0A%09%09%09%09c-15.5-1.6-41-9.5-57.5-15.1c-10.2-53.9-11.1-97.8-11.1-97.8s40-19.4,94.8-37.4c16.6,12,48.1,36,50.4,46.4%0A%09%09%09%09c3.2,14.2,21.3,14.5,21.8-4.6c0.4-14.7-21.6-38-41.2-51.3c23.4-6.6,48.4-12.4,73.4-16.1c18.9,22.3,59.8,73.1,56.3,92.5%0A%09%09%09%09c0,14.5,17.9,19.4,20.4-12.7c1.9-24.5-33.5-65-50.3-82.8C844.5,1781,890.6,1786.3,924,1810z" class="st10"></path>%0A%09%09%09<path d="M609.7,1870.6c0,0,245.3,125,337.8,198.4" class="st11"></path>%0A%09%09%09<path d="M754.1,1869.5c0,0,23.6,42.4,27.7,94" class="st11"></path>%0A%09%09%09<path d="M709.4,2009.9c0,0,86.4-3.2,107.1-26.3" class="st11"></path>%0A%09%09%09<path d="M886.5,1884.4c0,0-2.9,92.1-20.5,128.9" class="st11"></path>%0A%09%09%09<path d="M844.5,2108.4c0,0,60.9-17.2,76.8-58.8" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1245.1,1794.2c20.8-5.3,34.8-21,42.5-32.8c-0.2-7.2-0.7-14.6-1.4-22.1c-3.2-32.9-23.8-63.7-50.7-90.6%0A%09%09%09%09c-1.8,19.7-7.4,62.7-22.8,74.5c-20.1,15.5-26.4,2-17.9-5.6c13.2-8.1,22.1-59.9,25.4-83.2c-15-13.2-31.3-25.3-47.2-36%0A%09%09%09%09c2.2,19-0.2,44.7-9,52.2c-11.4,9.8-20.6-1.3-13.9-10.8c4.9-7,2.8-38.8,1.4-55.2c-33.1-20.3-61.3-33.5-68.7-36.8%0A%09%09%09%09c-1.2-0.6-1.9-0.9-1.9-0.9s-25.3,23.8-51.7,58.6c5.2,13,13.5,32.7,20.6,42.9c11.1,16.1,21.9,26.5,16,31.7%0A%09%09%09%09c-14.4,8.7-36.4-36.3-47-60.5c-10.9,15.5-21.4,32.5-29.9,50.2c19.7,76.5,74.9,71.1,59.3,88.7c-13.5,15.3-52.4-45-67.4-69.8%0A%09%09%09%09c-6.6,17.5-10.6,35.3-10.6,52.6c0.7,15.9,2,30.4,3.8,43.6c32.1,35.6,72.7,12.7,67.8,33.6c-3.8,16.4-43.7-2.3-64.6-13.4%0A%09%09%09%09c33.9,178.4,168.8,85.6,168.8,85.6c0.7,0.2,1.3,0.5,2,0.7c87.5,31.6,132-20.3,138.8-99.5c-14.6,5.1-41.3,14.3-46.7,15.2%0A%09%09%09%09C1232.6,1808.5,1226.7,1797.5,1245.1,1794.2z" class="st10"></path>%0A%09%09%09<path d="M1089.2,1580.6c0,0,52.5,215.2,56.8,310.2" class="st11"></path>%0A%09%09%09<path d="M1164,1667.7c0,0-12.8,36.8-41,66.6" class="st11"></path>%0A%09%09%09<path d="M1058.6,1715c0,0,46.2,50.8,70.4,51.1" class="st11"></path>%0A%09%09%09<path d="M1223.1,1755.9c0,0-55.6,47.1-86.3,55.9" class="st11"></path>%0A%09%09%09<path d="M1070,1849.3c0,0,41.4,27.9,74,15.4" class="st11"></path>%0A%09%09</g>%0A%09%09<path d="M1146.1,1890.8c0,0,14.8,158.8-25,350.6" class="st14"></path>%0A%09%09<path d="M937.7,2061.4c0,0,170.2,50.3,183.3,183.5" class="st14"></path>%0A%09%09<path d="M1029.4,2285.6c13.6-4.9,80.6-4.6,99.5,8.8" class="st14"></path>%0A%09%09<path d="M1223.3,2114.4c0,0-98.3,30.9-77.3,232.1" class="st14"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M2812.2,2216.6c0,0,60.8,180.6,68.3,350.2c-193.8,44.1-832.8-6.2-832.8-6.2%0A%09%09%09s14-297.1,80.4-332.6C2416.5,2250.4,2812.2,2216.6,2812.2,2216.6z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M2880.5,2566.9c-7.5-169.6-68.3-350.2-68.3-350.2s-395.8,33.8-684.1,11.4%0A%09%09%09c-17.2,9.2-30.9,36-41.7,70.6c61.5,25.5,298.6,104,672.8-9.3c-4.1,90.6,73.5,94.8,73.5,94.8c12.1,42.2,11.5,131.9,9.7,189.5%0A%09%09%09C2856.4,2571.7,2869.2,2569.4,2880.5,2566.9z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<path d="M2025.5,1497.7c-85.5,55.5-169,100.9-241.9,164.1c7.6,4.2,13.3,9.3,16.2,15.7%0A%09%09%09c0,0,180.9-97,314-235c-1,0.6-1.9,1.2-2.9,1.8C2081.6,1463,2054.9,1479,2025.5,1497.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2229.4,1095.4c-25.7-0.9-176.5,78.1-272.1,168.2c-95.6,90.1-340.3,323.9-337.5,369.2%0A%09%09%09c19.6,10.4,121.7,5.7,163.9,29c72.9-63.1,156.4-108.6,241.9-164.1c29.4-18.7,56.1-34.7,85.5-53.4c0.9-0.7,1.9-1.2,2.9-1.8%0A%09%09%09c13.7-14.2,26.8-28.8,39.2-43.8C2153.1,1398.7,2255.2,1096.3,2229.4,1095.4z" class="st15"></path>%0A%09%09<path d="M2771.6,1674.1c-70.5,28.9-142.4,50.7-222.4,50.7c-37.4,0-80.1,18.7-104.2,53.4%0A%09%09%09c-61.4,98.9-133.6,184.3-232.4,229.8c-32.1,14.6-74.5,15.6-110.7,1.8c-16.7,87.9-31.4,153-31.4,153s68.3,148.9,349.6,142.7%0A%09%09%09c281.3-6.2,397.1-37.2,407.5-93.1C2841.2,2157.3,2787.4,1837.7,2771.6,1674.1z M2709.5,2042.7v-2.7V2042.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2767.4,1598.2c4.1-101.3,24.8-260.6-97.2-366.1c-122-105.5-384.9-173.4-473.5-126.7l-76.5,292.8%0A%09%09%09c11.8,55.4,25.9,140.8,27.6,239.6c1.7,97.6-23.8,254.9-46,372c36.3,13.8,78.6,12.7,110.7-1.8c98.9-45.4,171-130.9,232.4-229.8%0A%09%09%09c24-34.7,66.8-53.4,104.2-53.4c80,0,151.9-21.8,222.4-50.7C2768.4,1641.5,2766.7,1615.1,2767.4,1598.2z" class="st15"></path>%0A%09%09<path d="M2357.9,1064.1c0,0-9-52.4-22.1-33.8c-13.1,18.6-10.3,92.4,9,98.6" class="st16"></path>%0A%09%09<path d="M2626.6,1195.8c5.3-16-5.3-34.7-24-34.7c-74.8,5.3-155,13.4-224.4-18.7c-23.9-11-31.4-34.7-32.8-58.9%0A%09%09%09c-12.4,46.4-71.3,284.2,13.2,332.7c71.4,40.9,184.3-8.4,256.1-105.5C2581,1285.5,2613.8,1234.5,2626.6,1195.8z" class="st16"></path>%0A%09%09<path d="M2517.2,949.8c-125.5-23.1-169.6,125.8-169.6,125.8s-0.8,2.8-2.2,7.9%0A%09%09%09c1.4,24.2,8.9,47.9,32.8,58.9c69.5,32.1,149.6,24,224.4,18.7c18.7,0,29.4,18.7,24,34.7c-12.9,38.6-45.6,89.7-12,114.9%0A%09%09%09c22.5-30.4,41-65.6,52.8-104.1C2717.1,1045.3,2621.6,969,2517.2,949.8z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2650.9,1208c2.1-1.4,41.5-29.8,53.8,4.1c10.6,31.7-40.8,91.7-77.6,80.7l-7.2-3.4" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2641.7,1253.5c0,0,22.4-60.7,39.3-38c16.9,22.7-50.4,66.6-53,66.6C2625.5,1282,2641.7,1253.5,2641.7,1253.5%0A%09%09%09z" class="st16"></path>%0A%09%09<path d="M2695.3,1256.7L2573,1608.5c0,0-4.1,73.6,8.3,89.5c-74.5,98.7-223.4,363.4-223.4,363.4%0A%09%09%09c93.1,24.8,111.9,120,92.1,155.1c108.5-97.2,400.1-407.5,406.4-575C2879.1,1534.1,2854.6,1361.8,2695.3,1256.7z" class="st15"></path>%0A%09%09<path d="M2837.6,1430.3c30.9,169.9,7.7,183.1-75,353.6%0A%09%09%09c-61.7,127.1-230.6,287.4-312.6,360.9c9.9,28.2,8.9,56.1,0,71.9c108.5-97.2,400.1-407.5,406.4-575%0A%09%09%09C2868.7,1583.2,2867.1,1505.7,2837.6,1430.3z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M2680.8,1197.5c-6.7,0-12.5,1.5-17.3,3.9c-21.5,10.5-26.4,38.8-26.4,38.8s-8.9,23.1-16.3,12.6%0A%09%09%09c-0.8-1.2-1.6-2.7-2.3-4.8c18.6-24.8,18.6-85.5,11.7-103.4c-6.9-17.9-99.3,26.2-212.3-13.8c-68.9-29.9-68.1-84.2-59.4-118%0A%09%09%09c4.5-17.6,11.1-29.6,11.1-29.6c8.7-20.6,14.7-76,34.2-70.3c40.6,11.7,106.8-29.1,164.9-24.4c49.8,4.1,97.3,36.1,128.3,67.6%0A%09%09%09c18.2,18.5,30.7,36.8,34.4,49.1C2741.5,1038.4,2700.5,1163.4,2680.8,1197.5z" class="st17"></path>%0A%09%09<path d="M2759.2,2289.4c0,0-18.6,62.6,23.2,86c41.8,23.4,50.2,8.7,50.2,8.7S2751.6,2373.8,2759.2,2289.4z" class="st9"></path>%0A%09%09<path d="M1712.9,1890.5c-52.6-85.2-72.3-184.5-63.6-284.7c-5.7,3.2-11.6,6.9-17.5,11%0A%09%09%09c0,0-40.7,64.1,46.2,255.8c-60.7,57.2-63.2,76.8-57.8,148.5c3.8,6,7.7,11.4,11.8,16.3C1628.4,1981.4,1663.8,1922.1,1712.9,1890.5z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M1827.7,1946.4c-2.8-88.2-44.1-69.6-38.6-133.1c5.5-63.4,12.4-109.6,15.9-150.3%0A%09%09%09c3.3-38.4-60.9-110.4-155.6-57.2c-8.8,100.2,10.9,199.5,63.6,284.7c-49.2,31.6-84.5,91-80.9,146.9c42.1,50.6,95,40.7,95,40.7%0A%09%09%09s40.7-51,44.8-68.3c11.7,0.7-32.4,71-32.4,71s7.6,14.2,24.1,13C1780.1,2092.5,1830.4,2034.6,1827.7,1946.4z" class="st16"></path>%0A%09%09<path d="M1679.1,1995l-15.9,55.8c0,0,23.8-50.3,29.3-72C1698.1,1957.1,1679.1,1995,1679.1,1995z" class="st18"></path>%0A%09%09<path d="M1719.7,2081.7c0.5-1.4,56.1-102.4,65.3-88.7c9.2,13.7-42,92.4-42,92.4s-5.3,3.1-3.5-4.7%0A%09%09%09c1.8-7.8,42.7-68.9,35.4-68.5c-7.4,0.5-44.1,60.7-47.8,65.7S1719.7,2081.7,1719.7,2081.7z" class="st18"></path>%0A%09%09<path d="M1686.9,2067.8c0,0,33.5-83.7,43.3-79.9c9.8,3.9-39.4,83.3-39.4,83.3L1686.9,2067.8z" class="st18"></path>%0A%09%09<path d="M1653.4,1961.3c0,0-15.7,62.3-15.2,75C1645.6,2045.3,1657.7,1960.6,1653.4,1961.3z" class="st18"></path>%0A%09%09<path d="M1761.8,2227.6c-54.2-19.3-110.3-23.2-166.4-38.7c-0.1,0-0.2-0.1-0.3-0.1c8.4,8.6,16.7,17.2,25.1,25.7%0A%09%09%09c53.2,60.7,288.8,91.2,288.8,91.2s-10.9-9.9-72.5-89.2c-8.1,3.7-16.2,7.5-24.4,11.1C1796.6,2235.3,1777.3,2233.4,1761.8,2227.6z" class="st19"></path>%0A%09%09<path d="M1267.8,1860.2c0,0,164.6,162.1,327.3,328.6c0.1,0,0.2,0.1,0.3,0.1c56.1,15.5,112.2,19.3,166.4,38.7%0A%09%09%09c15.5,5.8,34.8,7.7,50.3,0c8.2-3.6,16.4-7.4,24.4-11.1c-33.8-43.5-82.8-108-153.6-203.3%0A%09%09%09C1514.7,2038.1,1267.8,1860.2,1267.8,1860.2z" class="st20"></path>%0A%09%09<path d="M1894.6,2339.3c-53.4,8-106.9,10.7-163-2.7c-19-4.7-34.6-13.9-48.5-25.2%0A%09%09%09c15.8,36.7,102.7,87.4,133.9,82.8c31.7-4.6,303.8-96.5,339.7-99.3c35.9-2.8,272.6-59.4,293.2-78.4c6.2-5.7,10.6-21.4,10.5-40.6%0A%09%09%09c-161,58-322,87.3-483.1,141.9C1950.7,2325.9,1921.3,2334,1894.6,2339.3z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2357.9,2061.5c-149.6,34-453,200.5-549.1,192.3c0,0-60.2,7.5-96.1-8.3c-35.9-15.8-83.7-37.4-96.5-28.9%0A%09%09%09c-10.2,6.8,29.5,56.4,52.7,80.6c6,6.2,10.8,10.8,13.5,12.5c0.2,0.6,0.5,1.1,0.7,1.7c13.9,11.3,29.5,20.5,48.5,25.2%0A%09%09%09c56.1,13.4,109.5,10.7,163,2.7c26.7-5.3,56.1-13.4,82.8-21.4c161-54.5,322-83.8,483.1-141.9%0A%09%09%09C2460.3,2131.9,2436.5,2068.5,2357.9,2061.5z" class="st16"></path>%0A%09</g>%0A%09<path d="M5147.8,2758.7c3.3,42.6-104.8,129-220.1,160.2c-111.1,40.4-316.5,84.1-839.1,218.8%0A%09%09c-356.5,91.9-571.8,151.6-716.6,186.6c-191.1,46.2-259.5,49.2-368,26c-51.4-11-96.9-24.7-137.9-40%0A%09%09c-255-95.3-339.6-255.1-634.7-236.4c-200.1,12.7-322,96.2-560,42.5c-136.3-30.7-235.9-89.6-304.8-131.1%0A%09%09c0,0-186.3-112.1-344.2-301.7c-39.9-42.2-73.3-85.6-94.5-130.9l1061.8-81.6L5147.8,2758.7z" class="Graphic_x0020_Style_x0020_118"></path>%0A%09<polygon points="1909,2627.9 2329.7,2696.9 2880.5,2648.9 2839.9,2636 1902.2,2607.7 1873.4,2616.7" class="st21"></polygon>%0A%09<path d="M2902.4,2554.2c0,0,128.1,29.9,198.1,36.5c16.9,26,103.7,26.1,139.2,31.4c35.5,5.3,64.9,60.1,137.9,65%0A%09%09c73,4.9,88.9,32.2,118.2,30.1c29.2-2.1,39.1-54.7,49.7-59.9c10.6-5.2-32-38.9-10.7-45.5C3396.5,2597.2,2902.4,2554.2,2902.4,2554.2%0A%09%09z" class="st21"></path>%0A%09<path d="M3668.6,2761.4c39.6,3,90.3-36.8,169.2-23.5c88.5,14.9,307.2,32.5,354.3-1.4%0A%09%09c61.3,3.3,696.2,65.4,749.1,44.1c52.9-21.3,68-34.5,68-34.5l-1182-107.2c0,0-299.4,44.5-286.7,84.2%0A%09%09C3547.2,2749,3629,2758.4,3668.6,2761.4z" class="Graphic_x0020_Style_x0020_117"></path>%0A%09<path d="M3779.6,3218.3c-115.9-48.9-340.1-136.6-484.1-148c-201.1-15.9-340.3-109.9-337.2-157.7%0A%09%09c3.1-47.8-605.8-113-946.8-126.3c-204.7-8-676.2-112.3-330.9-291.5l-79,6.1c-81.3,57.9-200.4,165.5-77.3,230.8%0A%09%09c174.8,92.7,1373.9,95.9,1387.8,212c13.2,110.3,575.5,195.9,765.9,301.5C3710,3236.7,3743.7,3227.7,3779.6,3218.3z" class="st22"></path>%0A%09<g>%0A%09%09<path d="M4484.2,1461.7v1181h488.7v-1181H4484.2z M4939.2,2561.4h-421.4v-539.8h421.4%0A%09%09%09V2561.4z M4939.2,1982.4h-421.4v-485.5h421.4V1982.4z" class="Graphic_x0020_Style_x0020_107"></path>%0A%09%09<rect height="485.5" width="355.8" class="Graphic_x0020_Style_x0020_118" y="1496.9" x="4583.5"></rect>%0A%09%09<rect height="485.5" width="65.6" class="Graphic_x0020_Style_x0020_119" y="1496.9" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="80.1" class="Graphic_x0020_Style_x0020_119" y="2021.5" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="341.3" class="Graphic_x0020_Style_x0020_118" y="2021.5" x="4597.9"></rect>%0A%09%09<polygon points="5067.7,1559.5 4972.9,1461.7 4975.8,2765.4 5070.3,2765.4" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<polyline points="2442.7,2752.3 2386.8,2825.9 2352.6,2827.7 2416.8,2743.1 2832.6,2738.3 %0A%09%09%092839.9,2747.7" class="Graphic_x0020_Style_x0020_117"></polyline>%0A%09%09<polygon points="2832.6,2738.3 2416.8,2743.1 2352.6,2827.7 2134.5,2839.2 2105.5,2724.6 %0A%09%09%092798.5,2694.4" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="3202.8,2854.8 2364.9,2854.8 2386.8,2825.9 2442.7,2752.3 2839.9,2747.7 %0A%09%09%093134.1,2744.3" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="2839.5,2730.9 2805.3,2687.1 2112.4,2717.2 2141.4,2831.8 2359.4,2820.3 %0A%09%09%092393.7,2818.5 2449.6,2745 2846.8,2740.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09%09<polygon points="3202.8,2848.8 2364.9,2848.8 2386.8,2819.9 2442.7,2746.3 2839.9,2741.7 %0A%09%09%093134.1,2738.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3326.7,2053.5c67.2,11.8,127,45.4,188.5,75.5c-25.6-21.6-54.4-38-66.9-44.7c-69.9-65-238.4-55.8-331.3-54.5%0A%09%09%09c-56.7,0.8-107.4,28.8-147.4,65.5C3076.9,2034.1,3204.5,2033.1,3326.7,2053.5z" class="st23"></path>%0A%09%09<path d="M3390.7,2125.6c29.4,10.7,40.1,48.1,64.1,69.5c33.5,30.3,76.4,36.8,117.6,27.5c-4-13-8.3-25.7-12.8-37.7%0A%09%09%09c-7.5-20.2-25.1-39.4-44.4-55.7c-61.4-30.2-121.3-63.8-188.5-75.5c-6.7-1.1-13.5-2.2-20.2-3.1c2.5,4.5,4.8,9.1,6.8,13.8%0A%09%09%09c6.9,18.8,10.9,38,12.4,57.2C3347.5,2119.7,3369.7,2120.3,3390.7,2125.6z" class="st23"></path>%0A%09%09<path d="M3454.8,2195c-24-21.4-34.7-58.8-64.1-69.5c-21.1-5.3-43.3-5.9-65.1-4.2c6.4,84.5-36.4,169.9-95.2,228.6%0A%09%09%09c-29.4,32.1-61.4,58.8-101.5,82.8c-32.1,21.4-66.8,37.4-101.5,53.4c-41.6,14.5-81.5,4.8-119.8-10.2c3.7,32.6,11.1,70.7,27.1,85.4%0A%09%09%09c2.2,2,149.9,56.5,246.1,29.3c130.3-36.9,227.4-163.5,314.2-210.2c10.9-5.9,21.4-12.4,31.4-19.5l-0.4-14l53.6-33.2%0A%09%09%09c3.8-4.2,7.6-8.5,11.2-12.9c-4.1-26.8-10.7-53.3-18.4-78.3C3531.3,2231.8,3488.3,2225.3,3454.8,2195z" class="st24"></path>%0A%09%09<path d="M2963.9,2113.7l-74.4,244.3c3.2,19.6,7.7,41,13.7,64.4c0.8-0.5,1.1,24.3,4.3,53.6%0A%09%09%09c38.3,15.1,78.3,24.8,119.8,10.2c34.7-16,69.5-32.1,101.5-53.4c40.1-24,72.1-50.8,101.5-82.8c65-65,110.5-162.6,91.4-255.6%0A%09%09%09C3210,2135.2,3083,2108.6,2963.9,2113.7z" class="st25"></path>%0A%09%09<path d="M3321.8,2094.4c-2.1-10.2-4.9-20.2-8.6-30.2c-2-4.6-4.2-9.2-6.8-13.8c-116-16.9-235.4-12.9-336.9,44.9%0A%09%09%09l-5.6,18.4C3083,2108.6,3210,2135.2,3321.8,2094.4z" class="st26"></path>%0A%09%09<path d="M3590.8,2300.8c-3.6,4.4-7.4,8.7-11.2,12.9l12-7.5C3591.4,2304.4,3591.1,2302.6,3590.8,2300.8z" class="st9"></path>%0A%09%09<g>%0A%09%09%09<path d="M3452.4,2090.3c-50.3-112.2-85.1-243.7-193.4-309.5c-17.4-9.7-50.3-13.5-71.6,3.9%0A%09%09%09%09c-34.5,27-36.4,68-35.6,109.5c51.1,42.2,96.7,74.2,118.4,75.2c65,3,117,150.1,192.8,215.4c35.5,30.6,78.2,23.7,113.6,7.7%0A%09%09%09%09c-19.8-3.7-39.3-11.4-54.6-19C3487.2,2158,3467.9,2123.1,3452.4,2090.3z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09%09<path d="M3489,1994.5c-13.8-96.5-49-197.2-111.1-242.1c-62.1-44.9-38.1-160-114.8-199.7%0A%09%09%09%09c-190.3-102-287.5,4.8-333,55.2c-45.5,50.3-4.1,77.2-4.1,77.2s123.9,124.8,225.9,209c-0.9-41.4,1-82.4,35.6-109.5%0A%09%09%09%09c21.3-17.4,54.2-13.5,71.6-3.9c108.3,65.8,143.1,197.3,193.4,309.5c15.5,32.9,34.8,67.7,69.6,83.2c15.3,7.7,34.8,15.3,54.6,19%0A%09%09%09%09c40.3-18.2,71.2-48.2,71.2-48.2S3502.8,2091.1,3489,1994.5z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09%09<path d="M3182.3,2144.3c-13.4-74.8,34.7-189.7-58.8-221.7c-16-61.4,5.3-128.2-37.4-184.3%0A%09%09%09%09c-33.7-46.4-75.8-81.1-127.5-97.6c-15.4,4-42.2,14-46.3,24.6c-13.8,35.6-24.4,108.3-3.6,195.1c19.9,94,53.6,191.2,151.7,162.7%0A%09%09%09%09c51,68.9,51,103.4,48.3,128.2c25.3,30.5,60,37.2,94.1,32.1C3192.8,2173.6,3185.5,2160.8,3182.3,2144.3z" class="st16"></path>%0A%09%09%09<path d="M3314.2,2124.9c-5.5-129.6-75.8-207-93.8-211.7c30.3-46.1,33.1-82-6.9-106.8%0A%09%09%09%09c-40-24.8-57.9,67.6-57.9,67.6s-19.3,18-16-3.3c17.7-114.7-62.5-214-170.5-231.9c-1.2-0.2-5.1,0.5-10.4,1.9%0A%09%09%09%09c51.7,16.5,93.8,51.2,127.5,97.6c42.7,56.1,21.4,122.9,37.4,184.3c93.5,32.1,45.4,146.9,58.8,221.7c3.1,16.5,10.5,29.3,20.4,38.9%0A%09%09%09%09C3250.3,2176,3296.5,2145.8,3314.2,2124.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M2969,1635.8c0,0,75.2,27.2,72.4,70.7c-2.8,43.5-9.8,77.5,56.3,98.1c-31.6-35.6-34.2-44-26.9-86.3%0A%09%09%09%09S3035.8,1587.8,2969,1635.8z" class="st17"></path>%0A%09%09%09<path d="M2789.6,2288.5c-77.5,101.5-203,106.9-323.3,128.2c-27.7,5.9-43.7,28.1-64.3,43.4%0A%09%09%09%09c7.2,13.8,19.1,27.9,28,39.8c0.5-0.1,1.1-0.3,1.6-0.4c159.5-16.7,359.4-29.1,470.9-150.7l-0.1-16l61-218.3%0A%09%09%09%09c-27.4,9-56.1,12.8-77.6,32.4C2837.7,2184.3,2824.3,2243.1,2789.6,2288.5z" class="st25"></path>%0A%09%09%09<path d="M3017.4,2050.7c-17.9,4.3-35.5,9.7-52.8,16.1c-58.6,21.8-113.1,55-149.7,106.6%0A%09%09%09%09c-16.4,23.2-29.7,48.3-42.2,73.7c-5.8,11.7-11.7,21.5-19.5,31.9c-8.1,10.8-17.8,20.2-27.8,29.2c-21.9,19.5-47.7,34.4-75.4,44.1%0A%09%09%09%09c-33.1,11.6-67.9,16.1-101.5,25.4c-82.7,23-147.1,41.1-152.6,60.5c-0.2,7,2.3,14.5,6.2,22c20.6-15.4,36.6-37.5,64.3-43.4%0A%09%09%09%09c120.2-21.4,245.8-26.7,323.3-128.2c34.7-45.4,48.1-104.2,96.2-141.6c21.5-19.6,50.2-23.4,77.6-32.4l5.1-18.3%0A%09%09%09%09c11-10.8,16.7-15,29.5-24.1c14.7-10.5,30.5-19.7,47.1-26.7c0.1-0.2,0.2-0.4,0.3-0.6C3036,2046.5,3026.6,2048.4,3017.4,2050.7z" class="st23"></path>%0A%09%09%09<path d="M3045.4,2044.9c-0.1,0.2-0.2,0.4-0.3,0.6c0.7-0.3,1.4-0.6,2.1-0.9%0A%09%09%09%09C3046.6,2044.7,3046,2044.8,3045.4,2044.9z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09%09<path d="M2431.6,2499.6c-0.5,0.1-1.1,0.3-1.6,0.4c0.9,1.2,1.8,2.4,2.6,3.6c10.8,15.3,7.8,45,49.1,42.6%0A%09%09%09%09c30.8-6,230-18.7,273.3-29.7c32-8.2,82.2-26.3,148.2-94.1l-0.7-73.5C2791,2470.5,2591.1,2482.9,2431.6,2499.6z" class="st24"></path>%0A%09%09%09<path d="M2398.2,2439.8c0,0,40.7-31.7,69.6,4.1c29,35.9,49.3,96,29,100.7c-20.4,4.6-65.8,2.1-87-35.2%0A%09%09%09%09C2388.5,2472.2,2387.5,2454.3,2398.2,2439.8z" class="st27"></path>%0A%09%09%09<path d="M3350.7,1877.1c18.7-58.6,71.9-104,69.5-165.2c-4.1,1.2-8.2,5.1-10.8,12.5c-7.6,21.4-71.4,103.8-71.4,103.8%0A%09%09%09%09s0,0,3.8-22.1s1.4-35.5-9.7-36.9c-11-1.4-18.3,10.3-18.3,10.3c1-31-13.4-29.3-23.4-27.6c-10,1.7-9.3,51.4-10,64.8%0A%09%09%09%09c-0.7,13.4-15.2,26.9-20-4.1c-2.8-35.9-40.7-71.7-51.7-66.9c-11,4.8,14.8,62,13.1,94.5c-1.7,32.4-20,100.7-5.5,148.2%0A%09%09%09%09c14.5,47.6-3.4,102-3.4,102l85.3,21.2c4.2-67.5,4.5-134.6,44.5-197.1C3350.7,1903.8,3348,1890.5,3350.7,1877.1z" class="st16"></path>%0A%09%09%09<path d="M3420.1,1711.9c2.4,61.2-50.8,106.6-69.5,165.2c-2.7,13.4,0,26.7-8,37.4%0A%09%09%09%09c-40,62.5-40.2,129.7-44.5,197.1l22.9,5.7c0,0-3.5-115.8,17.2-141.3c20.7-25.5,15.2-80,25.3-108.9c10.1-29,71.3-117.9,72-137.2%0A%09%09%09%09C3436,1717.3,3427.9,1709.7,3420.1,1711.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M3305.2,1839.7c-0.4,0.9,11-56.8,9-67.2c4.3,1.6,4.3,1.6,4.3,1.6S3312.8,1824.1,3305.2,1839.7z" class="st9"></path>%0A%09%09%09<g>%0A%09%09%09%09<polygon points="2369.1,2558.8 2880.5,2623.2 2325,2668.2 1891.1,2604.1" class="Graphic_x0020_Style_x0020_115"></polygon>%0A%09%09%09%09<polygon points="2264.3,2566.5 2626.8,2624.8 2334.4,2648.9 2170.4,2611.3" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M2421.8,2452.1c-5.6-0.2-22.6,8.6-22.6,8.6s-13.8-44.1-80.7-43.4s-64.8,65.5-64.8,65.5s5.5,77.2,26.9,93.1%0A%09%09%09%09%09c21.4,15.9,99.3,4.1,102.4,0c3.1-4.1,45.3-6.9,66.9-30.3c21.6-23.4,33.5-24.4,33.5-24.4S2463.5,2453.5,2421.8,2452.1z" class="st16"></path>%0A%09%09%09%09<path d="M2319.3,2460c0,0-45.5,32.4-15.2,90.3c-6.8,0.6-6.8,0.6-6.8,0.6%0A%09%09%09%09%09S2262.7,2493.1,2319.3,2460z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09%09%09<path d="M2376.8,2552.2c0,0-56.9-11.2-43.1-33.6c13.8-22.4,45.5-15.9,46.9-24.5%0A%09%09%09%09%09c1.4-8.6-15.9-23.8-21.7-14.5c-5.9,9.3-15.5,25.2-15.5,25.2s-24.1,6.2-17.9,23.1c6.2,16.9,33.8,15.5,6.2,16.9%0A%09%09%09%09%09c-27.6,1.4-39.6,0-39.6,0s-7.4,36.2,7.3,37.5c14.7,1.4,61.6,6.9,105-10.3c43.4-17.2,43.8-24.7,43.8-24.7%0A%09%09%09%09%09S2401.3,2559.2,2376.8,2552.2z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09%09<polygon points="2331,2682 2848.1,2642 2880.5,2623.2 2322,2668.2 1885.6,2604.1 %0A%09%09%09%09%091893.9,2613.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M1784.9,2001.5l427.1,0.5l15.9,3c18.3,3.5,31.9,18.7,33.5,37.3c9.9,120.2,38.5,538.8,42.7,616.9%0A%09%09%09%09%09c0.3,6.5-11.2,15-17.7,14.2l-444.6-65.8L1784.9,2001.5z" class="st28"></path>%0A%09%09%09%09<path d="M1794.6,1993.3l411.5,8.2c15.8,0.3,28.8,12.5,30.1,28.3c10.4,126.7,52.8,644.5,49.2,643.3%0A%09%09%09%09%09c-3.6-1.2-348.6-51.6-443.5-65.4c-14.1-2.1-24.9-13.4-26.2-27.6l-52.4-553C1761.5,2008.7,1776.2,1992.9,1794.6,1993.3z" class="st29"></path>%0A%09%09%09</g>%0A%09%09%09<path d="M3465.5,2285.9c-5.8-29.1-28.6-54-57-68.5c9.3,57-21.2,85.5-21.2,85.5c-6.8,3.4-40.2,78.1-48.3,71.7%0A%09%09%09%09c-4.1-3.3-5.8-14.7-6.3-29.4c-17.3-67.3-4-136.5-11.5-203.5c-2.3-18.1-0.7-36.2-6.7-52.6c-6.5-5.5-15.7-10.3-27.9-14.4%0A%09%09%09%09c0.8,120.3-17.7,240.4,10.5,355.6c8,37.4,77.5,16,112.2-8C3452.2,2392.7,3478.9,2339.3,3465.5,2285.9z" class="st24"></path>%0A%09%09%09<path d="M3332.7,2345.1c-0.9-27.1,2.3-65.1,1.7-83.5c-0.9-28.4,4.6-84.2-6.4-147.7c-0.5-9.3-4.6-17.6-13.4-24.9%0A%09%09%09%09c5.9,16.5,4.4,34.5,6.7,52.6C3328.7,2208.5,3315.4,2277.8,3332.7,2345.1z" class="st27"></path>%0A%09%09%09<path d="M3591.6,2306.2l-189.3-113.8c2.9,8.8,4.9,17.1,6.2,24.9c28.4,14.5,51.2,39.4,57,68.5%0A%09%09%09%09c4.9,19.6,4.4,39.1-0.3,57.5c36.8,33.3,76.9,62.3,118.5,89.3C3596.9,2393.5,3597.6,2349.6,3591.6,2306.2z" class="st24"></path>%0A%09%09%09<path d="M3226.7,2062.8c-4.2-0.5-8.6-0.9-13.2-1.3c-89.6,102-96.5,485.4-63.4,524c10.1,11.8,36.5,17.9,71.6,18.6%0A%09%09%09%09c-2.7-1.6-5.1-3.5-7.3-5.6C3080,2450.9,3137.9,2222.8,3226.7,2062.8z" class="st23"></path>%0A%09%09%09<path d="M3465.3,2343.4c-8.1,31.8-28.7,60.1-55.8,78.8c-34.7,24-104.2,45.4-112.2,8%0A%09%09%09%09c-28.2-115.2-9.7-235.3-10.5-355.6c-15.1-5.1-34.8-9.1-60-11.8c-88.8,160-146.7,388.1-12.3,535.7c2.1,2.1,4.6,4,7.3,5.6%0A%09%09%09%09c79.8,1.5,205-25.2,288.3-77.9c38.4-24.3,61.5-56.9,73.7-93.5C3542.2,2405.6,3502.1,2376.6,3465.3,2343.4z" class="st25"></path>%0A%09%09</g>%0A%09%09<path d="M3123.6,1922.5c3.2,5.9-36.5,92.1-63.1,100.4c35,56.6,28,41.3,37.6,63.1c63.2-44,78.1-61.9,78.3-92.2%0A%09%09%09C3177.1,1914.4,3123.6,1922.5,3123.6,1922.5z" class="st30"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3972.8,2436.5c-19.3-100.6-1.9-197.3,30.9-292.1c1.9-7.7,9.7-13.5,11.6-23.2%0A%09%09%09c13.5-58,34.8-108.3,58-160.5c1.9-7.7,1.9-15.5,3.9-23.2c1.5-4.4,6.3-7.7,9.3-11.5c-108.6,18.8-247.9,49.9-313.3,64.9%0A%09%09%09c22.2,33.7,40.9,69.3,52.5,109.1c3.9,7.7,13.5,13.5,17.4,21.3c3.9,5.8,0,11.6,3.9,17.4c11.6,15.5,21.3,29,25.1,48.4%0A%09%09%09c1.9,3.9,7.7,5.8,7.7,9.7c0,94.8,7.7,189.6,0,284.3c-6.7,72.9-22.6,143.8-37.3,214.7c84.9-0.2,183-1.6,281.4-2.7%0A%09%09%09c-52.2-58.4-91.1-128-129.9-198.4C3984.4,2475.2,3976.6,2455.8,3972.8,2436.5z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M4194.9,2483.6c82.8-18.7,163-5.3,237.8,48.1c8,8,26.7,5.3,37.4,0%0A%09%09%09c58.6-34.6,128.4-61.3,198-68.7c-150.8-225.4-393-546.7-446.5-551.9c-23.2-2.2-74.3,4.4-135,14.8c-3.1,3.9-7.9,7.1-9.3,11.5%0A%09%09%09c-1.9,7.7-1.9,15.5-3.9,23.2c-23.2,52.2-44.5,102.5-58,160.5c-1.9,9.7-9.7,15.5-11.6,23.2c-32.9,94.8-50.3,191.5-30.9,292.1%0A%09%09%09c3.3,16.6,9.5,33.3,17.3,49.9C4050.6,2508.5,4130.6,2499.3,4194.9,2483.6z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4470.1,2531.7c-10.7,5.3-29.4,8-37.4,0c-74.8-53.4-155-66.8-237.8-48.1%0A%09%09%09c-64.3,15.7-144.3,24.9-204.8,2.8c1.3,2.7,2.6,5.4,3.9,8.1c38.9,70.4,77.7,140.1,129.9,198.4c233-2.6,467.2-3.9,529.1,13.9%0A%09%09%09c110.3,31.7,131,20.7,137.9-30.3c2.3-16.7-49.5-103.7-123-213.5C4598.5,2470.4,4528.6,2497,4470.1,2531.7z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3879.9,2196.6c0-3.9-5.8-5.8-7.7-9.7c-3.9-19.3-13.5-32.9-25.1-48.4c-3.9-5.8,0-11.6-3.9-17.4%0A%09%09%09c-3.9-7.7-13.5-13.5-17.4-21.3c-11.6-39.8-30.4-75.4-52.5-109.1c-23.2,5.3-37.1,8.6-37.1,8.6s-76.6,50.8-73.5,108.1%0A%09%09%09c3.1,57.3,7.7,545.5-0.1,585.4c44.9,2.2,107.7,2.8,180,2.6c14.8-70.9,30.6-141.8,37.3-214.7%0A%09%09%09C3887.6,2386.2,3879.9,2291.4,3879.9,2196.6z" class="st31"></path>%0A%09%09<path d="M3622.6,2308.8c7.7-30.9,11.6-63.8,40.6-85.1c3.9-3.9,1.9-9.7,5.8-13.5c21.7-17.1,39.8-41.6,63-53.7%0A%09%09%09c-6.4-58.7-17.6-101.8-29.1-95c-30.3,17.9-474.3,322.7-497.1,369.5s-42.1,123.7,13.1,152.8c0,0-20.7-133.5,59.3-157%0A%09%09%09c80-23.4,155.8,45.5,157.2,51c0.7,2.8,16.3,25.9,31.7,46.8c24.5-12.2,48.8-24.7,72.3-41.8%0A%09%09%09C3593.6,2440.4,3609.1,2376.5,3622.6,2308.8z" class="st32"></path>%0A%09%09<path d="M3669.1,2210.2c-3.9,3.9-1.9,9.7-5.8,13.5c-29,21.3-32.9,54.2-40.6,85.1c-13.5,67.7-29,131.5-83.2,174.1%0A%09%09%09c-23.4,17.1-47.7,29.6-72.3,41.8c14.9,20.3,29.7,38.6,30.4,34.1c1.4-9.2,146.2-90.6,205.5-136.8c36.9-28.8,39.6-168.5,29.1-265.5%0A%09%09%09C3708.8,2168.5,3690.8,2193.1,3669.1,2210.2z" class="st31"></path>%0A%09%09<path d="M3252.8,2424.8c-14.7,6.4-25.2,15.5-32.7,25.8c33.5,31.1,84.8,42,119.8,22.2c22.9-10.4,45.8-17.6,64.9-32.9%0A%09%09%09c-0.9-0.6-1.9-1.3-3.1-2.1C3385.9,2421.4,3321.1,2395.2,3252.8,2424.8z" class="st16"></path>%0A%09%09<path d="M3220.1,2450.6c-5.4,7.5-9.3,15.6-11.9,23.8c11.3,29.8,34.2,55.9,59.6,75.9%0A%09%09%09c39.9,36.8,89.5,48.9,140.2,47.1l4-152.6c0,0,0,0-7.2-4.8c-19.1,15.3-42,22.5-64.9,32.9%0A%09%09%09C3304.9,2492.6,3253.6,2481.7,3220.1,2450.6z" class="Graphic_x0020_Style_x0020_113"></path>%0A%09%09<path d="M3267.8,2550.4c-25.4-20-48.3-46.1-59.6-75.9c-0.6,1.9-1.2,3.9-1.7,5.8%0A%09%09%09c-3.2,12.6-4,25-3.7,35.5c0.4,15.7,3.1,26.9,3.1,26.9s73.1,121.3,186.1,122.7c14.5-13.8,14.5-13.8,14.5-13.8l0.5-17.8l0.7-24.6%0A%09%09%09l0.3-11.9C3357.3,2599.3,3307.7,2587.2,3267.8,2550.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3235.6,2602c0,0,20.6,1.7,15.5-3.8c-16.6-18-47.6-98.2-21.8-124.8c29.7-30.7,122.5-41.5,160.6-26.4%0A%09%09%09c-3.3-14.6-3.3-14.6-3.3-14.6s-76.5-31-120-13.1c-43.4,17.9-62.2,9.2-63.8,77c-1.7,67.8,9.5,101.6,23.2,107.8%0A%09%09%09C3239.7,2610.3,3235.6,2602,3235.6,2602z" class="st33"></path>%0A%09%09<path d="M3226,2604.1c0,0-34.8-98.6-3.2-143.2s183.6-37.2,209.7,22.5c15.9-4.6,15.9-4.6,15.9-4.6%0A%09%09%09s51.4-54.7-36.3-81.6c-87.8-26.9-216.5,9.7-228.4,92.5S3199.4,2597,3226,2604.1z" class="st20"></path>%0A%09%09<path d="M3340,2529c32.1-10.7,40.1-29.4,53.4-58.8c2.7-5.3,21.4,2.7,32.1-5.3%0A%09%09%09c34.7-32.1,80.1-48.1,120.2-32.1c9,3,17.6,7.1,26,11.5c-6.3-16.9-12.8-29.1-12.8-29.1s-3-1.5-7.6-3.6%0A%09%09%09c-11.7-5.4-33.9-14.8-44.8-14.3c-15.2,0.7-29.9,22.1-29.9,22.1s-32.8-9-49.4,0c-16.5,9-18.5,35.5-18.5,35.5s-15.9-1.7-33.9,7.3%0A%09%09%09s-6.2,37.2-6.2,37.2s-15.2-12.4-42.1,6.2c-20.5,12.6-13.4,51.1-1.3,85.4C3326.1,2565.1,3319.5,2533.5,3340,2529z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M3545.7,2432.8c-40.1-16-85.5,0-120.2,32.1c-10.7,8-29.4,0-32.1,5.3c-13.4,29.4-21.4,48.1-53.4,58.8%0A%09%09%09c-20.4,4.5-13.9,36.1-14.7,61.9c4.6,13,9.9,25.4,14.7,35.5c6.7,14.3,12.4,24,13.6,24.5c32.4,14.5,39.8-12.1,39.8-12.1%0A%09%09%09s7.4,27.2,34.4,26.6c27-0.6,13.8-43.4,13.8-43.4s36.8,33.1,54,29c17.2-4.1,4.1-42.1,4.1-42.1s23.4,27.6,48.3,21.4%0A%09%09%09c24.8-6.2-10.3-94-10.3-94s24.1,13.3,41.4-12.2c10.5-21.9,1.8-55.6-7.2-79.8C3563.2,2439.9,3554.7,2435.8,3545.7,2432.8z" class="st16"></path>%0A%09%09<path d="M3855.6,1746.2c-34.7-66.8-53.4-157.6-120.2-181.7c-70.3-26.7-149.3,8.2-227.2-3%0A%09%09%09c-21.3,43.8-31,95-34.5,140.3c-7.9,103.1,20.2,204.3,82.4,287.5c9.2,12.3,20.1,15.4,35.2,15.3c13.5-0.1,92.2-26.6,94.3-24.1%0A%09%09%09c0,0,89.2,104.8,138.8,155.4c3.9,4,7.6,7.6,11.1,10.9c41,38.7,55.1,33.2,55.1,33.2s66.2-16.5,80-60.7c13.8-44.1,68-261.3,68-261.3%0A%09%09%09s-2.5-6.5-5.6-15.8C3959.1,1845.2,3889.3,1813.7,3855.6,1746.2z" class="st16"></path>%0A%09%09<path d="M4022,1797.7c-2.8-24.8,81.8-357.6-168.2-366.8c-89.9-3.3-189,3.2-269.9,46.9%0A%09%09%09c-34.4,18.6-58.8,48.8-75.7,83.7c77.9,11.2,156.9-23.7,227.2,3c66.8,24,85.5,114.9,120.2,181.7c33.8,67.5,103.5,99,177.4,96.1%0A%09%09%09c-1.2-3.7-2.5-7.7-3.8-12.1C4026.1,1819.7,4023.1,1807.8,4022,1797.7z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4069.8,1569.7c-23-40.4-27.6-96.5-46-109.4c-0.8-25.3-12.8-44.3-33.2-58.9%0A%09%09%09c-26.3-18.9-66.6-30.6-114.7-39.4c-85.5-15.6-326.4,68.3-388.9,41.2c-46.2-20-44.1,85.7-44.1,85.7s-0.6,8.6,2.7,18.9%0A%09%09%09c0.8,2.6,1.9,5.3,3.4,8c6.8,13.1,21.3,26,51.9,25.5c61.6-0.9,148-35.8,156.3-17.5c8.3,18.4,0.9,143.8,12.9,163.8%0A%09%09%09c4.5,0.7,8.3,1.3,11.5,1.8c16,2.6,16,2.6,16,2.6s1.8-85.5,55.2-84.1c18.2,0.5,37.2,5.3,55.1,14.9c34.5,18.6,64.6,55.2,75.4,113.4%0A%09%09%09c16.6,88.2,147.1,77.2,147.1,77.2s2.3-7.5,5.9-19.9c5.1-17.8,12.8-45.6,20-75.9C4070,1659,4082.1,1591.2,4069.8,1569.7z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<polygon points="3720.5,1573.4 3453,1652.4 3452.3,1641 3736.1,1563.3" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09%09<path d="M3661.3,2544.8c-2.7-1-5.3-2.4-7.9-4.1c4.4,48.9,8.2,80.7,8.2,80.7l146.2-7.8%0A%09%09%09c0,0,5.8-43,13.8-101.1c-7.6,1.5-15.3,3.9-23,7.2C3756.1,2539,3707.8,2556.4,3661.3,2544.8z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3847.5,2157.6c-42.9-65.3-126-117.2-122.4-138.8c-110.1-35.4-87.2,349.7-71.6,521.9%0A%09%09%09c2.6,1.7,5.2,3.1,7.9,4.1c46.4,11.6,94.8-5.8,137.3-25.1c7.7-3.3,15.3-5.7,23-7.2c11.1-80.9,26.4-191.1,35.8-255.6%0A%09%09%09C3859.9,2240.5,3857.5,2172.8,3847.5,2157.6z" class="st32"></path>%0A%09%09<path d="M4242.6,2242.6c0,0,36.8,108.5,119.5,116.7c-13.8,52.4,206.2,183.4,206.2,183.4l9.8-23.8l-239.8-248.8%0A%09%09%09L4242.6,2242.6z" class="st34"></path>%0A%09%09<path d="M3298.6,2799c-8.5,5.6-14.3,9.3-14.8,9.1c-2.1-0.7-22.1,19.3-22.1,19.3%0A%09%09%09s33.8,2.8,36.5,0c0.5-0.5,4.9-3.2,11.4-7C3308.5,2811.6,3304.6,2802.8,3298.6,2799z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<path d="M3379,2744c0,0-53.6,37.3-80.3,55c3.9,2.5,6.9,7,8.8,12.3l95.8-56.5%0A%09%09%09C3402.9,2747.5,3396.9,2742.8,3379,2744z" class="Graphic_x0020_Style_x0020_112"></path>%0A%09%09<path d="M3307.5,2811.4c1.1,2.9,1.8,6,2.3,9.1c26.5-15.5,89.9-50.9,89.9-50.9%0A%09%09%09c2.2-5.4,3.8-10.5,3.6-14.7L3307.5,2811.4z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M4750.6,2686.6c-104.2,18.7-203,5.3-304.6,0c-109.5-2.7-227.1-26.7-334,16%0A%09%09%09c-80.1,29.4-171-21.4-261.8-2.7c-64.6,14.9-126.9,34.4-189.1,52.1c1.8,0.1,3.8,0.2,6,0.2c37.2,0,155.8-45.5,257.9-29%0A%09%09%09s212.4,30.3,251-6.9c96.5,5.5,601.2,41.4,650.9,26.2c10.9-23.2,13.8-50.2,10.6-77.7C4808.9,2673.1,4780.3,2680.7,4750.6,2686.6z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4112.1,2702.6c106.9-42.7,224.4-18.7,334-16c101.5,5.3,200.4,18.7,304.6,0c29.7-5.9,58.4-13.5,86.9-21.6%0A%09%09%09c-9.7-83.3-75.3-171.2-141.6-173.3c-45.6,12.2-90.4,22.8-134.1,31.9c-331.1,69.3-596.5,55.3-657.4,37%0A%09%09%09c-68.9-20.7-170.7,19.4-243.8,51.1c-73.1,31.7-122,56.6-95.8,74.6c-0.8,1.2-5,6.1-5.1,9.5c-0.1,3.5-5.8,5.5-8.7,8.7%0A%09%09%09c-8.6,9.5-7.7,26.2,7.4,27.1c1.8,0.1,3.6,0.3,5.3,0.6c20,3.4,31.7,17.6,60.9,4.9c30.3-4.1,30.3-4.1,30.3-4.1s-21.9,17.1,6.4,19.1%0A%09%09%09c62.2-17.7,124.5-37.2,189.1-52.1C3941.1,2681.3,4031.9,2732,4112.1,2702.6z" class="st16"></path>%0A%09%09<path d="M5017.7,2587.8c-2.7-5.3,2.7-13.4,0-18.7c-37.4-72.1-72.1-141.6-130.9-195%0A%09%09%09c-45.4-42.7-96.2-77.5-141.6-120.2c-64.1-53.4-101.5-125.6-173.7-165.6c-80.1-45.4-157.6-88.2-243.1-120.2%0A%09%09%09c-56.1-18.7-114.9-8-173.7-10.7c-8,0-13.4-8-18.7-8c-26.9-3.6-52.7-12-77.2-22.8l-4.1,6.3l-47.1,153.2l241.3,154.8%0A%09%09%09c0.7,4.9,2.5,10,5.3,15.1c70.7-21.4,153.8-12.5,210.4,35.3c58.8,50.8,77.5,133.6,138.9,176.3c50.8,37.4,117.6,48.1,155,101.5%0A%09%09%09c26.3,32.9,23.8,78.3-4.4,111.2c16.3,20,31.9,41.7,46.4,65.4c43.6,17.7,172.5,20.1,226.6-52.4%0A%09%09%09C5038.9,2660.1,5036.7,2621.8,5017.7,2587.8z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4666.9,2134.6c-215.1-230.3-311.2-220.2-404.5-226.6%0A%09%09%09c-58.4-29.4-93.8-48.3-120.4-4.6c-12.4-21.6-57-17.5-57-17.5l-26.1,40.5c24.5,10.8,50.2,19.2,77.2,22.8c5.3,0,10.7,8,18.7,8%0A%09%09%09c58.8,2.7,117.6-8,173.7,10.7c85.5,32.1,163,74.8,243.1,120.2c72.1,40.1,109.5,112.2,173.7,165.6c45.4,42.7,96.2,77.5,141.6,120.2%0A%09%09%09c58.8,53.4,93.5,122.9,130.9,195c2.7,5.3-2.7,13.4,0,18.7c18.9,34.1,21.2,72.4,9.5,105.5c14.4-19.2,23.5-43.8,24.4-74.7%0A%09%09%09C5055.7,2471,4882,2364.8,4666.9,2134.6z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M4758.6,2569.1c-37.4-53.4-104.2-64.1-155-101.5%0A%09%09%09c-61.4-42.7-80.1-125.6-138.9-176.3c-56.5-47.8-139.6-56.7-210.4-35.3c25.1,47.2,127.1,102.1,127.1,102.1s20.7,44.1,55.2,84.1%0A%09%09%09c30.5,35.4,193.5,85.8,317.6,238.2C4782.4,2647.3,4784.9,2601.9,4758.6,2569.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3715.8,2015.7l-33.4,5.8c0,0,86.9,194.9,81.4,227c99.3-46.4,98.4-56.1,98.4-56.1%0A%09%09%09l-7.4-38.1C3852.2,2113.2,3774.4,2063.6,3715.8,2015.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M4035.3,1825.7c0,0-127.3,345.2-108.9,400.3c60.7-14.7,108.9,4.6,108.9,4.6%0A%09%09%09s-11.5-222.5,55.6-345.6C4061.5,1845.5,4035.3,1825.7,4035.3,1825.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M3654.8,2733l130-51c-71.4,10.3-156.4,53.6-160.3,55.2C3633.4,2740.2,3654.8,2733,3654.8,2733z" class="st18"></path>%0A%09%09<path d="M3576.1,2735.8c0,0,55.9-47.6,182.8-76.5c-16.5-5.5-133.9,28.9-190.4,74.1%0A%09%09%09C3573.4,2738.5,3576.1,2735.8,3576.1,2735.8z" class="st18"></path>%0A%09%09<path d="M3558,2699.3c0,0,110.1-70.4,179-82.8c-35.9-12.4-176.2,71.6-176.2,71.6L3558,2699.3z" class="st18"></path>%0A%09%09<path d="M3834.5,1885.6c0,0-102,90.4-148.9,95c48.7,53.3,78.2,78.6,99.3,89.2%0A%09%09%09c0-99.3,91.9-168.2,83.7-237.2c-8.3-68.9-6.4-64.3-6.4-64.3S3863,1851.2,3834.5,1885.6z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M4897.2,2712.3c-24.8-45.5-111.6-233-210.3-220.6c0,0-65.2,9.2-99.4,20.8c-1.1,12.9,9.7,22,21.7,26.5%0A%09%09%09c104.1,32,201.6,111.9,214.5,216.4c41.8,6.1,86.6,20.3,88.3-2.4C4912.3,2747.3,4901.4,2720.1,4897.2,2712.3z" class="st20"></path>%0A%09%09<path d="M4609.1,2539c-12-4.5-22.8-13.6-21.7-26.5c-9.2,3.1-16.2,6.4-19,9.7c149.6,89.2,160.1,153.2,228.5,227.8%0A%09%09%09c9,2.3,18,4.1,26.7,5.4C4810.8,2650.9,4713.3,2571,4609.1,2539z" class="st35"></path>%0A%09%09<path d="M3389.9,2642.1c0,0-40.9-81.4-37.1-99.3c3.8-17.9-3.1-35.9,15.9-43.4c-6.2,13.8-11,29-10,45.5%0A%09%09%09c1,16.5,34.6,94,34.6,94L3389.9,2642.1z" class="st18"></path>%0A%09%09<path d="M3407,2460.9c0,0-9.2,34.9-1.9,66.6c7.4,31.7,30.8,93.9,37,97.1c6.2,3.2,6.2,3.2,6.2,3.2%0A%09%09%09S3398.3,2507.3,3407,2460.9z" class="st18"></path>%0A%09%09<path d="M3472.9,2418.4c0,0-17,55.4-15.2,76c1.8,20.7,41.7,120.8,41.7,120.8l2.9-3.5%0A%09%09%09c0,0-42.5-108.1-31.7-146c10.9-37.9,9.3-50.7,9.3-50.7L3472.9,2418.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3537.6,2454.9c0,0-9.2,72.2,0,81.4s20.4,7.3,20.4,7.3S3539.9,2483.9,3537.6,2454.9z" class="st18"></path>%0A%09%09<path d="M3543.3,2484.1c0,0-7.6,38.4-5.8,52.2c0.7,5.4,2.5,11.2,5.6,16.5c7.7,6.5,16.6,9.4,25.4,1.7%0A%09%09%09c15.6-12.5,17.4-32.6,17.5-52.1c-0.7-2.3-1.4-4.6-2.2-7" class="st16"></path>%0A%09%09<g>%0A%09%09%09<polygon points="3466.8,1624.2 3466.8,1624.2 3466.8,1624.2" class="st9"></polygon>%0A%09%09%09<path d="M3516.4,1675.9c-7.1-21.6-14.1-34.6-21-42.6c-3.4-4-6.9-6.7-10.3-8.4%0A%09%09%09%09c-3.4-1.7-6.8-2.3-9.8-2.3c-3.4,0-6.3,0.8-8.6,1.5c-4.1,1.3-8,4.5-10.7,9.6c-2.7,5.1-4.4,12.1-4.4,21.5%0A%09%09%09%09c0,12.2,2.8,28.6,10.1,50.4c6.4,19,13.3,30.6,20.3,37.6c3.5,3.5,7.1,5.8,10.5,7.3c3.4,1.4,6.8,2,9.7,2c2.7,0,5.1-0.4,7.1-0.9%0A%09%09%09%09c2-0.5,3.5-1.1,4.4-1.4l0,0c2.9-0.9,6.2-3.2,8.5-7.4c2.3-4.2,3.8-10.1,3.8-18.4C3526.2,1713.3,3523.6,1697.9,3516.4,1675.9z%0A%09%09%09%09 M3515.7,1738.9c-1.5,2.6-3.1,3.5-4.1,3.8c-1.2,0.4-2.5,0.9-4,1.3c-1.5,0.4-3.3,0.7-5.1,0.7c-2,0-4.3-0.3-6.7-1.4%0A%09%09%09%09c-3.7-1.5-7.9-4.6-12.5-10.9c-4.6-6.2-9.4-15.6-14-29.3c-7.1-21.2-9.7-36.9-9.7-47.9c0-8.5,1.5-14.2,3.5-17.9%0A%09%09%09%09c2-3.6,4.2-5.2,6.2-5.8l0,0c2-0.6,4.1-1.1,6.3-1.1c2,0,4,0.4,6.3,1.5c3.5,1.7,7.7,5.3,12.4,12.6c4.7,7.2,9.7,18.1,14.9,33.8%0A%09%09%09%09c7.1,21.4,9.4,36.2,9.4,46C3518.5,1731.7,3517.1,1736.3,3515.7,1738.9z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09</g>%0A%09</g>%0A%09<polygon points="4535.9,1753.6 4677.9,1982.4 4774.4,1982.4 4597.9,1697.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09<polygon points="4616.6,1659.7 4815.1,1982.4 4916.5,1982.4 4705.5,1586.9" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<polygon points="4597.9,1697.5 4644.4,1704.9 4815.1,1982.4 4774.4,1982.4" class="Graphic_x0020_Style_x0020_108"></polygon>%0A%09<polygon points="4791.1,1650.6 4705.5,1586.9 4916.5,1982.4 4939.2,1982.4 4939.2,1925.9" class="Graphic_x0020_Style_x0020_107"></polygon>%0A%09<path d="M4590.7,1773.7c0,0,19.3-16,39,11c19.6,27-20.3,47.3-33.4,30.1%0A%09%09C4583.1,1797.4,4579.5,1778.2,4590.7,1773.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09<path d="M4596.3,1780.1c0,0,13.5-11.2,27.3,7.7s-14.2,33.1-23.4,21.1%0A%09%09C4591,1796.7,4588.5,1783.2,4596.3,1780.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09<polygon points="4609.5,1841.2 4648,1821.1 4757.4,1982.4 4699.5,1982.4" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<ellipse ry="38.6" rx="31.7" cy="1701" cx="4703.2" class="Graphic_x0020_Style_x0020_104"></ellipse>%0A%09<polygon points="4705.5,1762.7 4757.4,1724.1 4766.2,1734.7 4712.4,1768.9" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4718.4,1793 4770.3,1754.3 4779,1764.9 4725.3,1799.2" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4731.2,1823.2 4783.2,1784.6 4791.9,1795.1 4738.1,1829.4" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<g>%0A%09%09<path d="M973.4,2494.7c-1.1-7.7-1.9-15.4-2.3-22.9c9.5-13.4,26.8-31.8,52.9-40.2c23.1-6.1,15.4-16.7,6-14.3%0A%09%09%09c-6.8,1.7-40.3,15-58.6,22.4c6.9-84.5,62.6-145.2,175.4-122.9c0,0,168.2-115.8,215,66.2c-26.6-8.7-77.4-22.7-81.8-5%0A%09%09%09c-5.6,22.6,45.1-7,86.4,25.8c2.5,13.6,4.5,28.6,5.7,45.1c0.4,18.1-4.3,37.3-12.2,56.6c-19.6-23.9-69.9-81.6-86.6-63.7%0A%09%09%09c-19.3,20.6,50.3,7.3,76.9,84.6c-10.3,19.7-23.2,39-36.6,56.7c-13.9-23.9-42.7-67.9-60.7-56.8c-7.2,6.3,6.6,15.6,21,31%0A%09%09%09c9.1,9.8,20.1,29.2,27,42.1c-32.6,40-64,68.5-64,68.5s-40.6-10.2-90-29.6c-2.2-17-5.6-50,0.5-58c8.3-10.9-3.5-21.2-17.7-9.4%0A%09%09%09c-11,9.1-13.4,36.4-10.2,55.9c-20.3-9-41-19.4-60.3-31.1c3.7-24.8,13.8-80.3,30.3-90.6c10.5-9.2,2.3-22.4-22.7-3.4%0A%09%09%09c-19.2,14.5-25.3,60.3-27.2,81.1C1004.8,2558,978.2,2528.6,973.4,2494.7z" class="st10"></path>%0A%09%09<path d="M1225.4,2633.4c0,0-71-217.9-78.6-316.8" class="st11"></path>%0A%09%09<path d="M1129.2,2552.6c0,0,15.4-40.3,50.3-75.4" class="st11"></path>%0A%09%09<path d="M1261.1,2488.4c0,0-59.5-46.7-90-43.7" class="st11"></path>%0A%09%09<path d="M1052.5,2468.5c0,0,69.2-57,107.6-70.5" class="st11"></path>%0A%09%09<path d="M1243.7,2349.5c0,0-52.8-23.4-93.7-5.9" class="st11"></path>%0A%09</g>%0A%09<path d="M3360.2,3327.1c-71.4-58-182.9-129.1-345.1-184.1c-329.3-111.6-176.9-187.3-303.6-225.2%0A%09%09s-430.3-22.5-784.9-68.8s-643.1-33.1-556-162c60.4-89.4,145-152.7,191.1-183.1l-109.7,8.4c-108.3,81.3-312.5,270.2,66.8,308.2%0A%09%09c486.5,48.7,1181.1,101.9,1192.6,208.2c9.2,84.8,440.1,200.1,610.2,307.3C3334,3333.3,3346.8,3330.3,3360.2,3327.1z" class="st22"></path>%0A%09<linearGradient y2="608.8419" x2="3633.9429" y1="608.8419" x1="3431.6741" gradientUnits="userSpaceOnUse" id="SVGID_9_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="101.1" rx="101.1" cy="608.8" cx="3532.8" class="st36"></ellipse>%0A%09<linearGradient y2="3174.8586" x2="1457.2415" y1="3174.8586" x1="1136.8959" gradientUnits="userSpaceOnUse" id="SVGID_10_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="106.3" rx="160.2" cy="3174.9" cx="1297.1" class="st37"></ellipse>%0A%09<linearGradient y2="2968.6479" x2="1266.5088" y1="2968.6479" x1="1085.6805" gradientUnits="userSpaceOnUse" id="SVGID_11_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="60" rx="90.4" cy="2968.6" cx="1176.1" class="st38"></ellipse>%0A%09<linearGradient y2="3078.0559" x2="5051.6841" y1="3078.0559" x1="4866.0625" gradientUnits="userSpaceOnUse" id="SVGID_12_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="92.8" rx="92.8" cy="3078.1" cx="4958.9" class="st39"></ellipse>%0A%09<path d="M2285.6,3438c0,0,206.8,24.5,420.7-87.7c42.5-28.4,62.6,33.1,35.4,53.2%0A%09%09c-27.2,20.1-168.9,100.4-399.3,87.4C2216,3486.1,2239.4,3435.8,2285.6,3438z" class="Graphic_x0020_Style_x0020_100"></path>%0A</g>%0A</svg>%0A';});var kt,sa,ra,Tt=g(()=>{T();Mt();k();oe();Vo();kt=create()(o=>({unregistered:!1,setUnregistered(){o({unregistered:!0});}})),sa=o=>{let{extra:t}=o,{unregistered:e}=kt(),{title:{text:s}}=y(u=>u),r=new URLSearchParams(window.location.search),{token:a,setToken:i,axios:c,mainPagePath:n}=y(u=>u),{t:l}=b(),{isLoading:f}=Ie(r.has("ticket")?`/api/usystem/user/login?ticket=${r.get("ticket")}`:null,u=>c.get(u).then(m=>m.data.data),{onSuccess:u=>{u&&i(u.token);}});if(f)return jsx("div",{className:"w-screen h-screen flex justify-center items-center",children:jsx(Spin,{})});if(a){let u=!!window.location.hash,m=n;return u?(window.location.href=`${window.location.origin}${window.location.pathname}#${m}`,null):jsx(Navigate,{replace:!0,to:n})}return jsxs("div",{className:"w-screen h-screen relative flex overflow-hidden",children:[jsx("div",{className:"absolute top-16 right-16 z-10",children:t}),jsx("div",{className:"absolute left-14 top-6",children:jsxs(Space,{align:"center",children:[jsx(we,{width:48}),jsx("span",{className:"text-2xl font-bold",children:s})]})}),jsx("div",{className:"flex-1 flex justify-center items-center bg-slate-50",children:jsx("img",{src:Go,alt:"background",className:"w-10/12"})}),jsx("div",{className:"w-[650px] relative top-0 left-0 right-0 bottom-0",children:jsx("div",{className:"absolute top-1/2 -translate-y-1/2 left-0 right-0",children:jsx("div",{className:"-translate-y-10 px-36",children:jsxs("div",{className:"flex flex-col justify-center",children:[jsx("div",{className:"h-10",children:e&&jsx(Alert,{banner:!0,closable:!0,message:l("SignIn.unregistered"),type:"error"})}),jsx(Typography.Title,{level:2,children:l("SignIn.welcome")}),jsx("div",{className:"mt-4",children:jsxs(Form,{layout:"vertical",autoComplete:"off",children:[jsx(Form.Item,{label:l("global.username"),name:"username",rules:[{required:!0}],children:jsx(Input,{})}),jsx(Form.Item,{label:l("global.password"),name:"password",rules:[{required:!0}],children:jsx(Input.Password,{})}),jsx(Form.Item,{children:jsx(Button,{block:!0,type:"primary",shape:"round",htmlType:"submit",children:l("global.signIn")})})]})}),jsx(Divider,{plain:!0,dashed:!0,children:l("SignIn.thirdParty")}),jsx("div",{className:"flex justify-center items-center",children:jsxs(Button,{block:!0,shape:"round",href:`${Pt}/logout?service=${Pt}/login?service=${window.location.href}`,target:"_self",children:[jsx(we,{width:18}),l("SignIn.signInWithIDass")]})})]})})})})]})},ra=sa;});var Ft,Rt,ca,Dt,Eo=g(()=>{oe();Tt();k();ca=({children:o})=>{let{notification:t}=App.useApp(),{axios:e,interceptors:s,token:r,isGlobal:a,signInPath:i,gameId:c,clearToken:n,permissionVersion:l}=y(m=>m),{setUnregistered:f}=kt(),u=useNavigate();return e.interceptors.request.eject(Ft),e.interceptors.response.eject(Rt),s?.request?Ft=e.interceptors.request.use(...s.request):Ft=e.interceptors.request.use(m=>{if(m.skipRequestInterceptor)return m;let p=new AxiosHeaders(m.headers);return m.responseType=m.responseType||"json",r&&p.setAuthorization(`Bearer ${r}`),!p.has(ce)&&l!=="v1"&&(a||!c?p.set(ce,"global"):p.set(ce,encodeURIComponent(c))),p.set("Accept",m.responseType==="blob"?"application/octet-stream":"application/json"),m.headers=p,m}),s?.response?Rt=e.interceptors.response.use(...s.response):Rt=e.interceptors.response.use(m=>{if(m.config.skipResponseInterceptor)return m;if((m.request.responseType||"json")==="json"){let d=m.data;if(d.code===0||d.code===1||d.code===200||d.status===0||d.errno===0)return m;throw t.error({message:"Request failed",description:d.msg}),new Error(d.msg)}return m},m=>{if(isAxiosError(m)){let p=m.response;if(!p)throw m;if(p.status===401||p.status===412)n?.(),p.status===412&&f(),u(i);else if(p.status===403)t.error({message:"Forbidden",description:"You do not have permission to access this resource."});else throw t.error({message:"Request failed",description:p.data.msg}),new Error(p.data.msg)}throw m}),o},Dt=ca;});var Uo=g(()=>{Eo();});function y(o){let t=useContext(Lt);if(!t)throw new Error("Missing ToolkitsProvider in the tree");return useStore(t,o)}var Lt,Vt,O,fa,No=g(()=>{Do();Uo();Lt=createContext(null);Vt=o=>{let{children:t,...e}=o,s=useRef(),r=useContext(Lt)?.getState();if(s.current||(s.current=Ro({...r,...e})),!s.current.getState().signInPath)throw new Error('ToolkitsProvider: \u8BF7\u914D\u7F6E "signInPath"');return jsx(Lt.Provider,{value:s.current,children:jsx(App,{children:jsx(Dt,{children:t})})})},O=(o,t)=>e=>jsx(Vt,{...t,children:jsx(o,{...e})});process.env.NODE_ENV!=="production"&&(Vt.displayName="ToolkitsProvider");fa=Vt;});var k=g(()=>{No();});function b(){let o=y(e=>e.locale);return {t:useMemo(()=>(e,s)=>has(o,e)?template(get(o,e))(s):e,[o])}}var Bo=g(()=>{k();});var T=g(()=>{Bo();});var Fa,We,$o=g(()=>{T();Fa=o=>{let{extras:t,isConfirming:e,onConfirm:s,onReset:r,children:a,buttonsAlign:i="left",showReset:c}=o,{t:n}=b(),{token:{colorFillAlter:l,lineWidth:f,lineType:u,colorBorder:m,borderRadiusLG:p}}=theme.useToken();return jsx("div",{style:{maxWidth:"none",background:l,borderWidth:f,borderStyle:u,borderColor:m,borderRadius:p,padding:24,marginBottom:24},children:jsxs("div",{className:`flex ${i==="bottom"?"flex-col":"flex-row"}`,children:[jsx("div",{className:`${i==="left"?"flex-grow-0":"flex-1"}`,children:a}),jsx("div",{className:`${i==="bottom"?"text-end":"text-start"} ml-4`,children:jsxs(Space,{children:[jsx(Button,{type:"primary",loading:e,onClick:s,children:n("FilterFormWrapper.confirmText")}),t?.map(I=>jsx(Fragment$1,{children:I.children},I.key)),c&&jsx(Button,{onClick:r,children:n("FilterFormWrapper.resetText")})]})})]})})},We=Fa;});var rt=g(()=>{$o();});function za(o){let t=document.createElement("div"),e=createRoot(t);return new Promise(s=>{setTimeout(()=>{flushSync(()=>{e.render(o);}),s(t.innerHTML);});})}var Ga,Aa,xe,Yo=g(()=>{Ga=o=>{let t=/(<[^>]*>)/;return o.split(t).filter(e=>e!=="")};Aa=o=>{let{texts:t,children:e}=o,[s,r]=useState("");return useEffect(()=>{za(e).then(a=>{let i=Ga(a);for(let c of t)for(let n=0;n<i.length;n++)i[n]=i[n].replace(String(c),`<span style='color: #DC143C;'>${c}</span>`);r(i.join(""));});},[e,t]),jsx("div",{dangerouslySetInnerHTML:{__html:s}})},xe=Aa;});var qe=g(()=>{Yo();});function Q(o,t){let{axios:e,permissionVersion:s}=y(f=>f),r=s!=="v1"?"/api/usystem/user/checkV2":"/api/usystem/user/check",a=typeof o<"u"?typeof o=="string"?[o]:o:[],i={permissions:a},{data:c,...n}=Ie(a.length>0?[r,i,t]:null,f=>e.post(...f).then(u=>u.data.data)),l=!0;return typeof o=="string"?l=c?.has_all?!0:c?.[o]??!1:Array.isArray(o)&&o.length>0&&(l=a.reduce((f,u)=>(f[u]=c?.has_all?!0:c?.[u]??!1,f),{})),{...n,data:l}}function Me(){let{signInPath:o,axios:t,gameId:e}=y(s=>s);return Ie(window.location.pathname!==o?{url:"/api/usystem/menu/navbar",headers:{[ce]:e&&encodeURIComponent(e)}}:null,({url:s,headers:r})=>t(s,{headers:r}).then(a=>a.data.data))}var $=g(()=>{k();oe();});var be,Dc,zt=g(()=>{oe();k();be=()=>{let{axios:o,gameApiV2:t,permissionVersion:e}=y(r=>r),s=e!=="v1"?t?"/api/game/list":"/api/usystem/game/all":null;return en(s,async r=>{let a={headers:{[ce]:"global"}};return t?(await o.get(r,a)).data.data.list??[]:(await o.get(r,a)).data.data??[]})},Dc=o=>{let{data:t}=be(),{gameApiV2:e}=y(s=>s);return t?.find(s=>String(e?s.game_id:s.id)===String(o))};});var os,ss=g(()=>{os=create()(persist(o=>({openKeys:[],setOpenKeys:t=>o({openKeys:t}),selectedKeys:[],setSelectedKeys:t=>o({selectedKeys:t})}),{name:"nav",storage:createJSONStorage(()=>localStorage),partialize:o=>({openKeys:o.openKeys,selectedKeys:o.selectedKeys})}));});function At(o){let t=[];if(o)for(let e=0;e<o.length;e++)if(o[e]===null||o[e].type==="divider")t[e]=o[e];else if(o[e].children){let{children:s,...r}=o[e];t[e]={...r,children:At(s)};}else {let{route:s,label:r,...a}=o[e],i=s?jsx(Link,{to:s,children:r}):r;t[e]={...a,label:i};}return t}function Et(o,t=[],e=[]){for(let s of o){let r=s?.children;if(Array.isArray(r)){let a=s.type!=="group"&&s.key?[...e,s.key]:e;Et(r,t,a);}else s&&t.push(Object.assign(s,{keypath:e}));}return t}var rs=g(()=>{});var ns,Ot,is=g(()=>{ss();rs();ns=memo(function(t){let{items:e,theme:s,loading:r}=t,a=useLocation(),i=useMemo(()=>Et(e??[]),[e]),c=useMemo(()=>At(e??[]),[e]),{openKeys:n,selectedKeys:l,setOpenKeys:f,setSelectedKeys:u}=os(),m=useCallback(p=>{let d=p?.find(x=>n?.indexOf(x)===-1),I=i.find(x=>d===x.key);f(I?.keypath??[d]);},[i,n,f]);return useEffect(()=>{let p=i.find(d=>a.pathname===d.route);if(p){let d=p.key,I=p.keypath;u([d]),f(I);}},[i,a]),r?jsx("div",{className:"flex justify-center items-center",style:{height:"calc(100vh - 64px)"},children:jsx(Spin,{})}):jsx(Menu,{theme:s,style:{borderRight:"none"},items:c,mode:"inline",openKeys:n,selectedKeys:l,onOpenChange:m})});process.env.NODE_ENV==="development"&&(ns.displayName="NavMenu");Ot=ns;});var Nt=g(()=>{is();});var gn,hn,Bt,cs=g(()=>{nt();T();k();(({Spin:gn}=Ke)),hn=({children:o})=>{let{permissionVersion:t,gameId:e,isGlobal:s}=y(i=>i),{isLoading:r}=be(),{t:a}=b();return r?jsx("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:400},children:jsx(gn,{})}):t==="v1"||s?o:e?jsx(Fragment$1,{children:o},e):jsx(Empty,{image:Empty.PRESENTED_IMAGE_SIMPLE,description:a("RequireGame.description")})},Bt=hn;});var Wt=g(()=>{cs();});var Cn,qt,ps=g(()=>{T();k();Cn=()=>{let{t:o}=b(),t=useNavigate(),{clearToken:e,getUser:s,signInPath:r}=y(c=>c),a=s(),i=[{key:"1",icon:jsx(LogoutOutlined,{}),label:jsx("a",{onClick:()=>{e(),t(r);},children:o("UserWidget.signOutText")})}];return jsx("div",{children:jsx(Dropdown,{menu:{selectable:!0,items:i},placement:"bottomRight",children:jsx("a",{onClick:c=>{c.preventDefault();},children:jsxs(Space,{align:"center",children:[jsx("span",{children:a?.authorityId}),jsx(UserOutlined,{style:{fontSize:"16px"}})]})})})})},qt=Cn;});var Kt=g(()=>{ps();});var Tn,Fn,ds,us=g(()=>{T();k();zt();(({Text:Tn}=Typography)),Fn=o=>{let{filter:t,options:e}=o,{t:s}=b(),{gameApiV2:r,gameId:a,setGameId:i}=y(d=>d),{data:c,isLoading:n}=be(),{cache:l}=useSWRConfig(),f=c?.filter(d=>t?.(d)??!0),u=typeof e=="function"?e(f):f?.map(d=>({label:d.name,value:r?d.game_id:d.id})),m=d=>{p(),i(d);},p=()=>{for(let d of l.keys())d!=="/api/game/list"&&d!=="/api/usystem/game/all"&&l.delete(d);};return useEffect(()=>{if(c&&c.length>0){let d=r?c[0].game_id:c[0].id;c.every(I=>String(I.game_id||I.id)!==String(a))&&i(d);}},[c]),jsxs(Space,{children:[jsx(Tn,{children:s("GameSelect.label")}),jsx(Select,{showSearch:!0,optionFilterProp:"label",value:a,placeholder:s("GameSelect.placeholder"),loading:n,style:{width:"200px"},options:u,onChange:m})]})},ds=Fn;});var En,Un,On,Nn,Bn,Wn,qn,hs=g(()=>{Mt();Nt();Wt();k();Kt();us();(({Spin:En,theme:Un}=Ke)),{Header:On,Sider:Nn,Content:Bn}=Ke.Layout,Wn=o=>{let{collapsible:t,isMenuLoading:e,items:s,headerExtra:r,children:a,navWidth:i,hideGameSelect:c,filter:n,gameSelectOptions:l}=o,{token:{colorBgContainer:f,colorBorder:u}}=Un.useToken(),{permissionVersion:m,title:{text:p,fontSize:d},navWidth:I,collapsible:x,mainPagePath:S,collapsed:h,setContext:_}=y(v=>v),[w,N]=useState(h),H=async()=>{N(!w),_({collapsed:!w});},z=t??x??!1;return jsxs(Ke.Layout,{children:[jsxs(Nn,{collapsible:z,theme:"light",trigger:null,collapsed:w,width:i??I,style:{height:"100vh",overflowX:"hidden",overflowY:"auto",borderRightWidth:1,borderRightStyle:"solid",borderRightColor:u},children:[jsx(Link,{to:S,children:jsxs("div",{className:"flex px-6 py-4 font-bold",children:[jsx(we,{width:32,height:32}),jsx("div",{className:`h-8 flex items-center ml-2 collapse-text ${w?"opacity-0":"animate__fadeIn delay-200"} `,style:{fontSize:d},children:p})]})}),jsx(Ot,{items:s,loading:e})]}),jsxs(Ke.Layout,{children:[jsx(On,{style:{padding:"0 24px",background:f},children:jsxs("div",{className:"flex justify-between items-center h-full",children:[jsxs(Space,{size:"small",split:jsx(Divider,{type:"vertical"}),className:"mr-6",children:[z&&jsx(Button,{type:"text",icon:w?jsx(MenuUnfoldOutlined,{}):jsx(MenuFoldOutlined,{}),style:{fontSize:"16px"},onClick:H}),m!=="v1"&&!c&&jsx(ds,{filter:n,options:l}),r?.left?.map(v=>jsx("span",{children:v.children},v.key))]}),jsxs(Space,{size:"small",split:jsx(Divider,{type:"vertical"}),children:[r?.right?.map(v=>jsx("span",{children:v.children},v.key)),jsx(qt,{})]})]})}),jsx(Bn,{style:{overflow:"auto",padding:"24px 16px",maxHeight:"calc(100vh - 64px)"},children:jsx(Suspense,{fallback:jsx(En,{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"200px"}}),children:jsx(Bt,{children:a})})})]})]})},qn=Wn;});var ys=g(()=>{});var nt=g(()=>{zt();hs();ys();});var Ht,Jt=g(()=>{Ht=create((o,t)=>({open:new Map,isOpen:e=>t().open.get(e)??!1,show(e){o({open:new Map(t().open).set(e,!0)});},hide(e){o({open:new Map(t().open).set(e,!1)});},hideAll(){o({open:new Map});}}));});function jt(o){let{content:t,onConfirm:e,afterOpen:s,...r}=o,a=useMemo(()=>++Qn,[]),{show:i,hide:c,isOpen:n}=Ht(),l=n(a),[f,u]=useState(!1),m=typeof t=="function",p=async()=>{i(a),await s?.();},d=()=>{c(a);},S=jsx(Modal,{...r,open:l,confirmLoading:f,onOk:async()=>{try{u(!0),await e?.(),d();}finally{u(!1);}},onCancel:()=>{d();},children:m?t({hide:d}):t});return {id:a,show:p,hide:d,modal:S}}var Qn,Qt=g(()=>{Jt();Qn=0;});function pe(o){let{content:t,form:e,formProps:s,onConfirm:r,onSuccess:a,...i}=o,[c,n]=useState({}),[l]=Form.useForm();l=e||l;let f=typeof t=="function",u=async()=>{let h=await l.validateFields();await r?.(h,c),a?.(),I();},m=()=>{l.resetFields();},{id:p,show:d,hide:I,modal:x}=jt({...i,content:h=>jsx(Form,{...s,form:l,children:f?t(c,h):t}),onConfirm:u,afterClose:m});return {id:p,show:h=>{let{initialValues:_,extraValues:w}=h||{};w&&n(w),_&&l.setFieldsValue(_),d();},hide:I,modal:x}}var bs=g(()=>{Qt();});var $t=g(()=>{bs();Qt();Jt();});var ei,q,Ss=g(()=>{$();T();ei=o=>{let{children:t,code:e,showLoading:s,disabled:r,config:a,...i}=o,c=e?Array.isArray(e)?e:[e]:[],{data:n,isLoading:l}=Q(c,a),{t:f}=b();return l?jsx(Button,{loading:s,disabled:!s,...i,children:t}):typeof n=="boolean"||n&&Object.values(n).some(Boolean)?jsx(Button,{disabled:r,...i,children:t}):jsx(Tooltip,{defaultOpen:!1,title:f("global.noEntitlement"),children:jsx(Button,{disabled:!0,...i,children:t})})},q=ei;});var Te=g(()=>{Ss();});var ae,lt=g(()=>{ae=create((o,t)=>({keyMap:new Map,payloadMap:new Map,getPayload(e){return t().payloadMap.get(e)??{page:1}},setPayload(e,s){o(r=>({payloadMap:new Map(r.payloadMap).set(e,s)}));},refetch(e,s){let r=t().getPayload(e),a={...r,...s};isEqual(r,a)?t().mutate(e,void 0):t().setPayload(e,a);},mutate(e,s,r){let a=t().keyMap.get(e);return mutate(a,s,r)}}));});var Is,gi,hi,ne,ws=g(()=>{$();rt();T();k();lt();Is=(r=>(r[r.Confirm=0]="Confirm",r[r.Reset=1]="Reset",r[r.Jump=2]="Jump",r[r.Init=3]="Init",r))(Is||{}),gi=(o,t)=>{let e={method:"GET",defaultSize:10,refreshInterval:0,getTotal:D=>D?.data?.total,getDataSource:D=>D?.data?.list,...o},{url:s,code:r,headers:a,onePage:i,method:c,buttonsAlign:n,showReset:l,defaultSize:f,refreshInterval:u,tableExtra:m,form:p,body:d,params:I,renderForm:x,afterSuccess:S,getTotal:h,getDataSource:_,footer:w,pageSizeOptions:N,...H}=e;if(!s)throw new Error("url property is required");let{t:z}=b(),[v]=Form.useForm(p),B=useRef(3),{data:W,isLoading:J}=Q(r),[M,A]=useState(!1),{keyMap:ee,getPayload:fe,refetch:te}=ae(),{page:re,size:ge=f,formValue:ze}=fe(s),Ae={page:re,size:ge,formValue:ze},St=typeof d=="function"?d(Ae):typeof d>"u"?c==="POST"?{...ze,page:i?void 0:re,size:i?void 0:ge}:void 0:d,_t=typeof I=="function"?I(Ae):typeof I>"u"?c==="GET"?{...ze,page:i?void 0:re,size:i?void 0:ge}:void 0:I,Ct=typeof a=="function"?a(v):a,et=useRef(!1),G={url:s,method:c,data:St,params:_t,headers:Ct},Ee=useMemo(()=>{if(!W||!M)return null;let D=unstable_serialize(G);return ee.set(s,D),D},[W,M,s,G]),{axios:It}=y(D=>D),{data:le,isLoading:wt}=Ie(Ee,async()=>(await It.request(G)).data,{shouldRetryOnError:!1,revalidateOnFocus:!1,refreshInterval:et.current?u:0,onSuccess(D){et.current=!0,S?.(B.current,v,D);}}),xo=_(le,v),Lr=h(le),Vr=!i&&{pageSizeOptions:N,showSizeChanger:!0,showQuickJumper:!0,current:re,pageSize:ge,total:Lr,onChange:async(D,tt)=>{B.current=2,te(s,{page:D,size:tt});}},bo=async()=>{B.current=0;try{await v.validateFields(),A(!0),te(s,{page:1,formValue:v.getFieldsValue()});}catch{A(!1);}},Gr=async()=>{B.current=1,v.resetFields();try{await v.validateFields({validateOnly:!0}),A(!0),te(s,{page:1,formValue:v.getFieldsValue()});}catch{A(!1);}};if(useEffect(()=>{let D=async()=>{if(W)try{v.resetFields();let tt=await v.validateFields({validateOnly:!0});te(s,{page:1,formValue:tt}),A(!0);}catch{A(!1);}};setTimeout(()=>{D();},300);},[W,p]),useImperativeHandle(t,()=>({data:le,dataSource:xo,form:v})),J)return jsx(Spin,{style:{display:"flex",justifyContent:"center",alignItems:"center",height:300}});if(!W)return jsx(Result,{status:403,subTitle:z("global.noEntitlement")});let zr=typeof x=="function"?jsx(We,{showReset:l,buttonsAlign:n,isConfirming:wt,onReset:Gr,onConfirm:bo,children:cloneElement(x(v),{onKeyUp:D=>{D.key==="Enter"&&bo();}})}):jsx(Form,{form:v}),Ar=w&&(()=>w(le));return jsxs("div",{children:[zr,typeof m=="function"?m(v,le):m,jsx(Table,{...H,dataSource:xo,loading:wt,pagination:Vr,footer:Ar})]})},hi=forwardRef(gi),ne=hi;});var Fe=g(()=>{ws();lt();});var Zt,vs=g(()=>{Zt="/api/usystem/menu/list";});function Ps(){let{axios:o}=y(t=>t);return De("/api/usystem/menu/set",(t,{arg:e})=>o.post(t,{...e,id:0,is_model:!0}))}function Ms(){let{axios:o}=y(t=>t);return De("/api/usystem/menu/set",(t,{arg:e})=>o.post(t,{...e,is_model:!0}))}function ks(){let{axios:o}=y(t=>t);return De("/api/usystem/menu/delete",(t,{arg:e})=>o.post(t,null,{params:{id:e}}))}var to=g(()=>{k();});var ct=g(()=>{vs();to();});var Fs={};he(Fs,{default:()=>Ti});var ki,Ti,Rs=g(()=>{qe();T();Fe();k();ct();to();$();ki=O(()=>{let{t:o}=b(),{message:t}=App.useApp(),e=ks(),{refetch:s}=ae(),{mutate:r}=Me(),a=useNavigate();return jsx(Fragment,{children:jsx(Card,{title:"\u83DC\u5355\u7BA1\u7406",extra:jsx(Button,{type:"primary",onClick:()=>{a("./create");},children:"\u521B\u5EFA\u83DC\u5355\u9879"}),children:jsx(ne,{onePage:!0,code:"9900001",rowKey:"id",url:Zt,columns:[{title:"\u83DC\u5355\u540D\u79F0",dataIndex:"category",key:"category"},{title:"\u524D\u7AEF\u8DEF\u7531",dataIndex:"front_route"},{title:"Order",dataIndex:"order"},{title:"Is Common",dataIndex:"is_common",key:"is_common",render:c=>c?"\u662F":"\u5426"},{title:"\u6A21\u677F\u540D\u79F0",dataIndex:"model_name",key:"model_name"},{title:"\u64CD\u4F5C",key:"action",width:150,align:"center",render(c,n){return n.is_model?jsxs(Space,{size:"small",children:[jsx(Button,{type:"link",onClick:()=>{a(`./update/${n.id}`);},children:o("global.update")}),jsx(Popconfirm,{title:"\u5220\u9664\u83DC\u5355",placement:"topRight",description:jsxs(xe,{texts:[n.category],children:["\u786E\u5B9A\u8981\u5220\u9664\u83DC\u5355 ",n.category," \u5417\uFF1F"]}),onConfirm:async()=>{await e.trigger(n.id),s(Zt),r(),t.success("\u5220\u9664\u6210\u529F");},children:jsx(Button,{danger:!0,type:"link",size:"small",children:o("global.delete")})})]}):null}}],getDataSource:c=>c})})})},{isGlobal:!0}),Ti=ki;});var Gs={};he(Gs,{default:()=>Ai});var zi,Ai,zs=g(()=>{k();oe();ct();$();zi=O(()=>{let{message:o}=App.useApp(),[t]=Form.useForm(),e=useNavigate(),{trigger:s}=Ps(),{mutate:r}=Me();return jsx(Card,{title:"\u521B\u5EFA\u83DC\u5355\u9879",children:jsxs(Form,{scrollToFirstError:!0,form:t,labelCol:{flex:"120px"},initialValues:{is_common:!1,is_model:!1,order:0},onFinish:async i=>{let{permissions:c,front_route:n,...l}=i;await s({...l,front_route:ye+n,permissions:c?JSON.parse(c):void 0}),r(),o.success("\u521B\u5EFA\u6210\u529F",.8,()=>e("..",{relative:"route"}));},children:[jsx(Form.Item,{label:"\u83DC\u5355\u9879\u540D\u79F0",name:"category",rules:[{required:!0}],children:jsx(Input,{})}),jsx(Form.Item,{label:"\u524D\u7AEF\u8DEF\u7531",name:"front_route",rules:[{required:!0}],children:jsx(Input,{prefix:ye})}),jsx(Form.Item,{label:"\u6A21\u677F\u540D\u79F0",name:"model_name",rules:[{required:!0}],children:jsx(Input,{})}),jsx(Form.Item,{label:"Is Common",name:"is_common",rules:[{required:!0}],valuePropName:"checked",children:jsx(Switch,{})}),jsx(Form.Item,{label:"Order",name:"order",children:jsx(InputNumber,{className:"w-full"})}),jsx(Form.Item,{label:"\u63A5\u53E3\u89C4\u5219",name:"permissions",children:jsx(Editor,{theme:"vs-dark",height:"300px",language:"json",options:{minimap:{enabled:!1}}})}),jsx(Form.Item,{label:"Schema",name:"scheme",rules:[{required:!0}],children:jsx(Editor,{theme:"vs-dark",height:"600px",language:"json",options:{minimap:{enabled:!1}}})}),jsx(Form.Item,{label:"Ext",name:"ext",children:jsx(Input.TextArea,{rows:5})}),jsx(Form.Item,{children:jsxs("div",{className:"flex justify-center gap-8",children:[jsx(Button,{type:"primary",htmlType:"submit",children:"\u63D0\u4EA4"}),jsx(Button,{onClick:()=>{e("..",{relative:"path"});},children:"\u53D6\u6D88"})]})})]})})},{isGlobal:!0}),Ai=zi;});var Os={};he(Os,{default:()=>Ji});var Hi,Ji,Ns=g(()=>{k();oe();ct();$();Hi=O(()=>{let{message:o}=App.useApp(),[t]=Form.useForm(),e=useNavigate(),{trigger:s}=Ms(),r=useParams(),{mutate:a}=Me(),{axios:i}=y(f=>f),{data:c,isLoading:n}=Ie(`/api/usystem/menu/info?id=${r.id}`,f=>i(f).then(u=>u.data.data)),l=async f=>{let{permissions:u,front_route:m,...p}=f;await s({...p,permissions:u?JSON.parse(u):void 0,front_route:ye+m,id:+r.id}),a(),o.success("\u66F4\u65B0\u6210\u529F",.8,()=>e("../..",{relative:"route"}));};return useEffect(()=>{let{permissions:f,front_route:u,...m}=c??{},p=JSON.stringify(f||[],null,2),d=u?.replace(ye,"");t.setFieldsValue({...m,permissions:p,front_route:d});},[c]),jsx(Card,{title:"\u66F4\u65B0\u83DC\u5355\u9879",loading:n,children:jsxs(Form,{scrollToFirstError:!0,form:t,labelCol:{flex:"120px"},initialValues:{is_common:!1,is_model:!1,order:0},onFinish:l,children:[jsx(Form.Item,{label:"\u83DC\u5355\u9879\u540D\u79F0",name:"category",rules:[{required:!0}],children:jsx(Input,{})}),jsx(Form.Item,{label:"\u524D\u7AEF\u8DEF\u7531",name:"front_route",rules:[{required:!0}],children:jsx(Input,{prefix:ye})}),jsx(Form.Item,{label:"\u6A21\u677F\u540D\u79F0",name:"model_name",rules:[{required:!0}],children:jsx(Input,{})}),jsx(Form.Item,{label:"Is Common",name:"is_common",rules:[{required:!0}],valuePropName:"checked",children:jsx(Switch,{})}),jsx(Form.Item,{label:"Order",name:"order",children:jsx(InputNumber,{className:"w-full"})}),jsx(Form.Item,{label:"\u63A5\u53E3\u89C4\u5219",name:"permissions",children:jsx(Editor,{theme:"vs-dark",height:"300px",language:"json",options:{minimap:{enabled:!1}}})}),jsx(Form.Item,{label:"Schema",name:"scheme",rules:[{required:!0}],children:jsx(Editor,{theme:"vs-dark",height:"600px",language:"json",options:{minimap:{enabled:!1}}})}),jsx(Form.Item,{label:"Ext",name:"ext",children:jsx(Input.TextArea,{rows:5})}),jsx(Form.Item,{children:jsxs("div",{className:"flex justify-center gap-8",children:[jsx(Button,{type:"primary",htmlType:"submit",children:"\u63D0\u4EA4"}),jsx(Button,{onClick:()=>{e("../..",{relative:"path"});},children:"\u53D6\u6D88"})]})})]})})},{isGlobal:!0}),Ji=Hi;});function Js(){let{axios:o}=y(t=>t);return Ie("/api/usystem/user/allPermssions",t=>o.get(t).then(e=>e.data.data))}function js(){let{axios:o}=y(t=>t);return Ie("/api/usystem/user/allPermissionsV2",t=>o.get(t).then(e=>e.data.data))}function lo(){let{axios:o}=y(t=>t);return Ie("/api/usystem/role/all",t=>o.get(t).then(e=>e.data.data))}function Qs(o){let{axios:t}=y(s=>s),e=y(s=>s.permissionVersion);return Ie(`/api/usystem/role/${e==="v2"?"infoV2":"info"}?name=${o}`,s=>t.get(s).then(r=>r.data.data))}function g1(){let{axios:o,permissionVersion:t}=y(e=>e);return De(t==="v2"?"/api/usystem/role/createV2":"/api/usystem/role/create",(e,{arg:s})=>o.post(e,s))}function h1(){let{axios:o,permissionVersion:t}=y(e=>e);return De(t==="v2"?"/api/usystem/role/updateV2":"/api/usystem/role/update",(e,{arg:s})=>o.post(e,s))}function $s(){let{axios:o}=y(t=>t);return De("/api/usystem/role/delete",(t,{arg:e})=>o.post(t,e))}function Ys(){let{axios:o}=y(t=>t);return De("/api/usystem/user/create",(t,{arg:e})=>o.post(t,e))}function Xs(){let{axios:o}=y(t=>t);return De("/api/usystem/user/update",(t,{arg:e})=>o.post(t,e))}function Zs(){let{axios:o}=y(t=>t);return De("/api/usystem/user/delete",(t,{arg:e})=>o.post(t,e))}var io,er,dt,tr,or,y1,x1,sr,rr,ut,ft=g(()=>{T();$t();k();oe();co();({Text:io}=Typography);er=({onSuccess:o}={})=>{let{t}=b(),{trigger:e}=g1();return pe({title:t("Role.createTitle"),width:"50vw",formProps:{layout:"vertical"},content:jsxs(Fragment,{children:[jsx(Form.Item,{label:t("global.name"),name:"name",rules:[{required:!0}],children:jsx(Input,{addonBefore:"role_"})}),jsx(Form.Item,{name:"permissions",children:jsx(Le,{})})]}),onConfirm:async s=>{await e({name:`role_${s.name}`,permissions:s.permissions}),o?.();}})},dt=({onSuccess:o}={})=>{let{t}=b(),{trigger:e}=h1();return pe({title:t("Role.updateTitle"),width:"50vw",formProps:{layout:"vertical"},content:jsxs(Fragment,{children:[jsx(Form.Item,{label:t("global.name"),name:"name",rules:[{required:!0}],children:jsx(Input,{disabled:!0,addonBefore:"role_"})}),jsx(Form.Item,{name:"permissions",children:jsx(Le,{})})]}),onConfirm:async(s,r)=>{await e({id:r?.id,name:`role_${s.name}`,permissions:s.permissions}),o?.();}})},tr=({onSuccess:o}={})=>{let{t}=b(),{data:e,isLoading:s}=lo(),{trigger:r}=Ys();return pe({title:t("User.createTitle"),width:600,formProps:{autoComplete:"off",labelCol:{flex:"80px"}},content:jsxs(Fragment,{children:[jsx(Form.Item,{label:t("global.name"),name:"name",rules:[{required:!0}],children:jsx(Input,{})}),jsx(Form.Item,{label:t("global.role"),name:"roles",children:jsx(Select,{allowClear:!0,showSearch:!0,mode:"multiple",loading:s,optionFilterProp:"label",options:e?.map(a=>({label:a.name,value:a.name}))})})]}),onConfirm:async a=>{await r(a),o?.();}})},or=({onSuccess:o}={})=>{let{t}=b(),{data:e,isLoading:s}=lo(),{trigger:r}=Xs();return pe({title:t("User.updateTitle"),width:600,formProps:{autoComplete:"off",labelCol:{flex:"80px"}},content:jsxs(Fragment,{children:[jsx(Form.Item,{label:t("global.name"),name:"name",rules:[{required:!0}],children:jsx(Input,{disabled:!0})}),jsx(Form.Item,{label:t("global.role"),name:"roles",children:jsx(Select,{allowClear:!0,showSearch:!0,mode:"multiple",loading:s,optionFilterProp:"label",options:e?.map(a=>({label:a.name,value:a.name}))})})]}),onConfirm:async(a,i)=>{await r({...a,id:i?.id}),o?.();}})},y1=o=>{let{onChange:t,...e}=o,{axios:s}=y(n=>n),{data:r,isLoading:a}=Ie("/api/enum/get?enum=game_group&type=all",n=>s.get(n).then(l=>l.data.data)),i=[{label:"\u901A\u7528",value:j}].concat(r?.map(n=>({label:n,value:n}))??[]);return jsx(Select,{...e,allowClear:!0,showSearch:!0,mode:"tags",optionFilterProp:"label",loading:a,options:i,onChange:n=>{last(n)===j?t?.([j]):first(n)===j?t?.(n.slice(1)):t?.(n);}})},x1=o=>{let{groups:t,onChange:e,...s}=o,{axios:r}=y(l=>l),{data:a,isLoading:i}=Ie(t?.length?`/api/enum/game_group/get_game_ids?game_groups=${t.join(",")}`:null,l=>r.get(l).then(f=>f.data.data.list)),c=a?.map(l=>({label:l.name,value:l.id}));return jsx(Select,{...s,allowClear:!0,showSearch:!0,optionFilterProp:"label",mode:"tags",loading:i,options:c,onChange:l=>{last(l)===j?e?.([j]):first(l)===j?e?.(l.slice(1)):e?.(l);}})},sr=({isCreate:o})=>{let {t}=b(),{axios:e}=y(n=>n),{data:s,isLoading:r}=lo(),{data:a,isLoading:i}=Ie("/api/enum/get?enum=game_group&type=all",n=>e.get(n).then(l=>l.data.data));[{label:"\u901A\u7528",value:j}].concat(a?.map(n=>({label:n,value:n}))??[]);return jsxs(Fragment,{children:[jsx(Form.Item,{label:t("global.name"),name:"name",rules:[{required:!0}],children:jsx(Input,{disabled:!o})}),jsx(Form.List,{name:"permissions",children:(n,{add:l,remove:f})=>jsxs(Row,{gutter:8,children:[jsx(Col,{span:8,className:"text-center mb-4",children:jsx(io,{strong:!0,children:t("global.projectGroup")})}),jsx(Col,{span:10,className:"text-center mb-4",children:jsx(io,{strong:!0,children:t("global.game")})}),jsx(Col,{span:6,className:"text-center mb-4",children:jsx(io,{strong:!0,children:t("global.role")})}),n.map(u=>jsxs(Fragment$1,{children:[jsx(Col,{span:8,children:jsx(Form.Item,{noStyle:!0,shouldUpdate:!0,children:({setFieldValue:m})=>jsx(Form.Item,{name:[u.name,"game_group"],children:jsx(y1,{onChange:()=>{m(["permissions",u.name,"game_ids"],[]);}})})})}),jsx(Col,{span:10,children:jsx(Form.Item,{noStyle:!0,shouldUpdate:(m,p)=>m.permissions[u.name]?.game_group!==p.permissions[u.name]?.game_group,children:({getFieldValue:m})=>{let p=m(["permissions",u.name,"game_group"]);return jsx(Form.Item,{name:[u.name,"game_ids"],dependencies:[["permissions",u.name,"game_group"]],rules:[{required:p?.length,message:"\u8BF7\u9009\u62E9\u6E38\u620F"}],children:jsx(x1,{groups:p})})}})}),jsx(Col,{span:6,children:jsxs("div",{className:"flex",children:[jsx("div",{className:"flex-1",children:jsx(Form.Item,{name:[u.name,"role"],rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u89D2\u8272"},({getFieldValue:m})=>({validator(p,d){return m("permissions").filter((S,h)=>!!S&&h!==u.name).some(S=>S.role===d)?Promise.reject(new Error("\u8BF7\u52FF\u91CD\u590D\u9009\u62E9\u89D2\u8272")):Promise.resolve()}})],children:jsx(Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",loading:r,options:s?.map(m=>({label:m.name,value:m.name}))})})}),jsx("div",{className:"w-8 text-center",children:jsx(Form.Item,{children:jsx(MinusCircleOutlined,{onClick:()=>{f(u.name);}})})})]})})]},u.key)),n.length===0&&jsx(Col,{span:24,children:jsx(Empty,{className:"mb-6"})}),jsx(Col,{span:24,children:jsx(Button,{block:!0,type:"dashed",onClick:()=>l(),children:t("global.add")})})]})})]})},rr=({onSuccess:o}={})=>{let{t}=b(),{trigger:e}=Ys();return pe({title:t("User.createTitle"),width:"50vw",formProps:{autoComplete:"off",labelCol:{flex:"80px"}},content:jsx(sr,{isCreate:!0}),onConfirm:async s=>{await e(s),o?.();}})},ut=({onSuccess:o}={})=>{let{t}=b(),{trigger:e}=Xs();return pe({title:t("User.updateTitle"),width:"50vw",formProps:{autoComplete:"off",labelCol:{flex:"80px"}},content:jsx(sr,{}),onConfirm:async(s,r)=>{await e({...s,id:r?.id}),o?.();}})};});var w1,Ye,fo=g(()=>{T();w1=o=>{let{permissions:t,readonly:e,expand:s,value:r,onChange:a}=o,[i,c]=useState([]),[n,l]=useState({}),[f,u]=useState(r??[]),{t:m}=b(),[,p]=useTransition(),d=useCallback(h=>{c(h);},[]),I=(h,_)=>{let w=[];return h?w=[...new Set(f.concat(_))]:(w=f.slice(),_.forEach(N=>{let H=w.findIndex(z=>z===N);H>-1&&w.splice(H,1);})),w},x=(h,_)=>{let w=I(h.target.checked,_);u(w),a?.(w);};useEffect(()=>{u(r??[]);},[r]),useEffect(()=>{s&&p(()=>{c((t??[]).map(({category:h})=>h));});},[]),useEffect(()=>{let h=(t??[]).reduce((_,w)=>(_[w.category]=w.permissions.every(N=>f?.includes(N.value)),_),{});l(h);},[f,t]);let S=(t??[]).map(h=>({key:h.category,label:h.category,extra:!e&&jsx(Checkbox,{checked:n[h.category],onChange:_=>{x(_,h.permissions?.map(w=>w.value));},children:m("global.selectAll")}),children:jsx(Checkbox.Group,{style:{width:"100%"},value:f,disabled:e,children:jsx(Row,{gutter:[10,10],style:{width:"100%"},children:h.permissions?.map(_=>jsx(Col,{span:6,children:jsx(Checkbox,{value:_.value,onChange:w=>{x(w,[_.value]);},children:_.label})},_.value))})})}));return jsx(Collapse,{style:{width:"100%"},collapsible:"header",activeKey:i,items:S,onChange:d})},Ye=w1;});var go,R1,D1,pr,mr=g(()=>{T();ft();fo();(({Text:go}=Typography)),{Option:R1}=Select,D1=o=>{let{expand:t=!0,value:e,readonly:s,onChange:r}=o,{data:{permission:a,game:i}={},isLoading:c,error:n}=js(),[l,f]=useState([]),u=a?.filter(x=>x.is_common),m=a?.filter(x=>!x.is_common),{t:p}=b();if(useEffect(()=>{let x=[];Object.keys(e??{}).forEach(S=>{S!=="global"&&x.push({gameId:S,permissions:e?.[S]??[]});}),f(x);},[e]),n)return jsx("div",{className:"flex justify-center",children:jsx(go,{type:"danger",children:p("PermissionList.failedDescription")})});let d=()=>{f(x=>[...x,{gameId:"",permissions:[]}]);},I=x=>{f(S=>S.filter((h,_)=>_!==x));};return jsxs("div",{className:"flex flex-col w-full",children:[jsx("div",{className:"mb-12",children:jsx(Divider,{dashed:!0,children:p("PermissionList.baseSectionTitle")})}),jsx(Skeleton,{active:!0,loading:c,children:jsx(Ye,{value:e?.global,readonly:s,permissions:u,expand:t,onChange:x=>{r?.({...e,global:x});}})}),jsx("div",{className:"my-12",children:jsx(Divider,{dashed:!0,children:p("PermissionList.gameSectionTitle")})}),l.map((x,S)=>jsx(Card,{title:jsxs(Space,{children:[jsx(go,{children:p("global.game")}),s?jsx(go,{children:i?.find(h=>String(h.id)===x.gameId)?.name}):jsx(Select,{disabled:s,value:l[S].gameId||void 0,style:{width:"160px"},placeholder:p("PermissionList.gameSelectPlaceholder"),onChange:h=>{f(_=>{let w=_.slice();return w[S].gameId=h,w});},children:i?.map(h=>jsx(R1,{value:h.id,disabled:l.some(({gameId:_})=>_===String(h.id)),children:h.name},h.id))})]}),className:"mb-6",extra:!s&&jsx(Button,{type:"link",onClick:()=>{I(S);},children:p("PermissionList.removeText")}),children:l[S].gameId?jsx(Skeleton,{active:!0,loading:c,children:jsx(Ye,{value:e?.[l[S].gameId],readonly:s,expand:t,permissions:m,onChange:h=>{r?.({...e,[l[S].gameId]:h});}})}):jsx(Empty,{description:p("PermissionList.gameSectionDescription")})},S)),!s&&jsx(Button,{block:!0,type:"dashed",onClick:d,children:p("PermissionList.addText")})]})},pr=D1;});var G1,z1,dr,ur=g(()=>{T();ft();fo();(({Text:G1}=Typography)),z1=o=>{let{expand:t=!0,value:e,readonly:s,onChange:r}=o,{data:a,isLoading:i,error:c}=Js(),{t:n}=b();return c?jsx("div",{className:"flex justify-center",children:jsx(G1,{type:"danger",children:n("PermissionList.failedDescription")})}):jsx(Skeleton,{active:!0,loading:i,children:jsx(Ye,{value:e,permissions:a,readonly:s,expand:t,onChange:r})})},dr=z1;});var A1,Le,fr=g(()=>{k();mr();ur();A1=o=>{let{value:t}=o,e=y(s=>s.permissionVersion);return jsx(Fragment,{children:e==="v2"?jsx(pr,{...o,value:t}):jsx(dr,{...o,value:t})})},Le=A1;});var co=g(()=>{fr();});var gr=g(()=>{});var Xe=g(()=>{co();ft();gr();});var Sr={};he(Sr,{default:()=>j1});var Ge,J1,j1,_r=g(()=>{qe();T();Te();Fe();k();Xe();Ge="/api/usystem/user/list",J1=()=>{let{modal:o,message:t}=App.useApp(),{t:e}=b(),s=Zs(),{mutate:r,refetch:a}=ae(),{permissionVersion:i}=y(h=>h),c=i==="v1",n=i==="v3",{show:l,modal:f}=tr({onSuccess(){a(Ge,{page:1}),t.success(e("User.createSuccessfully"));}}),{show:u,modal:m}=or({onSuccess(){a(Ge),t.success(e("User.updateSuccessfully"));}}),{show:p,modal:d}=rr({onSuccess(){a(Ge,{page:1}),t.success(e("User.createSuccessfully"));}}),{show:I,modal:x}=ut({onSuccess(){a(Ge),t.success(e("User.updateSuccessfully"));}}),S=[{title:e("global.name"),dataIndex:"name",key:"name",render(h,_){return n?jsx(Link,{to:`./${_.id}`,children:h}):h}},{title:"ID",dataIndex:"id",key:"id"},(c||n)&&{title:e("global.role"),dataIndex:"roles",key:"roles",width:"40%",render(h){return jsx(Row,{gutter:[4,4],children:(h||[]).map(_=>jsx(Col,{children:_==="root"?jsx(Tag,{color:"#f50",children:_}):jsx(Tag,{color:"#ff5a00",children:jsx(Link,{to:`../role/${_}`,children:_})})},_))})}},{title:e("global.creationTime"),dataIndex:"Ctime",key:"ctime"},{title:e("global.operation"),width:150,align:"center",render:(h,_)=>{let{name:w,permissions:N,roles:H,id:z}=_;return jsxs(Space,{children:[jsx(q,{size:"small",type:"link",code:"100003",onClick:()=>{n?I({initialValues:{name:w,permissions:N},extraValues:{id:z}}):u({initialValues:{name:w,roles:H},extraValues:{id:z}});},children:e("global.update")}),jsx(q,{danger:!0,size:"small",code:"100004",type:"link",onClick:()=>{o.confirm({title:e("User.deleteTitle"),content:jsx(xe,{texts:[w],children:e("User.deleteContent",{user:w})}),async onOk(){await s.trigger({id:z,name:w}),r(Ge,v=>produce(v,B=>{let W=B?.List?.findIndex(J=>J.id===z);W&&B?.List?.splice(W,1);})),t.success(e("User.deleteSuccessfully"));}});},children:e("global.delete")})]})}}].filter(Boolean);return jsxs(Fragment,{children:[jsx(Card,{title:e("global.user"),extra:jsx(q,{type:"primary",icon:jsx(UserAddOutlined,{}),code:"100002",onClick:()=>{n?p():l();},children:e("User.createTitle")}),children:jsx(ne,{code:"100001",url:Ge,rowKey:"id",columns:S,getTotal:h=>h?.data.Total,getDataSource:h=>h?.data.List,renderForm:n?h=>jsx(Form,{form:h,children:jsx(Form.Item,{label:"\u540D\u79F0",name:"name",children:jsx(Input,{})})}):void 0})}),f,m,d,x]})},j1=O(J1,{isGlobal:!0});});var vr={};he(vr,{default:()=>s2});var o2,s2,Pr=g(()=>{nt();T();Te();k();oe();Xe();$();o2=()=>{let{message:o}=App.useApp(),t=useParams(),{t:e}=b(),{axios:s,gameApiV2:r}=y(p=>p),{data:a,isLoading:i,mutate:c}=Ie(t.id?`/api/usystem/user/info?id=${t.id}`:null,p=>s.get(p).then(d=>d.data.data)),{data:n}=be(),{data:l}=Q("200005"),{show:f,modal:u}=ut({onSuccess(){c(),o.success(e("User.updateSuccessfully"));}}),m=[{key:"group",title:e("global.projectGroup"),dataIndex:"game_group",render(p){return p.map(d=>jsx(Tag,{children:d===j?"\u901A\u7528":d},d))}},{key:"game",title:e("global.game"),dataIndex:"game_ids",render(p){return p.map(d=>{let I=n?.find(x=>String(r?x.game_id:x.id)===d);return jsx(Tag,{children:I?.name??(d===j?"\u901A\u7528":d)},d)})}},{key:"role",title:e("global.role"),dataIndex:"role",render(p){return l?jsx(Link,{to:`../../role/${p}`,relative:"path",children:p}):p}}];return jsxs(Fragment,{children:[jsx(Breadcrumb,{className:"mb-6",items:[{key:"1",title:jsx(Link,{to:"..",relative:"path",children:e("global.user")})},{key:"2",title:"\u7528\u6237\u8BE6\u60C5"}]}),jsx(Card,{title:"\u7528\u6237\u8BE6\u60C5",loading:i,extra:jsx(q,{code:"100003",onClick:()=>{f({initialValues:{name:a?.name,permissions:a?.permissions},extraValues:{id:a.id}});},children:e("global.update")}),children:jsxs(Descriptions,{bordered:!0,column:1,children:[jsx(Descriptions.Item,{label:e("global.name"),children:a?.name}),jsx(Descriptions.Item,{label:"ID",children:a?.id}),jsx(Descriptions.Item,{label:e("global.role"),children:jsx(Table,{rowKey:"role",columns:m,dataSource:a?.permissions,pagination:!1})})]})}),u]})},s2=o2;});var Tr={};he(Tr,{default:()=>d2});var yt,m2,d2,Fr=g(()=>{qe();T();Te();Fe();lt();k();Xe();$();yt="/api/usystem/role/list",m2=()=>{let{modal:o,message:t}=App.useApp(),{data:e}=Q("200005"),{t:s}=b(),{axios:r,permissionVersion:a}=y(I=>I),{mutate:i,refetch:c}=ae(),{show:n,modal:l}=er({onSuccess(){c(yt,{page:1}),t.success(s("Role.createSuccessfully"));}}),{show:f,modal:u}=dt({onSuccess(){i(yt),t.success(s("Role.updateSuccessfully"));}}),m=$s(),p=async I=>{let S=(await r.get(`/api/usystem/role/info${a==="v2"?"V2":""}?name=${I.name}`)).data.data;f({initialValues:{permissions:S?.permissions,name:S?.name.replace(/^role_/,"")},extraValues:{id:S?.id}});},d=[{title:s("global.name"),key:"name",render(I){return e?jsx(Link,{to:`${I.name}`,relative:"path",children:I.name}):jsx(Fragment,{children:I.name})}},{title:"ID",dataIndex:"id",key:"id"},{title:s("global.creationTime"),dataIndex:"ctime",key:"ctime"},{title:s("global.operation"),width:150,align:"center",render:(I,x)=>jsxs(Space,{size:"small",children:[jsx(q,{code:"200003",size:"small",type:"link",onClick:async()=>{p(x);},children:s("global.update")}),jsx(q,{danger:!0,code:"200004",size:"small",type:"link",onClick:()=>{o.confirm({title:s("Role.deleteTitle"),content:jsx(xe,{texts:[x.name],children:s("Role.deleteContent",{role:x.name})}),async onOk(){await m.trigger({id:x.id,name:x.name}),i(yt,S=>produce(S,h=>{let _=h?.List?.findIndex(w=>w.id===x.id);_&&h?.List?.splice(_,1);})),t.success(s("Role.deleteSuccessfully"));}});},children:s("global.delete")})]})}];return jsxs(Fragment,{children:[jsx(Card,{title:s("global.role"),extra:jsx(q,{type:"primary",code:"200002",icon:jsx(UsergroupAddOutlined,{}),onClick:()=>{n();},children:s("Role.createTitle")}),children:jsx(ne,{rowKey:"name",columns:d,code:"200001",url:yt,getTotal:I=>I?.data.Total,getDataSource:I=>I?.data.List})}),l,u]})},d2=O(m2,{isGlobal:!0});});var Rr={};he(Rr,{default:()=>S2});var b2,S2,Dr=g(()=>{T();Te();k();Xe();b2=()=>{let{message:o}=App.useApp(),t=useParams(),{t:e}=b(),{data:s,isLoading:r,mutate:a}=Qs(t.name),{show:i,modal:c}=dt({onSuccess(){a(),o.success(e("Role.updateSuccessfully"));}}),n=async()=>{i({initialValues:{permissions:s?.permissions,name:s?.name.replace(/^role_/,"")},extraValues:{id:s.id}});};return jsxs(Fragment,{children:[jsx(Breadcrumb,{style:{marginBottom:24},items:[{key:"1",title:jsx(Link,{to:"..",relative:"path",children:e("global.role")})},{key:"2",title:e("RoleDetail.title")}]}),jsx(Card,{title:e("RoleDetail.title"),extra:jsx(q,{code:"200003",onClick:n,children:e("global.update")}),children:jsxs(Skeleton,{loading:r,children:[jsxs(Descriptions,{column:2,layout:"vertical",className:"mb-6",children:[jsx(Descriptions.Item,{label:e("global.name"),children:s?.name}),jsx(Descriptions.Item,{label:"ID",children:s?.id}),jsx(Descriptions.Item,{label:e("global.creationTime"),children:s?.ctime})]}),jsx(Le,{readonly:!0,value:s?.permissions})]})}),c]})},S2=O(b2,{isGlobal:!0});});T();var _a=o=>{let{initialTags:t,addable:e,removable:s,addCallback:r,removeCallback:a}=o,{t:i}=b(),{token:c}=theme.useToken(),[n,l]=useState([]),[f,u]=useState(!1),[m,p]=useState(""),[d,I]=useState(-1),[x,S]=useState(""),h=useRef(null),_=useRef(null);useEffect(()=>{l(t??[]);},[t]),useEffect(()=>{f&&h.current?.focus();},[f]),useEffect(()=>{_.current?.focus();},[m]);let w=async M=>{if(await a?.(M)){let ee=n.filter(fe=>fe!==M);l(ee);}},N=()=>{u(!0);},H=M=>{p(M.target.value);},z=async()=>{m&&n.indexOf(m)===-1&&await r?.(m)&&l([...n,m]),u(!1),p("");},v=M=>{S(M.target.value);},B=()=>{let M=[...n];M[d]=x,l(M),I(-1),p("");},W={width:78,verticalAlign:"top"},J={background:c.colorBgContainer,borderStyle:"dashed"};return jsxs(Space,{wrap:!0,size:[0,8],children:[jsx(Space,{wrap:!0,size:[0,8],children:n.map((M,A)=>d===A?jsx(Input,{ref:_,size:"small",style:W,value:x,onChange:v,onBlur:B,onPressEnter:B},M):jsx(Tag,{closable:s,style:{userSelect:"none"},onClose:async ee=>{ee.preventDefault(),await w(M);},children:jsx("span",{onDoubleClick:ee=>{A!==0&&(I(A),S(M),ee.preventDefault());},children:M})},M))}),e&&(f?jsx(Input,{ref:h,type:"text",size:"small",style:W,value:m,onChange:H,onBlur:z,onPressEnter:z}):jsxs(Tag,{style:J,onClick:N,children:[jsx(PlusOutlined,{}),"\xA0",i("global.add")]}))]})},Ca=_a;var va=o=>{let{children:t,...e}=o,[s,r]=useState(!1);return jsx(Typography.Paragraph,{...e,className:"mb-0",ellipsis:{rows:2,expandable:"collapsible",expanded:s,onExpand:(a,i)=>{r(i.expanded);}},children:t})},st=va;rt();qe();$();rt();T();k();var Qa=(o,t)=>{let{code:e,url:s,tableExtra:r,headers:a,getRowKey:i,getDataSource:c,getHasMore:n,renderForm:l,params:f,footer:u,form:m,buttonsAlign:p,showReset:d,...I}=o,{t:x}=b(),[S]=Form.useForm(m),[h,_]=useState(!1),[w,N]=useState(),{axios:H}=y(G=>G),z=(G,Ee)=>{if(!h)return null;let It=i?.(Ee,G),le=f(w,G,It);return es.stringify(le)?`${s}?${es.stringify(le)}`:s},v=typeof a=="function"?a(S):a,{data:B,isLoading:W}=Q(e),{data:J,size:M,setSize:A,isValidating:ee,mutate:fe}=ja(z,async G=>(await H.get(G,{headers:v})).data,{shouldRetryOnError:!1,revalidateOnFocus:!1,revalidateFirstPage:!1}),te=c(J),re=ee||M>0&&J&&typeof J[M-1]>"u",ge=typeof n<"u"?!n(last(J)):!1,ze=!te||te.length===0,Ae=async()=>{let G=await S.getFieldsValue();N(G);try{await S.validateFields(),_(!0),fe();}catch{A(0),_(!1);}},St=()=>{A(M+1);},_t=async()=>{try{S.resetFields(),await S.validateFields({validateOnly:!0}),fe();}catch{A(0);}};if(useEffect(()=>{setTimeout(()=>{B&&S.validateFields({validateOnly:!0}).then(G=>{N(G),_(!0);}).catch(()=>{_(!1);});},300);},[B]),useImperativeHandle(t,()=>({data:J,dataSource:te,form:S,mutate:fe,size:M,setSize:A})),W)return jsx(Spin,{style:{display:"flex",justifyContent:"center",alignItems:"center",height:300}});if(!B)return jsx(Result,{status:403,subTitle:x("global.noEntitlement")});let Ct=u&&(()=>u(J)),et=typeof l=="function"?jsx(We,{showReset:d,buttonsAlign:p,isConfirming:ee,onReset:_t,onConfirm:Ae,children:cloneElement(l(S),{onKeyUp:G=>{G.key==="Enter"&&Ae();}})}):jsx(Form,{form:S});return jsxs(Fragment,{children:[et,typeof r=="function"?r(S,te):r,jsx(Table,{...I,dataSource:te,loading:re,pagination:!1,footer:Ct}),!ze&&jsx(Button,{block:!0,loading:re,type:"link",htmlType:"button",disabled:re||ge,onClick:St,children:x(re?"InfiniteList.loadingText":ge?"InfiniteList.reachEndText":"InfiniteList.loadMoreText")})]})},$a=forwardRef(Qa),Ya=$a;nt();$t();Nt();Te();Fe();Wt();$();T();var Si=o=>{let{code:t,config:e,children:s}=o,{data:r,isValidating:a}=Q(t,e),{t:i}=b();return a?jsx(Spin,{style:{display:"flex",justifyContent:"center",alignItems:"center",height:200}}):r?jsx(Fragment,{children:s}):jsx(Result,{status:"403",subTitle:i("global.noEntitlement")})},_i=Si;k();Kt();oe();$();var Qi=lazy(()=>Promise.resolve().then(()=>(Rs(),Fs))),$i=lazy(()=>Promise.resolve().then(()=>(zs(),Gs))),Yi=lazy(()=>Promise.resolve().then(()=>(Ns(),Os))),Xi=jsxs(Routes,{children:[jsx(Route,{index:!0,element:jsx(Qi,{})}),jsx(Route,{path:"create",element:jsx($i,{})}),jsx(Route,{path:"update/:id",element:jsx(Yi,{})})]});T();var s1=o=>{let{redirectUrl:t}=o,e=useNavigate(),{t:s}=b();return jsx("div",{className:"h-screen flex justify-center items-center",children:jsx(Result,{status:"404",title:"404",subTitle:s("NotFound.subTitle"),extra:t&&jsx(Button,{type:"primary",onClick:()=>{e(t);},children:s("NotFound.buttonText")})})})},r1=s1;T();Fe();k();var {Option:Bs}=Select,i1=()=>{let{t:o}=b(),t=[{key:"username",title:o("global.username"),dataIndex:"uname",width:100},{key:"label",title:o("global.label"),dataIndex:"label",width:150},{key:"method",title:o("global.method"),dataIndex:"method",width:100},{key:"route",title:o("global.route"),dataIndex:"route",width:200},{key:"request",title:o("global.request"),dataIndex:"request",render(e){return jsx(st,{children:e})}},{key:"response",title:o("global.response"),dataIndex:"response",render(e){return jsx(st,{children:e})}},{key:"creation_time",title:o("global.creationTime"),dataIndex:"ctime",width:200,render(e){return n1(e).format("YYYY-MM-DD HH:mm:ss")}}];return jsx(Card,{title:"\u64CD\u4F5C\u65E5\u5FD7",children:jsx(ne,{rowKey:"id",code:"300001",columns:t,tableLayout:"fixed",url:"/api/usystem/log/list",getTotal:e=>e?.data?.Total,getDataSource:e=>e?.data?.List,renderForm:e=>jsxs(Form,{form:e,layout:"inline",children:[jsx(Form.Item,{label:o("global.username"),name:"uname",children:jsx(Input,{allowClear:!0})}),jsx(Form.Item,{label:o("global.route"),name:"route",children:jsx(Input,{allowClear:!0})}),jsx(Form.Item,{label:o("global.method"),name:"method",children:jsxs(Select,{allowClear:!0,style:{width:"100px"},children:[jsx(Bs,{value:"get",children:"GET"}),jsx(Bs,{value:"post",children:"POST"})]})}),jsx(Form.Item,{label:o("global.label"),name:"label",children:jsx(Input,{allowClear:!0})})]})})})},l1=O(i1,{isGlobal:!0});var w2=lazy(()=>Promise.resolve().then(()=>(_r(),Sr))),v2=lazy(()=>Promise.resolve().then(()=>(Pr(),vr))),P2=lazy(()=>Promise.resolve().then(()=>(Fr(),Tr))),M2=lazy(()=>Promise.resolve().then(()=>(Dr(),Rr))),k2=jsxs(Routes,{children:[jsx(Route,{index:!0,element:jsx(Navigate,{to:"user"})}),jsx(Route,{path:"user",element:jsx(w2,{})}),jsx(Route,{path:"user/:id",element:jsx(v2,{})}),jsx(Route,{path:"role",element:jsx(P2,{})}),jsx(Route,{path:"role/:name",element:jsx(M2,{})})]});Tt();vt();
2
+ export{ce as APP_ID_HEADER,Ca as DynamicTags,st as ExpandableParagraph,ye as FRONTEND_ROUTE_PREFIX,We as FilterFormWrapper,xe as Highlight,Ya as InfiniteList,qn as Layout,Ot as NavMenu,r1 as NotFound,l1 as OperationLogList,q as PermissionButton,Ue as PermissionVersion,ne as QueryList,Is as QueryListAction,Bt as RequireGame,_i as RequirePermission,Pt as SSO_URL,ra as SignIn,fa as ToolkitsProvider,qt as UserWidget,j as WILDCARD,Xi as menuRoutes,So as mixedStorage,k2 as permissionRoutes,Dc as useFindGame,pe as useFormModal,be as useGames,Me as useMenuList,jt as useModal,Ht as useModalStore,Q as usePermission,ae as useQueryListStore,y as useToolkitsStore,O as withContext};