Compare commits
	
		
			424 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 34ffd9c1f3 | ||
|  | 3131e00f0f | ||
|  | f71812d622 | ||
|  | 0c12665fda | ||
|  | 458b7adb29 | ||
|  | 264da00e5d | ||
|  | 0882c25034 | ||
|  | a3562d9212 | ||
|  | b08c389e4a | ||
|  | 91bc1519f1 | ||
|  | 58b27c9693 | ||
|  | 25daa23606 | ||
|  | 9110d87580 | ||
|  | c097b5681d | ||
|  | beb705f8a9 | ||
|  | fd9488673c | ||
|  | 70aeefea02 | ||
|  | 1b3d2a6168 | ||
|  | fcb7ad965d | ||
|  | 828a2f5b60 | ||
|  | be6d431485 | ||
|  | 61a43b8efd | ||
|  | e3a9c77fd1 | ||
|  | e772ff05fb | ||
|  | d064f6285a | ||
|  | 091ca1a4fe | ||
|  | 9cec6a31a5 | ||
|  | bb8af263e1 | ||
|  | 7211a17a81 | ||
|  | 810398abb8 | ||
|  | f2b580fc06 | ||
|  | 3bd8858121 | ||
|  | 5efd1dbec4 | ||
|  | 971915948b | ||
|  | a9a37036d5 | ||
|  | 7a58035514 | ||
|  | 57bfe27819 | ||
|  | fcc65c3751 | ||
|  | f2d8dfc3ef | ||
|  | b5c570adf5 | ||
|  | 94098d02e8 | ||
|  | 436b15f010 | ||
|  | 0282feb173 | ||
|  | 8456750901 | ||
|  | 1a02cab97c | ||
|  | 1bdd81a1d8 | ||
|  | a9d58f88aa | ||
|  | 6a344ff2c7 | ||
|  | cc00c8f03a | ||
|  | c7b6a3fbec | ||
|  | 40c1e13b50 | ||
|  | 288d586dbc | ||
|  | 7d69992694 | ||
|  | 6c14bfe6a9 | ||
|  | 6773659e89 | ||
|  | 9455ad9a4f | ||
|  | 428d41b485 | ||
|  | 74772a1f03 | ||
|  | 1f3e6e4fac | ||
|  | 41b3bcb445 | ||
|  | 8e801dd790 | ||
|  | d6b1530720 | ||
|  | b632b7ffed | ||
|  | 1b45b71f20 | ||
|  | 149d22a4a4 | ||
|  | 83a2e01070 | ||
|  | 11d615f807 | ||
|  | 853745587d | ||
|  | f29108aa14 | ||
|  | abd02d1990 | ||
|  | 65ac69ef71 | ||
|  | 8998581b99 | ||
|  | 468b4bb0e1 | ||
|  | 88e535f63c | ||
|  | 13d0c4153a | ||
|  | 331b14e74d | ||
|  | c29b887eb2 | ||
|  | 8a1ec938e7 | ||
|  | c045e3fe4e | ||
|  | 811f820644 | ||
|  | fe8cab3d1c | ||
|  | 78efd7793a | ||
|  | 82c4b09b94 | ||
|  | a539112a0f | ||
|  | 22c05674f8 | ||
|  | 7dd7c71d01 | ||
|  | 22c90257de | ||
|  | 3d03d6ddb5 | ||
|  | 6fbde1eb57 | ||
|  | 0ee16e0228 | ||
|  | af74046124 | ||
|  | d823ee5684 | ||
|  | f7ca2782b0 | ||
|  | af8c133914 | ||
|  | 21b6fb697e | ||
|  | 3e0cc8c2c1 | ||
|  | 3540b75557 | ||
|  | 73ce53a388 | ||
|  | f408ea017c | ||
|  | c5ba63182e | ||
|  | 07325a4236 | ||
|  | 7240be8495 | ||
|  | 71a753f323 | ||
|  | 639c4458be | ||
|  | 1ad92a2d1b | ||
|  | 49f95c4e45 | ||
|  | 44ab07779e | ||
|  | 40ecc320a5 | ||
|  | 695ec7e50d | ||
|  | 85901d2d5e | ||
|  | 97e2ffddf4 | ||
|  | 907cf44cc1 | ||
|  | d9324f07b5 | ||
|  | d7f5bf3373 | ||
|  | 36f06bc899 | ||
|  | 182dac0d2e | ||
|  | f4d37cf7f0 | ||
|  | 16dce9a4ce | ||
|  | 0f0cd0b759 | ||
|  | 472f93bfc1 | ||
|  | 77572855c3 | ||
|  | 19942625d5 | ||
|  | dbd676095b | ||
|  | ed9cd6ce39 | ||
|  | ee434b465a | ||
|  | 2aba58c973 | ||
|  | 2c56233155 | ||
|  | 8d11a6affc | ||
|  | f6b61418e5 | ||
|  | 7f9c98ab8d | ||
|  | 02992dc02d | ||
|  | b32bca4984 | ||
|  | c37d0ac788 | ||
|  | 35aeedf320 | ||
|  | 94ff787053 | ||
|  | d0823b030b | ||
|  | 2d722db243 | ||
|  | 6143605297 | ||
|  | e2d6554313 | ||
|  | 872bb84502 | ||
|  | ee7eb3ac0d | ||
|  | dd1132482e | ||
|  | c33b5ebfef | ||
|  | 711a4ae34f | ||
|  | d9cfeabb47 | ||
|  | 296b154be5 | ||
|  | cec0f25c6b | ||
|  | b18c49e9d2 | ||
|  | f64bc91ce2 | ||
|  | b60db89801 | ||
|  | da407b6653 | ||
|  | 6a9a362caa | ||
|  | aa2f78a86f | ||
|  | a444731e9e | ||
|  | 1523c7b075 | ||
|  | 896e6f2eac | ||
|  | 8dcfbb29f9 | ||
|  | 750000ec66 | ||
|  | a792bb5cb3 | ||
|  | 973ab14442 | ||
|  | 3fe4e92f4a | ||
|  | 9ce58073dd | ||
|  | e2727e6fa1 | ||
|  | 73fa3d14c5 | ||
|  | ea1a336535 | ||
|  | 69e39c142e | ||
|  | 718c36263e | ||
|  | 5c1b086cb4 | ||
|  | 414ccbe360 | ||
|  | 41147b34fa | ||
|  | 894b0f1c18 | ||
|  | d214bb2f2a | ||
|  | 9518372fe0 | ||
|  | afa0134fdd | ||
|  | c6ed9b1558 | ||
|  | 0523f08382 | ||
|  | 8237adb9c0 | ||
|  | 65c21812bb | ||
|  | c3c975ee11 | ||
|  | 833018a831 | ||
|  | 3eb7f6f593 | ||
|  | efcfa576d5 | ||
|  | 487213b648 | ||
|  | 4ee0d94f1b | ||
|  | 5fa822f4d4 | ||
|  | 8e6e787543 | ||
|  | 9917b5e53c | ||
|  | 8f3e855f41 | ||
|  | 808051b29d | ||
|  | 906aed5e75 | ||
|  | 2d64a2e57c | ||
|  | 0c70a9e083 | ||
|  | 08d83ecbea | ||
|  | 4122685803 | ||
|  | 434ab1c560 | ||
|  | ae99e57c52 | ||
|  | e3c4a6ece6 | ||
|  | c8717c25b8 | ||
|  | e9656c6e76 | ||
|  | fd78791229 | ||
|  | de09f82586 | ||
|  | c7762490de | ||
|  | 4558c24d1c | ||
|  | d9ac7e4de0 | ||
|  | 6a5a357f50 | ||
|  | 44b022aefd | ||
|  | 0a46ea0844 | ||
|  | 39854a492b | ||
|  | 4c2f535a9b | ||
|  | be45d83766 | ||
|  | d28b9039bb | ||
|  | 8f6d6ce3cb | ||
|  | 07baac7cf8 | ||
|  | 7487ab79b3 | ||
|  | a70e4161be | ||
|  | 095c432363 | ||
|  | 028096e53f | ||
|  | 44ab55d594 | ||
|  | 4b80a66114 | ||
|  | cc0bb088ec | ||
|  | 3e4f9e2824 | ||
|  | ebd16a4d1a | ||
|  | 84cb07baec | ||
|  | 0811ffa5ae | ||
|  | 3f822a7d76 | ||
|  | a1c7e10574 | ||
|  | 50d7ccd82d | ||
|  | e0233061d3 | ||
|  | a0c405dadd | ||
|  | 60f912508b | ||
|  | 3590b65e22 | ||
|  | 92b8406444 | ||
|  | e7ad08685e | ||
|  | 14c145eef1 | ||
|  | 518f7eed28 | ||
|  | 21e63998d0 | ||
|  | 38ee2a62cd | ||
|  | 716528206e | ||
|  | b81143e55e | ||
|  | 0243b27505 | ||
|  | 909c12d3c6 | ||
|  | 01d0bcbfd0 | ||
|  | ba07b695dd | ||
|  | 3d8befa376 | ||
|  | 97c92626cc | ||
|  | 55ddc9cab0 | ||
|  | 401f0c748d | ||
|  | d5c751153c | ||
|  | 69d51318ff | ||
|  | de5fb84215 | ||
|  | c275f2632c | ||
|  | e899914426 | ||
|  | 861c8b9852 | ||
|  | a782461453 | ||
|  | e8488e4d52 | ||
|  | 889c859865 | ||
|  | 3c8dd772f8 | ||
|  | 251b5b9664 | ||
|  | 41e46a5d80 | ||
|  | 5c75e9d958 | ||
|  | 7f4350aeb6 | ||
|  | 807448aec5 | ||
|  | b9c5c34979 | ||
|  | 20347b7d65 | ||
|  | dbeb595c0b | ||
|  | c9d3e5a3fd | ||
|  | 5e276421ad | ||
|  | 219f87f467 | ||
|  | b35ed8960d | ||
|  | 24010d05fb | ||
|  | ec0776e268 | ||
|  | cecce83bc3 | ||
|  | 4eb46ea3dd | ||
|  | e8b534b84e | ||
|  | 46e1ae7825 | ||
|  | 60a55a776e | ||
|  | bed4292ed3 | ||
|  | 6bed9ead38 | ||
|  | 3fb13ca9e7 | ||
|  | 2d6d179d66 | ||
|  | eebb753884 | ||
|  | bb1bbf2724 | ||
|  | df56abe18d | ||
|  | ca2dfa6185 | ||
|  | bbfdcc8276 | ||
|  | 1715504789 | ||
|  | 9a90f18e77 | ||
|  | 21645537d5 | ||
|  | e6c26fcb4a | ||
|  | 20911dd882 | ||
|  | cd7ca8f4c7 | ||
|  | ca707a456b | ||
|  | d0522ce514 | ||
|  | f83c7b59b8 | ||
|  | f5a043b11a | ||
|  | 094dca961f | ||
|  | 8191490f39 | ||
|  | 75de2b0604 | ||
|  | 4093dcd6dc | ||
|  | d00643c9f5 | ||
|  | b8db2116df | ||
|  | a0dfa3d30d | ||
|  | 4e31abd446 | ||
|  | f42ee9dbe5 | ||
|  | f5c56c355c | ||
|  | a1a57a185c | ||
|  | b298af1ddb | ||
|  | 43d685ccd3 | ||
|  | 72d7dcfa5e | ||
|  | 1e2fdda090 | ||
|  | 8d00b238f7 | ||
|  | 8cdad54236 | ||
|  | 6298e61328 | ||
|  | 9d4ed617fb | ||
|  | f92d7ecfbe | ||
|  | ce4e039f48 | ||
|  | 1a9efee591 | ||
|  | 378d55ac0e | ||
|  | 50c8b9daa1 | ||
|  | c4546bdfa3 | ||
|  | 5b401a79ba | ||
|  | 7add5c2edf | ||
|  | 811b15e672 | ||
|  | c1182fef0a | ||
|  | 7ba332cd6a | ||
|  | a810ef85b1 | ||
|  | 225e7128b6 | ||
|  | 3aded40461 | ||
|  | 57c692be74 | ||
|  | 284af63cfe | ||
|  | e856cdb7b2 | ||
|  | 114072277f | ||
|  | e65034d946 | ||
|  | a7a269d6a6 | ||
|  | 2c9660fdbf | ||
|  | e93b94cb24 | ||
|  | 3befb22903 | ||
|  | 7ed5d0de2d | ||
|  | 47f2871cb5 | ||
|  | 852ddb64ad | ||
|  | 7e1f9f1138 | ||
|  | 554d7fd611 | ||
|  | 1797f29a79 | ||
|  | 50063187ec | ||
|  | b16721b2b7 | ||
|  | facc00e8b4 | ||
|  | 02c51e6fb9 | ||
|  | be374089ba | ||
|  | 68b42304d5 | ||
|  | 32a7cc408e | ||
|  | 651e58dcb6 | ||
|  | b61b0ce25f | ||
|  | 21bab1f7c3 | ||
|  | 4f9d544d43 | ||
|  | db75c91400 | ||
|  | 37092974d3 | ||
|  | 1d63a83822 | ||
|  | db3c25ea14 | ||
|  | 5eddb4910c | ||
|  | ce531ce5dd | ||
|  | 28efbdbc70 | ||
|  | cc290accc2 | ||
|  | 579e07400e | ||
|  | b2a4ddf5e3 | ||
|  | 28b5d22401 | ||
|  | 839b82ba8b | ||
|  | 09c7658c21 | ||
|  | e25afe2fad | ||
|  | 371fad4f26 | ||
|  | a090d398fc | ||
|  | 6d132c5977 | ||
|  | 912bfdf439 | ||
|  | bf020a8258 | ||
|  | 10e4d81bd6 | ||
|  | 0653fb144f | ||
|  | 006467a062 | ||
|  | 0c5770dfd2 | ||
|  | 0e783bcf7b | ||
|  | e5793e1c8d | ||
|  | 85b55bb37a | ||
|  | b36a62b150 | ||
|  | c804b21ceb | ||
|  | 5bfb8199b4 | ||
|  | ab9a6a2f39 | ||
|  | b93b80cb4b | ||
|  | f5a36a05cb | ||
|  | 035fa114c9 | ||
|  | 2c196841bd | ||
|  | 0d2a5629e8 | ||
|  | de2057f141 | ||
|  | 7a0648dba5 | ||
|  | 25d3404c9c | ||
|  | 29078689b0 | ||
|  | 078433da43 | ||
|  | b9ce69130b | ||
|  | 90ddf9837c | ||
|  | 777cf8e06a | ||
|  | 9bc682dae8 | ||
|  | c9c5ca9989 | ||
|  | e776df49e4 | ||
|  | 659e460653 | ||
|  | 186f53f634 | ||
|  | 5aac013597 | ||
|  | 1901a0bfb7 | ||
|  | 25bead0039 | ||
|  | 041012b3ee | ||
|  | 9472b51811 | ||
|  | f3c86efbe5 | ||
|  | 51c744c8e2 | ||
|  | 230a50a4cf | ||
|  | e755caabf2 | ||
|  | ae7ec99a98 | ||
|  | 987cef3363 | ||
|  | 2ad1ad32b8 | ||
|  | ff9216b621 | ||
|  | 225c4fe022 | ||
|  | f29106e480 | ||
|  | 21c2f5a857 | ||
|  | e53e7936df | ||
|  | bdc39aff1b | ||
|  | 0b10b5056e | ||
|  | d683894beb | ||
|  | 9fb641f71e | ||
|  | a6bdc380a8 | 
| @@ -1,45 +0,0 @@ | |||||||
| module.exports = { |  | ||||||
|   types: [ |  | ||||||
|     { value: 'feat', name: 'feat:     新增功能' }, |  | ||||||
|     { value: 'fix', name: 'fix:      修复bug' }, |  | ||||||
|     { value: 'docs', name: 'docs:     文档变更' }, |  | ||||||
|     { value: 'style', name: 'style:    代码格式(不影响功能,例如空格、分号等格式修正)' }, |  | ||||||
|     { value: 'refactor', name: 'refactor: 代码重构(不包括 bug 修复、功能新增)' }, |  | ||||||
|     { value: 'perf', name: 'perf:     性能优化' }, |  | ||||||
|     { value: 'test', name: 'test:     添加、修改测试用例' }, |  | ||||||
|     { value: 'build', name: 'build:    构建流程、外部依赖变更(如升级 npm 包、修改 脚手架 配置等)' }, |  | ||||||
|     { value: 'ci', name: 'ci:       修改 CI 配置、脚本' }, |  | ||||||
|     { value: 'chore', name: 'chore:    对构建过程或辅助工具和库的更改(不影响源文件、测试用例)' }, |  | ||||||
|     { value: 'revert', name: 'revert:   回滚 commit' } |  | ||||||
|   ], |  | ||||||
|   scopes: [ |  | ||||||
| 		['projects', '项目搭建'], |  | ||||||
|     ['components', '组件相关'], |  | ||||||
|     ['hooks', 'hook 相关'], |  | ||||||
|     ['utils', 'utils 相关'], |  | ||||||
|     ['types', 'ts类型相关'], |  | ||||||
|     ['styles', '样式相关'], |  | ||||||
|     ['deps', '项目依赖'], |  | ||||||
|     ['auth', '对 auth 修改'], |  | ||||||
|     ['other', '其他修改'], |  | ||||||
|     ['custom', '以上都不是?我要自定义'] |  | ||||||
|   ].map(([value, description]) => { |  | ||||||
|     return { |  | ||||||
|       value, |  | ||||||
|       name: `${value.padEnd(30)} (${description})` |  | ||||||
|     } |  | ||||||
|   }), |  | ||||||
|   messages: { |  | ||||||
|     type: '确保本次提交遵循 Angular 规范!\n选择你要提交的类型:', |  | ||||||
|     scope: '\n选择一个 scope(可选):', |  | ||||||
|     customScope: '请输入自定义的 scope:', |  | ||||||
|     subject: '填写简短精炼的变更描述:\n', |  | ||||||
|     body: '填写更加详细的变更描述(可选)。使用 "|" 换行:\n', |  | ||||||
|     breaking: '列举非兼容性重大的变更(可选):\n', |  | ||||||
|     footer: '列举出所有变更的 ISSUES CLOSED(可选)。 例如: #31, #34:\n', |  | ||||||
|     confirmCommit: '确认提交?' |  | ||||||
|   }, |  | ||||||
|   allowBreakingChanges: ['feat', 'fix'], |  | ||||||
|   subjectLimit: 100, |  | ||||||
|   breaklineChar: '|' |  | ||||||
| } |  | ||||||
| @@ -1,12 +1,11 @@ | |||||||
| # Editor configuration, see http://editorconfig.org | # Editor configuration, see http://editorconfig.org | ||||||
|  |  | ||||||
| # 表示是最顶层的 EditorConfig 配置文件 |  | ||||||
| root = true | root = true | ||||||
|  |  | ||||||
| [*] # 表示所有文件适用 | [*] | ||||||
| charset = utf-8 # 设置文件字符集为 utf-8 | charset = utf-8 | ||||||
| indent_style = tab # 缩进风格(tab | space) | indent_style = tab | ||||||
| indent_size = 2 # 缩进大小 | indent_size = 2 | ||||||
| end_of_line = lf # 控制换行类型(lf | cr | crlf) | end_of_line = lf | ||||||
| trim_trailing_whitespace = true # 去除行首的任意空白字符 | trim_trailing_whitespace = true | ||||||
| insert_final_newline = true # 始终在文件末尾插入一个新行 | insert_final_newline = true | ||||||
|   | |||||||
							
								
								
									
										23
									
								
								.env
									
									
									
									
									
								
							
							
						
						| @@ -1,5 +1,20 @@ | |||||||
| # 变量需要以VITE开头 |  | ||||||
|  |  | ||||||
| VITE_APP_TITLE=SoybeanAdmin |  | ||||||
| VITE_APP_TITLE_LABEL=SoybeanAdmin |  | ||||||
| VITE_BASE_URL=/ | VITE_BASE_URL=/ | ||||||
|  |  | ||||||
|  | VITE_APP_NAME=SoybeanAdmin | ||||||
|  |  | ||||||
|  | VITE_APP_TITLE=Soybean管理系统 | ||||||
|  |  | ||||||
|  | VITE_APP_DESC=SoybeanAdmin是一个中后台管理系统模版 | ||||||
|  |  | ||||||
|  | # 权限路由模式: static | dynamic | ||||||
|  | VITE_AUTH_ROUTE_MODE=static | ||||||
|  |  | ||||||
|  | # 路由首页(根路由重定向), 用于static模式的权限路由,dynamic模式取决于后端返回的路由首页 | ||||||
|  | VITE_ROUTE_HOME_PATH=/dashboard/analysis | ||||||
|  |  | ||||||
|  | # iconify图标作为组件的前缀 | ||||||
|  | VITE_ICON_PREFFIX=icon | ||||||
|  |  | ||||||
|  | # 本地SVG图标作为组件的前缀, 请注意一定要包含 VITE_ICON_PREFFIX | ||||||
|  | # 格式 {VITE_ICON_PREFFIX}-{本地图标集合名称} | ||||||
|  | VITE_ICON_LOCAL_PREFFIX=icon-local | ||||||
|   | |||||||
							
								
								
									
										36
									
								
								.env-config.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,36 @@ | |||||||
|  | /** 请求服务的环境配置 */ | ||||||
|  | type ServiceEnv = Record<ServiceEnvType, ServiceEnvConfig>; | ||||||
|  |  | ||||||
|  | /** 不同请求服务的环境配置 */ | ||||||
|  | const serviceEnv: ServiceEnv = { | ||||||
|  |   dev: { | ||||||
|  |     url: 'http://localhost:8080', | ||||||
|  |     urlPattern: '/url-pattern', | ||||||
|  |     secondUrl: 'http://localhost:8081', | ||||||
|  |     secondUrlPattern: '/second-url-pattern' | ||||||
|  |   }, | ||||||
|  |   test: { | ||||||
|  |     url: 'http://localhost:8080', | ||||||
|  |     urlPattern: '/url-pattern', | ||||||
|  |     secondUrl: 'http://localhost:8081', | ||||||
|  |     secondUrlPattern: '/second-url-pattern' | ||||||
|  |   }, | ||||||
|  |   prod: { | ||||||
|  |     url: 'http://localhost:8080', | ||||||
|  |     urlPattern: '/url-pattern', | ||||||
|  |     secondUrl: 'http://localhost:8081', | ||||||
|  |     secondUrlPattern: '/second-url-pattern' | ||||||
|  |   } | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 获取当前环境模式下的请求服务的配置 | ||||||
|  |  * @param env 环境 | ||||||
|  |  */ | ||||||
|  | export function getServiceEnvConfig(env: ImportMetaEnv) { | ||||||
|  |   const { VITE_SERVICE_ENV = 'dev' } = env; | ||||||
|  |  | ||||||
|  |   const config = serviceEnv[VITE_SERVICE_ENV]; | ||||||
|  |  | ||||||
|  |   return config; | ||||||
|  | } | ||||||
| @@ -1,4 +1 @@ | |||||||
| #请求的环境 | VITE_HTTP_PROXY=Y | ||||||
| VITE_HTTP_ENV=DEV |  | ||||||
| #请求地址 |  | ||||||
| VITE_HTTP_URL=https://test.aisuit.com.cn |  | ||||||
|   | |||||||
| @@ -1,4 +1,8 @@ | |||||||
| #请求的环境 正式环境 | VITE_VISUALIZER=N | ||||||
| VITE_HTTP_ENV=PROD |  | ||||||
| #请求地址 | VITE_COMPRESS=N | ||||||
| VITE_HTTP_URL=http://192.168.100.43:8201 |  | ||||||
|  | # gzip | brotliCompress | deflate | deflateRaw | ||||||
|  | VITE_COMPRESS_TYPE=gzip | ||||||
|  |  | ||||||
|  | VITE_PWA=N | ||||||
|   | |||||||
| @@ -1,3 +0,0 @@ | |||||||
| VITE_HTTP_ENV=STAGING |  | ||||||
| #请求地址 |  | ||||||
| VITE_HTTP_URL=http://192.168.100.43:8201 |  | ||||||
| @@ -1,14 +1,3 @@ | |||||||
| *.sh | !.env-config.ts | ||||||
| node_modules | components.d.ts | ||||||
| lib | router-page.d.ts | ||||||
| *.md |  | ||||||
| *.woff |  | ||||||
| *.ttf |  | ||||||
| .vscode |  | ||||||
| .idea |  | ||||||
| /dist/ |  | ||||||
| /mock/ |  | ||||||
| /public |  | ||||||
| /docs |  | ||||||
| .vscode |  | ||||||
| .local |  | ||||||
|   | |||||||
							
								
								
									
										168
									
								
								.eslintrc.js
									
									
									
									
									
								
							
							
						
						| @@ -1,52 +1,126 @@ | |||||||
| module.exports = { | module.exports = { | ||||||
|   env: { |   extends: ['soybeanjs-vue'], | ||||||
|     browser: true, |   overrides: [ | ||||||
|     es2021: true |     { | ||||||
|   }, |       files: ['./scripts/*.ts'], | ||||||
|   globals: { |       rules: { | ||||||
|     defineProps: 'readonly', |         'no-unused-expressions': 'off' | ||||||
|     defineEmits: 'readonly', |       } | ||||||
|     defineExpose: 'readonly', |     } | ||||||
|     withDefaults: 'readonly', |  | ||||||
|     PROJECT_BUILD_TIME: 'readonly', |  | ||||||
|     AMap: 'readonly', |  | ||||||
|     BMap: 'readonly', |  | ||||||
|     TMap: 'readonly' |  | ||||||
|   }, |  | ||||||
|   parser: 'vue-eslint-parser', |  | ||||||
|   parserOptions: { |  | ||||||
|     ecmaVersion: 12, |  | ||||||
|     parser: '@typescript-eslint/parser', |  | ||||||
|     sourceType: 'module' |  | ||||||
|   }, |  | ||||||
|   plugins: ['vue', '@typescript-eslint'], |  | ||||||
|   extends: [ |  | ||||||
|     'plugin:vue/vue3-recommended', |  | ||||||
|     'airbnb-base', |  | ||||||
|     '@vue/typescript/recommended', |  | ||||||
|     'plugin:prettier/recommended', |  | ||||||
|     '@vue/prettier/@typescript-eslint' |  | ||||||
|   ], |   ], | ||||||
|  |   settings: { | ||||||
|  |     'import/core-modules': ['uno.css', '~icons/*', 'virtual:svg-icons-register'] | ||||||
|  |   }, | ||||||
|   rules: { |   rules: { | ||||||
|     'no-unused-vars': 'off', |     'import/order': [ | ||||||
|     'import/extensions': 'off', |       'error', | ||||||
|     'import/no-extraneous-dependencies': 'off', |       { | ||||||
|     'import/no-unresolved': 0, |         'newlines-between': 'never', | ||||||
|     'no-shadow': 0, |         groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index'], | ||||||
|     'import/prefer-default-export': 0, |         pathGroups: [ | ||||||
|     'no-use-before-define': 'off', |           { | ||||||
|     'vue/multi-word-component-names': 0, |             pattern: 'vue', | ||||||
|     'max-classes-per-file': 0, |             group: 'external', | ||||||
|     '@typescript-eslint/no-explicit-any': 0, |             position: 'before' | ||||||
|     '@typescript-eslint/no-inferrable-types': 0, |           }, | ||||||
|     '@typescript-eslint/ban-ts-ignore': 'off', |           { | ||||||
|     '@typescript-eslint/ban-types': 'off', |             pattern: 'vue-router', | ||||||
|     '@typescript-eslint/no-var-requires': 'off', |             group: 'external', | ||||||
|     '@typescript-eslint/explicit-module-boundary-types': 'off', |             position: 'before' | ||||||
|     '@typescript-eslint/explicit-function-return-type': 'off', |           }, | ||||||
|     '@typescript-eslint/no-empty-function': 'off', |           { | ||||||
|     '@typescript-eslint/no-non-null-assertion': 'off', |             pattern: 'pinia', | ||||||
|     '@typescript-eslint/no-unused-vars': ['warn', { ignoreRestSiblings: true }], |             group: 'external', | ||||||
|     '@typescript-eslint/no-use-before-define': ['error', { classes: true, functions: false, typedefs: false }] |             position: 'before' | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             pattern: 'naive-ui', | ||||||
|  |             group: 'external', | ||||||
|  |             position: 'before' | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             pattern: '@/config', | ||||||
|  |             group: 'internal', | ||||||
|  |             position: 'before' | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             pattern: '@/settings', | ||||||
|  |             group: 'internal', | ||||||
|  |             position: 'before' | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             pattern: '@/enum', | ||||||
|  |             group: 'internal', | ||||||
|  |             position: 'before' | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             pattern: '@/plugins', | ||||||
|  |             group: 'internal', | ||||||
|  |             position: 'before' | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             pattern: '@/layouts', | ||||||
|  |             group: 'internal', | ||||||
|  |             position: 'before' | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             pattern: '@/views', | ||||||
|  |             group: 'internal', | ||||||
|  |             position: 'before' | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             pattern: '@/components', | ||||||
|  |             group: 'internal', | ||||||
|  |             position: 'before' | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             pattern: '@/router', | ||||||
|  |             group: 'internal', | ||||||
|  |             position: 'before' | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             pattern: '@/service', | ||||||
|  |             group: 'internal', | ||||||
|  |             position: 'before' | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             pattern: '@/store', | ||||||
|  |             group: 'internal', | ||||||
|  |             position: 'before' | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             pattern: '@/context', | ||||||
|  |             group: 'internal', | ||||||
|  |             position: 'before' | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             pattern: '@/composables', | ||||||
|  |             group: 'internal', | ||||||
|  |             position: 'before' | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             pattern: '@/hooks', | ||||||
|  |             group: 'internal', | ||||||
|  |             position: 'before' | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             pattern: '@/utils', | ||||||
|  |             group: 'internal', | ||||||
|  |             position: 'before' | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             pattern: '@/assets', | ||||||
|  |             group: 'internal', | ||||||
|  |             position: 'before' | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             pattern: '@/**', | ||||||
|  |             group: 'internal', | ||||||
|  |             position: 'before' | ||||||
|  |           } | ||||||
|  |         ], | ||||||
|  |         pathGroupsExcludedImportTypes: ['vue', 'vue-router', 'pinia', 'naive-ui'] | ||||||
|  |       } | ||||||
|  |     ] | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
|   | |||||||
							
								
								
									
										17
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,17 @@ | |||||||
|  | "*.vue"    eol=lf | ||||||
|  | "*.js"     eol=lf | ||||||
|  | "*.ts"     eol=lf | ||||||
|  | "*.jsx"    eol=lf | ||||||
|  | "*.tsx"    eol=lf | ||||||
|  | "*.cjs"    eol=lf | ||||||
|  | "*.cts"    eol=lf | ||||||
|  | "*.mjs"    eol=lf | ||||||
|  | "*.mts"    eol=lf | ||||||
|  | "*.json"   eol=lf | ||||||
|  | "*.html"   eol=lf | ||||||
|  | "*.css"    eol=lf | ||||||
|  | "*.less"   eol=lf | ||||||
|  | "*.scss"   eol=lf | ||||||
|  | "*.sass"   eol=lf | ||||||
|  | "*.styl"   eol=lf | ||||||
|  | "*.md"   eol=lf | ||||||
							
								
								
									
										31
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -1,7 +1,36 @@ | |||||||
|  | # Logs | ||||||
|  | logs | ||||||
|  | *.log | ||||||
|  | npm-debug.log* | ||||||
|  | yarn-debug.log* | ||||||
|  | yarn-error.log* | ||||||
|  | pnpm-debug.log* | ||||||
|  | lerna-debug.log* | ||||||
|  |  | ||||||
| node_modules | node_modules | ||||||
| .DS_Store | .DS_Store | ||||||
| dist | dist | ||||||
| dist-ssr | dist-ssr | ||||||
|  | dist.zip | ||||||
|  | coverage | ||||||
| *.local | *.local | ||||||
| .idea |  | ||||||
| stats.html | stats.html | ||||||
|  |  | ||||||
|  | /cypress/videos/ | ||||||
|  | /cypress/screenshots/ | ||||||
|  |  | ||||||
|  | # Editor directories and files | ||||||
|  | .vscode/* | ||||||
|  | !.vscode/extensions.json | ||||||
|  | !.vscode/launch.json | ||||||
|  | !.vscode/settings.json | ||||||
|  | .idea | ||||||
|  | *.suo | ||||||
|  | *.ntvs* | ||||||
|  | *.njsproj | ||||||
|  | *.sln | ||||||
|  | *.sw? | ||||||
|  |  | ||||||
|  | /src/typings/components.d.ts | ||||||
|  | package-lock.json | ||||||
|  | yarn.lock | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								.husky/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -1 +0,0 @@ | |||||||
| _ |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| #!/bin/sh |  | ||||||
| . "$(dirname "$0")/_/husky.sh" |  | ||||||
|  |  | ||||||
| npx --no-install commitlint --edit |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| #!/bin/sh |  | ||||||
| . "$(dirname "$0")/_/husky.sh" |  | ||||||
|  |  | ||||||
| pnpm lint:fix |  | ||||||
							
								
								
									
										4
									
								
								.npmrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,4 @@ | |||||||
|  | registry=https://registry.npmmirror.com/ | ||||||
|  | shamefully-hoist=true | ||||||
|  | strict-peer-dependencies=false | ||||||
|  | auto-install-peers=true | ||||||
| @@ -1,19 +0,0 @@ | |||||||
| module.exports = { |  | ||||||
|   printWidth: 120, // 超过最大值换行 |  | ||||||
|   tabWidth: 2, // 缩进字节数 |  | ||||||
|   useTabs: false, // 缩进使用tab,不使用空格 |  | ||||||
|   semi: true, // 句尾添加分号 |  | ||||||
|   singleQuote: true, // 使用单引号代替双引号 |  | ||||||
|   proseWrap: 'preserve', // 默认值。因为使用了一些折行敏感型的渲染器(如GitHub comment)而按照markdown文本样式进行折行 |  | ||||||
|   arrowParens: 'avoid', //  (x) => {} 箭头函数参数只有一个时是否要有小括号。avoid:省略括号 |  | ||||||
|   bracketSpacing: true, // 在对象,数组括号与文字之间加空格 "{ foo: bar }" |  | ||||||
|   endOfLine: 'auto', // 结尾是 \n \r \n\r auto |  | ||||||
|   eslintIntegration: false, //不让prettier使用eslint的代码格式进行校验 |  | ||||||
|   htmlWhitespaceSensitivity: 'ignore', // 指定HTML文件的全局空白区域敏感度 有效选项:"css"- 遵守CSS display属性的默认值。"strict" - 空格被认为是敏感的。"ignore" - 空格被认为是不敏感的。html 中空格也会占位,影响布局,prettier 格式化的时候可能会将文本换行,造成布局错乱 |  | ||||||
|   ignorePath: '.prettierignore', // 不使用prettier格式化的文件填写在项目的.prettierignore文件中 |  | ||||||
|   jsxSingleQuote: false, // 在jsx中使用单引号代替双引号 |  | ||||||
|   requireConfig: false, // Require a 'prettierconfig' to format prettier |  | ||||||
|   stylelintIntegration: false, //不让prettier使用stylelint的代码格式进行校验 |  | ||||||
|   trailingComma: 'none', // 在对象或数组最后一个元素后面是否加逗号(在ES5中加尾逗号) |  | ||||||
|   tslintIntegration: false // 不让prettier使用tslint的代码格式进行校验 |  | ||||||
| } |  | ||||||
							
								
								
									
										55
									
								
								.vscode/extensions.json
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -1,34 +1,25 @@ | |||||||
| { | { | ||||||
| 	"recommendations": [ |   "recommendations": [ | ||||||
| 		"formulahendry.auto-close-tag", |     "afzalsayed96.icones", | ||||||
| 		"formulahendry.auto-complete-tag", |     "antfu.iconify", | ||||||
| 		"steoates.autoimport", |     "antfu.unocss", | ||||||
| 		"formulahendry.auto-rename-tag", |     "christian-kohler.path-intellisense", | ||||||
| 		"coenraads.bracket-pair-colorizer", |     "dbaeumer.vscode-eslint", | ||||||
| 		"pranaygp.vscode-css-peek", |     "eamodio.gitlens", | ||||||
| 		"mikestead.dotenv", |     "editorconfig.editorconfig", | ||||||
| 		"editorconfig.editorconfig", |     "esbenp.prettier-vscode", | ||||||
| 		"dsznajder.es7-react-js-snippets", |     "formulahendry.auto-complete-tag", | ||||||
| 		"dbaeumer.vscode-eslint", |     "formulahendry.auto-close-tag", | ||||||
| 		"miguelsolorio.fluent-icons", |     "formulahendry.auto-rename-tag", | ||||||
| 		"mhutchie.git-graph", |     "kisstkondoros.vscode-gutter-preview", | ||||||
| 		"eamodio.gitlens", |     "lokalise.i18n-ally", | ||||||
| 		"lokalise.i18n-ally", |     "mhutchie.git-graph", | ||||||
| 		"afzalsayed96.icones", |     "mikestead.dotenv", | ||||||
| 		"antfu.iconify", |     "naumovs.color-highlight", | ||||||
| 		"kisstkondoros.vscode-gutter-preview", |     "pkief.material-icon-theme", | ||||||
| 		"xabikos.javascriptsnippets", |     "steoates.autoimport", | ||||||
| 		"whtouche.vscode-js-console-utils", |     "vue.volar", | ||||||
| 		"ritwickdey.liveserver", |     "whtouche.vscode-js-console-utils", | ||||||
| 		"yzhang.markdown-all-in-one", |     "zhuangtongfa.material-theme" | ||||||
| 		"pkief.material-icon-theme", |   ] | ||||||
| 		"zhuangtongfa.material-theme", |  | ||||||
| 		"christian-kohler.path-intellisense", |  | ||||||
| 		"esbenp.prettier-vscode", |  | ||||||
| 		"johnsoncodehk.volar", |  | ||||||
| 		"johnsoncodehk.vscode-typescript-vue-plugin", |  | ||||||
| 		"dariofuzinato.vue-peek", |  | ||||||
| 		"wscats.vue", |  | ||||||
| 		"voorjaar.windicss-intellisense" |  | ||||||
| 	] |  | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,12 @@ | |||||||
|  | { | ||||||
|  |   "version": "0.2.0", | ||||||
|  |   "configurations": [ | ||||||
|  |     { | ||||||
|  |       "type": "chrome", | ||||||
|  |       "request": "launch", | ||||||
|  |       "name": "Vue debugger", | ||||||
|  |       "url": "http://localhost:3200", | ||||||
|  |       "webRoot": "${workspaceFolder}" | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
							
								
								
									
										157
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -1,71 +1,90 @@ | |||||||
| { | { | ||||||
| 	"editor.quickSuggestions": { |   "editor.codeActionsOnSave": { | ||||||
| 		"strings": true |     "source.fixAll.eslint": true | ||||||
| 	}, |   }, | ||||||
| 	"workbench.iconTheme": "material-icon-theme", |   "editor.fontLigatures": true, | ||||||
| 	"workbench.colorTheme": "One Dark Pro", |   "editor.formatOnSave": false, | ||||||
| 	"editor.tabSize": 2, |   "editor.guides.bracketPairs": "active", | ||||||
| 	"editor.fontLigatures": true, |   "editor.quickSuggestions": { | ||||||
| 	"editor.codeActionsOnSave": { |     "strings": true | ||||||
| 		"source.fixAll.eslint": true |   }, | ||||||
| 	}, |   "editor.tabSize": 2, | ||||||
| 	"git.enableSmartCommit": true, |   "eslint.alwaysShowStatus": true, | ||||||
| 	"path-intellisense.mappings": { |   "eslint.validate": [ | ||||||
| 		"@": "${workspaceFolder}/src", |     "javascript", | ||||||
| 		"~@": "${workspaceFolder}/src", |     "javascriptreact", | ||||||
| 	}, |     "typescript", | ||||||
| 	"gutterpreview.paths": { |     "typescriptreact", | ||||||
| 		"@": "/src", |     "vue", | ||||||
| 		"~@": "/src" |     "html", | ||||||
| 	}, |     "json", | ||||||
| 	"terminal.integrated.cursorStyle": "line", |     "jsonc", | ||||||
| 	"files.associations": { |     "json5", | ||||||
| 		"*.env.*": "dotenv" |     "yaml", | ||||||
| 	}, |     "yml", | ||||||
| 	"[jsonc]": { |     "markdown" | ||||||
| 		"editor.defaultFormatter": "vscode.json-language-features" |   ], | ||||||
| 	}, |   "files.associations": { | ||||||
| 	"[json]": { |     "*.env.*": "dotenv" | ||||||
| 		"editor.defaultFormatter": "vscode.json-language-features" |   }, | ||||||
| 	}, |   "files.eol": "\n", | ||||||
| 	"[javascript]": { |   "git.enableSmartCommit": true, | ||||||
| 		"editor.defaultFormatter": "esbenp.prettier-vscode" |   "gutterpreview.paths": { | ||||||
| 	}, |     "@": "/src", | ||||||
| 	"javascript.updateImportsOnFileMove.enabled": "always", |     "~@": "/src" | ||||||
| 	"[javascriptreact]": { |   }, | ||||||
| 		"editor.defaultFormatter": "esbenp.prettier-vscode" |   "i18n-ally.localesPaths": ["src/locales", "src/locales/lang"], | ||||||
| 	}, |   "material-icon-theme.activeIconPack": "angular", | ||||||
| 	"terminal.integrated.fontSize": 14, |   "material-icon-theme.files.associations": {}, | ||||||
| 	"terminal.integrated.fontWeight": 500, |   "material-icon-theme.folders.associations": { | ||||||
| 	"i18n-ally.displayLanguage": "zh", |     "src-tauri": "src", | ||||||
| 	"[html]": { |     "enum": "typescript", | ||||||
| 		"editor.defaultFormatter": "esbenp.prettier-vscode" |     "enums": "typescript", | ||||||
| 	}, |     "store": "context", | ||||||
| 	"[typescript]": { |     "stores": "context", | ||||||
| 		"editor.defaultFormatter": "esbenp.prettier-vscode" |     "composable": "hook", | ||||||
| 	}, |     "composables": "hook", | ||||||
| 	"[vue]": { |     "directive": "tools", | ||||||
| 		"editor.defaultFormatter": "johnsoncodehk.volar" |     "directives": "tools", | ||||||
| 	}, |     "business": "core", | ||||||
| 	"terminal.integrated.tabs.enabled": true, |     "request": "api", | ||||||
| 	"[typescriptreact]": { |     "adapter": "middleware" | ||||||
| 		"editor.defaultFormatter": "esbenp.prettier-vscode" |   }, | ||||||
| 	}, |   "path-intellisense.mappings": { | ||||||
| 	"[markdown]": { |     "@": "${workspaceFolder}/src", | ||||||
| 		"editor.defaultFormatter": "yzhang.markdown-all-in-one" |     "~@": "${workspaceFolder}/src" | ||||||
| 	}, |   }, | ||||||
| 	"workbench.productIconTheme": "fluent-icons", |   "terminal.integrated.cursorStyle": "line", | ||||||
| 	"vue3snippets.enable-compile-vue-file-on-did-save-code": false, |   "terminal.integrated.fontSize": 14, | ||||||
| 	"editor.formatOnSave": false, |   "terminal.integrated.fontWeight": 500, | ||||||
| 	"material-icon-theme.activeIconPack": "angular", |   "terminal.integrated.tabs.enabled": true, | ||||||
| 	"material-icon-theme.files.associations": {}, |   "workbench.iconTheme": "material-icon-theme", | ||||||
| 	"material-icon-theme.folders.associations": { |   "workbench.colorTheme": "One Dark Pro", | ||||||
| 		"enum": "typescript", |   "[html]": { | ||||||
| 		"store": "context", |     "editor.defaultFormatter": "esbenp.prettier-vscode" | ||||||
| 		"composable": "hook", |   }, | ||||||
| 		"composables": "hook", |   "[json]": { | ||||||
| 		"directive": "tools", |     "editor.defaultFormatter": "esbenp.prettier-vscode" | ||||||
| 		"directives": "tools", |   }, | ||||||
| 		"business": "core" |   "[jsonc]": { | ||||||
| 	} |     "editor.defaultFormatter": "esbenp.prettier-vscode" | ||||||
|  |   }, | ||||||
|  |   "[javascript]": { | ||||||
|  |     "editor.defaultFormatter": "esbenp.prettier-vscode" | ||||||
|  |   }, | ||||||
|  |   "[javascriptreact]": { | ||||||
|  |     "editor.defaultFormatter": "esbenp.prettier-vscode" | ||||||
|  |   }, | ||||||
|  |   "[markdown]": { | ||||||
|  |     "editor.defaultFormatter": "yzhang.markdown-all-in-one" | ||||||
|  |   }, | ||||||
|  |   "[typescript]": { | ||||||
|  |     "editor.defaultFormatter": "esbenp.prettier-vscode" | ||||||
|  |   }, | ||||||
|  |   "[typescriptreact]": { | ||||||
|  |     "editor.defaultFormatter": "esbenp.prettier-vscode" | ||||||
|  |   }, | ||||||
|  |   "[vue]": { | ||||||
|  |     "editor.defaultFormatter": "Vue.volar" | ||||||
|  |   } | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										330
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						| @@ -2,128 +2,248 @@ | |||||||
|  |  | ||||||
| All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. | All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. | ||||||
|  |  | ||||||
| ### [0.0.4](https://github.com/honghuangdc/soybean-admin/compare/v0.0.3...v0.0.4) (2021-11-25) | ### [0.9.8](https://github.com/honghuangdc/soybean-admin/compare/v0.9.7...v0.9.8) (2023-01-15) | ||||||
|  |  | ||||||
|  |  | ||||||
| ### Features | ### Features | ||||||
|  |  | ||||||
| * **components:** 添加多页签Tab点击后自动往中间滚动 ([8ce627a](https://github.com/honghuangdc/soybean-admin/commit/8ce627a397ee2605d967e7f9c8aa558b99fca22d)) | * 新增 affix 属性,用于将其固定在tab卡 ([e772ff0](https://github.com/honghuangdc/soybean-admin/commit/e772ff05fb6ef513bd37cd9b1e245ea72f0ad6d2)) | ||||||
| * **projects:** 新增网址导航页面 ([32aa5ee](https://github.com/honghuangdc/soybean-admin/commit/32aa5ee75af80c2f959b74573d5c44c452d2715c)) | * **projects:** add compress script [添加压缩命令] ([be6d431](https://github.com/honghuangdc/soybean-admin/commit/be6d431485a5688bd1ed567e11c1ca35ab9259b0)) | ||||||
| * **storage:** local存储增加有效期 ([e6c9b35](https://github.com/honghuangdc/soybean-admin/commit/e6c9b35ab402df7d9ebb82306131fc30d0a8b893)) | * **projects:** add generate logo script ([25daa23](https://github.com/honghuangdc/soybean-admin/commit/25daa236064c9a76677dbf16bc6d9717b1e0040f)) | ||||||
|  | * **projects:** add new route plugin @soybeanjs/vite-plugin-vue-page-route [集成新的路由插件] ([3131e00](https://github.com/honghuangdc/soybean-admin/commit/3131e00f0f4a66756f547892a8d312cde3aaf868)) | ||||||
|  | * **projects:** add script about generating png logo from [添加根据svg生成png图标的命令] ([70aeefe](https://github.com/honghuangdc/soybean-admin/commit/70aeefea02fcc13c152ee9d7a1197381bac724b9)) | ||||||
|  | * setting 页面新增 是否显示footer的开关 ([d064f62](https://github.com/honghuangdc/soybean-admin/commit/d064f6285a6d1616d7606f1390d5f01819b258bb)) | ||||||
|  |  | ||||||
|  |  | ||||||
| ### Bug Fixes | ### Bug Fixes | ||||||
|  |  | ||||||
| * **components:** 修复多页签按钮风格的tab滚动问题 ([c429cd0](https://github.com/honghuangdc/soybean-admin/commit/c429cd0293dbfbf6b6df539857c276d3218de754)) | * **components:** 修复路由在path中包含重复路单词径菜单时,被激活会错误展开 ([264da00](https://github.com/honghuangdc/soybean-admin/commit/264da00e5d2cd8139907c2ac11a046649d942f4b)) | ||||||
| * **components:** 修复多页签Tab自动滚动问题 ([20aa39f](https://github.com/honghuangdc/soybean-admin/commit/20aa39f14ed0239f02118b62a6aa4706b1f9dd21)) | * count can't display when endValue is 0. ([0282feb](https://github.com/honghuangdc/soybean-admin/commit/0282feb1730724ba66c2e57ab354099afa074e81)) | ||||||
| * **projects:** 添加西瓜视频实例在onUnMounted的销毁,多页签居中距离精确 ([738964a](https://github.com/honghuangdc/soybean-admin/commit/738964a76975dc3cb1f3206eb13a7612b92f1aed)) | * **projects:** 修复动态路由模式下路由不排序的问题 ([58b27c9](https://github.com/honghuangdc/soybean-admin/commit/58b27c96932ba89b362138a6056a82c25a7be282)) | ||||||
| * **projects:** 修复打包构建时图标错误 ([93f9aa9](https://github.com/honghuangdc/soybean-admin/commit/93f9aa9584be803704cf0ff54c8da0f84b71c408)) | * **projects:** 修复tabs在static路由模式下可以关闭首页 ([7211a17](https://github.com/honghuangdc/soybean-admin/commit/7211a17a8158b01a1f6dd6c83591f86d76633de0)) | ||||||
| * **types:** 添加dotEnv类型的非空判断 ([cff11d9](https://github.com/honghuangdc/soybean-admin/commit/cff11d91758a470ad6ff33888ed24747b2cc0c03)) | * **projects:** add router-page.d.ts to git [将router-page.d.ts添加git提交] ([7a58035](https://github.com/honghuangdc/soybean-admin/commit/7a5803551419f65ca55ba797b49273b3a0dc6067)) | ||||||
|  | * **projects:** fix login success message [修复登录成功的消息提示] ([810398a](https://github.com/honghuangdc/soybean-admin/commit/810398abb882613f82ba385e8a7666cf8b86d92d)) | ||||||
|  | * **projects:** fix router when the dynamic routes api was failed [修复当动态路由接口失败后路由异常问题] ([f2b580f](https://github.com/honghuangdc/soybean-admin/commit/f2b580fc067e81202238bf8079a13ff014b0b329)) | ||||||
|  | * **projects:** fix vite-pwa plugin config ([94098d0](https://github.com/honghuangdc/soybean-admin/commit/94098d02e8cec12e3c9f9331ece154b65d1c9150)) | ||||||
|  | * remove height limit h-360px ([b5c570a](https://github.com/honghuangdc/soybean-admin/commit/b5c570adf55fd235dcec49bc20837623b1d5d3c4)) | ||||||
|  | * set password attributes ([a9a3703](https://github.com/honghuangdc/soybean-admin/commit/a9a37036d58274385a779e6460f7be281dafdcaf)) | ||||||
|  |  | ||||||
| ### [0.0.3](https://github.com/honghuangdc/soybean-admin/compare/v0.0.2...v0.0.3) (2021-11-23) | ### [0.9.7](https://github.com/honghuangdc/soybean-admin/compare/v0.9.6...v0.9.7) (2022-11-07) | ||||||
|  |  | ||||||
| ### 0.0.2 (2021-11-21) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ### Features | ### Features | ||||||
|  |  | ||||||
| * **component:** 增加剪贴板示例 ([f1cd995](https://github.com/honghuangdc/soybean-admin/commit/f1cd9955d9ef0dd06e6eb0ab88ab6be80db789a3)) | * **projects:** 全局搜索菜单及消息通知适配移动端 ([97e2ffd](https://github.com/honghuangdc/soybean-admin/commit/97e2ffddf4ac047133dc016a91ac07556e562d29)) | ||||||
| * **components:** 添加面包屑 ([c1cdc3a](https://github.com/honghuangdc/soybean-admin/commit/c1cdc3a9ed673d0fd84aa1eaa9fc72468bd5aaf9)) | * **projects:** 实现用户管理页面 ([472f93b](https://github.com/honghuangdc/soybean-admin/commit/472f93bfc111e8ca94adef823b8cc12e4f8cd2c6)) | ||||||
| * **components:** 添加图片验证码 ([336c776](https://github.com/honghuangdc/soybean-admin/commit/336c7766f9130619b7076e832d7ade7cbc3049f2)) | * **projects:** 适配移动端,修复Tab关闭图标的bug ([296b154](https://github.com/honghuangdc/soybean-admin/commit/296b154be5dfe410b3cfca9afaeeaf9c47de3e0c)), closes [#87](https://github.com/honghuangdc/soybean-admin/issues/87) [#106](https://github.com/honghuangdc/soybean-admin/issues/106) [#109](https://github.com/honghuangdc/soybean-admin/issues/109) [#111](https://github.com/honghuangdc/soybean-admin/issues/111) | ||||||
| * **components:** 添加主题配置抽屉,添加暗黑主题 ([a87593f](https://github.com/honghuangdc/soybean-admin/commit/a87593f58a1185d6360b8e49ffe1c9fff768770e)) | * **projects:** 添加请求适配adapter层应用的示例页面 ([8d11a6a](https://github.com/honghuangdc/soybean-admin/commit/8d11a6affcfa37344011a6aaf3d6e005546f0e61)) | ||||||
| * **components:** 添加vertical-mix的导航模式下的菜单 ([f24ec1c](https://github.com/honghuangdc/soybean-admin/commit/f24ec1c5326c117e618aed8b3e1867c24fcd84f4)) | * **projects:** 添加生产的主题配置缓存 ([718c362](https://github.com/honghuangdc/soybean-admin/commit/718c36263e451a39bca6da6c33657a09515ffbcc)) | ||||||
| * **projects:** 布局调整 ([eda87f0](https://github.com/honghuangdc/soybean-admin/commit/eda87f041d5d87ae9612f369608e486a8e563f17)) | * **projects:** 添加系统管理的页面 ([c33b5eb](https://github.com/honghuangdc/soybean-admin/commit/c33b5ebfefbb3ae507141bd2e9414231fd1512d4)) | ||||||
| * **projects:** 菜单数据及组件接入 ([3226a72](https://github.com/honghuangdc/soybean-admin/commit/3226a724be65935ce89fe6ae67f49a20d255c6ac)) | * **projects:** 添加组件名称,调整vue文件里面的类型声明位置 ([f64bc91](https://github.com/honghuangdc/soybean-admin/commit/f64bc91ce285c7a9806ed0f6ae970d9b598fd0cb)) | ||||||
| * **projects:** 导航栏模式配置:界面实现及主题配置布局调整 ([f002124](https://github.com/honghuangdc/soybean-admin/commit/f002124ee11bc93e6b9955549143b695417e7f8d)) | * **projects:** 添加provide、inject上下文示例 ([a444731](https://github.com/honghuangdc/soybean-admin/commit/a444731e9eef43022930c3550dcfc058e70a2941)) | ||||||
| * **projects:** 登录页面实现 ([f1e7cf6](https://github.com/honghuangdc/soybean-admin/commit/f1e7cf608ea7d61dcd24f8780cde9cc4c59658ce)) | * **projects:** 系统消息组件代码优化 ([9518372](https://github.com/honghuangdc/soybean-admin/commit/9518372fe0431d4e08a5f40d1b2982691fbb4107)) | ||||||
| * **projects:** 多页签绑定路由 ([f29bc05](https://github.com/honghuangdc/soybean-admin/commit/f29bc05dd9f53144ef56440033a6f747c112e83d)) | * **projects:** 增加返回顶部功能 ([894b0f1](https://github.com/honghuangdc/soybean-admin/commit/894b0f1c182a36ad1774a8144bf50dd4e0b62a46)) | ||||||
| * **projects:** 分析页更新,添加关于页面 ([8e18218](https://github.com/honghuangdc/soybean-admin/commit/8e18218196c52e6a34b96bc313044b6e47886f85)) | * **projects:** 增加系统消息组件 ([afa0134](https://github.com/honghuangdc/soybean-admin/commit/afa0134fdd63c253e102bc129e275d16ca25508e)) | ||||||
| * **projects:** 工作台页面:添加技术栈官网链接 ([364c64b](https://github.com/honghuangdc/soybean-admin/commit/364c64b4641e48bcf8cc8600680bcaa39a1a9413)) | * **projects:** add constant route page without login status[添加未登录可访问的固定路由示例页面] ([78efd77](https://github.com/honghuangdc/soybean-admin/commit/78efd7793a241811065caf56edf7e68aea58bc8c)) | ||||||
| * **projects:** 工作台页面布局 ([4c85569](https://github.com/honghuangdc/soybean-admin/commit/4c85569b764b176c9c3a7f9ba3092ff3567e5512)) | * **projects:** add pinia setup syntax example: setup-store[添加setup syntax的pinia示例setup-store] ([82c4b09](https://github.com/honghuangdc/soybean-admin/commit/82c4b09b9411390f97c2d10bb211c66ed9656b63)) | ||||||
| * **projects:** 首页更新 ([5c01006](https://github.com/honghuangdc/soybean-admin/commit/5c01006306873944671a4f1d863ced6ba23f6245)) | * **projects:** import i18n [引入i18n] ([b632b7f](https://github.com/honghuangdc/soybean-admin/commit/b632b7ffed5c6d6ec15c23c8cce030bf669c554f)) | ||||||
| * **projects:** 四种基本布局完成 ([86d4a20](https://github.com/honghuangdc/soybean-admin/commit/86d4a207eef8daf01c6336e8aaedf3aebb90e7a7)) | * **projects:** new router system [新的路由系统] ([c7b6a3f](https://github.com/honghuangdc/soybean-admin/commit/c7b6a3fbecd1ba051833e4e47b75a06935f212c8)) | ||||||
| * **projects:** 添加百度地图插件 ([6abe094](https://github.com/honghuangdc/soybean-admin/commit/6abe094ff23f52fdd62c025bce17debd9ea2f907)) | * **projects:** refactor icon system, unify icon usage [重构图标系统,统一图标用法] ([811f820](https://github.com/honghuangdc/soybean-admin/commit/811f820644053606e50624c2f184f9669f3eff7e)) | ||||||
| * **projects:** 添加多级菜单页面 ([3f49d6d](https://github.com/honghuangdc/soybean-admin/commit/3f49d6db30aee0a6c1007cb00069835b102deb70)) | * **projects:** support constant route without login status[支持未登录状态下访问自定义的固定路由] ([a539112](https://github.com/honghuangdc/soybean-admin/commit/a539112a0f53183ee073d4eb9034ef48209fe30c)) | ||||||
| * **projects:** 添加多页签风格:按钮和浏览器两种风格 ([3cfa0f1](https://github.com/honghuangdc/soybean-admin/commit/3cfa0f103cf788e57ee26743e89bf5fe33a09660)) | * **projects:** useNaiveTable函数:类型部分 ([02992dc](https://github.com/honghuangdc/soybean-admin/commit/02992dc02d105cbfcebbea397438c68db1fa8177)) | ||||||
| * **projects:** 添加多页签右键菜单 ([d6f5237](https://github.com/honghuangdc/soybean-admin/commit/d6f5237c8c167314d578312dcad7505737f0b4c8)) | * **tabs:** 多页签增加关闭所有 ([8237adb](https://github.com/honghuangdc/soybean-admin/commit/8237adb9c0b187911df37d6d99fd84718bc3ea8f)) | ||||||
| * **projects:** 添加富文本和markdown编辑器插件及示例页面 ([60c2064](https://github.com/honghuangdc/soybean-admin/commit/60c20647a0d8e6d877a0f23a6e7da05ff09d14a0)) |  | ||||||
| * **projects:** 添加固定路由 ([ff4a09c](https://github.com/honghuangdc/soybean-admin/commit/ff4a09c452c98791f7d67ba5f135e9cf5099c29c)) |  | ||||||
| * **projects:** 添加环境文件env对应的类型 ([4f05095](https://github.com/honghuangdc/soybean-admin/commit/4f050953363b364815a08103047df3fe377d8f56)) |  | ||||||
| * **projects:** 添加判断是否是移动端的hooks ([0a9fba9](https://github.com/honghuangdc/soybean-admin/commit/0a9fba90b5e51fd2d39c47490f49dac7599a9742)) |  | ||||||
| * **projects:** 添加全屏显示 ([0a1711d](https://github.com/honghuangdc/soybean-admin/commit/0a1711d5b1d8e863d24a55690fa8696c79acaaf9)) |  | ||||||
| * **projects:** 添加项目配置拷贝 ([2d9d5c0](https://github.com/honghuangdc/soybean-admin/commit/2d9d5c0353ca6d2dc86965fe383bf2925a47d239)) |  | ||||||
| * **projects:** 添加exception页面:403,404,500 ([d012c4e](https://github.com/honghuangdc/soybean-admin/commit/d012c4ecf2cd325567d419684153955560ce90da)) |  | ||||||
| * **projects:** 添加multiTab标签页 ([eec0b36](https://github.com/honghuangdc/soybean-admin/commit/eec0b36f594e0d337f13d3d0ce30b1f768614f5c)) |  | ||||||
| * **projects:** 添加reload context ([03ebd49](https://github.com/honghuangdc/soybean-admin/commit/03ebd49c8639bf7f4f88b1a0523d2caec2d248ee)) |  | ||||||
| * **projects:** 添加svg logo自适应主题颜色 ([e1e5579](https://github.com/honghuangdc/soybean-admin/commit/e1e5579e8fe71ed97e2ce11d907705157874bd71)) |  | ||||||
| * **projects:** 添加swiper插件 ([27f600c](https://github.com/honghuangdc/soybean-admin/commit/27f600c4677afeacd3e67f189df139db5cde0aa3)) |  | ||||||
| * **projects:** 头部添加菜单折叠按钮和github地址 ([3ec1fc8](https://github.com/honghuangdc/soybean-admin/commit/3ec1fc8f0c23fcba56d4bffb20028948f985659c)) |  | ||||||
| * **projects:** 项目初始化搭建,集成eslint规范,集成代码提交规范 ([6754da4](https://github.com/honghuangdc/soybean-admin/commit/6754da4d83976a02eced801220320d8c9aa1da85)) |  | ||||||
| * **projects:** 新增导航模式配置 ([49c2dc4](https://github.com/honghuangdc/soybean-admin/commit/49c2dc4f23913c9ef86ee046c6ae53d4406cbca7)) |  | ||||||
| * **projects:** 新增顶部菜单 ([221d2cc](https://github.com/honghuangdc/soybean-admin/commit/221d2cc02dfdf3f78cb415f26c88f1f274942222)) |  | ||||||
| * **projects:** 新增多页签缓存功能 ([d86f891](https://github.com/honghuangdc/soybean-admin/commit/d86f891c64f802bbca50e31e3e4f7ccdad65eed1)) |  | ||||||
| * **projects:** 新增高德地图插件 ([ea82edc](https://github.com/honghuangdc/soybean-admin/commit/ea82edc1146fefa208bb9e6f985dfb000d197d16)) |  | ||||||
| * **projects:** 新增视频插件 ([6a692d4](https://github.com/honghuangdc/soybean-admin/commit/6a692d4f99942389cd2a5e72ebc852a92e80f742)) |  | ||||||
| * **projects:** 新增腾讯地图插件 ([3f02c21](https://github.com/honghuangdc/soybean-admin/commit/3f02c215c54fde4c85bf13e92c2620553d5a1840)) |  | ||||||
| * **projects:** 新增文档页面 ([7654b2a](https://github.com/honghuangdc/soybean-admin/commit/7654b2adf3d0bf051d13b401dfa3534ca7ee3e0c)) |  | ||||||
| * **projects:** 新增主题配置 ([ed67b79](https://github.com/honghuangdc/soybean-admin/commit/ed67b797c215fe165808505f4b0b9400f3182383)) |  | ||||||
| * **projects:** 新增主题配置:页面功能 ([8601ce2](https://github.com/honghuangdc/soybean-admin/commit/8601ce2ea184455fcba1d17d759cd4b933b31d96)) |  | ||||||
| * **projects:** 新增主题颜色配置 ([d93493b](https://github.com/honghuangdc/soybean-admin/commit/d93493b91ca856573c306e890e8c6f6a46b5bda3)) |  | ||||||
| * **projects:** 增加Icon以及打印功能示例 ([d5bce26](https://github.com/honghuangdc/soybean-admin/commit/d5bce26454c7d7c9da29e01675624f985755779f)) |  | ||||||
| * **projects:** 主题配置:页面功能和页面显示 ([a0392b3](https://github.com/honghuangdc/soybean-admin/commit/a0392b3d28f89f2b5fcf5b4d2b82ab7a068a23b8)) |  | ||||||
| * **projects:** vertical-mix的导航模式的二级菜单显示 ([736f314](https://github.com/honghuangdc/soybean-admin/commit/736f3146cb7cb3f56e06a8185ec8532f25c40b13)) |  | ||||||
| * **route:** 增加功能示例模块 ([efd29bc](https://github.com/honghuangdc/soybean-admin/commit/efd29bc331f630b57eab800bba08b22c53115d76)) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ### Bug Fixes | ### Bug Fixes | ||||||
|  |  | ||||||
| * **多页签:** 在pc模式下右键某个多页签会切换路由 ([a4394dc](https://github.com/honghuangdc/soybean-admin/commit/a4394dc3ee81ea2abc9a9fd243714309a1b4e6ab)) | * **deps:** decrease @types/node version to fix TS type error [降低@types/node版本修复TS的类型错误] ([149d22a](https://github.com/honghuangdc/soybean-admin/commit/149d22a4a491ca5fc6c52375046e9f1cb86ee76d)) | ||||||
| * **components:** 修复按钮Tab自适应主题颜色 ([3d1f419](https://github.com/honghuangdc/soybean-admin/commit/3d1f41925d54ebe89f1bbbdfe916be59bb97c9cf)) | * **projects:** 修复多个后端服务时的本地代理 ([2aba58c](https://github.com/honghuangdc/soybean-admin/commit/2aba58c973e5d0ea975443a8b22c9d94283d4fb9)) | ||||||
| * **components:** 修复BaseLayout的HorizontalLayout ([0344f46](https://github.com/honghuangdc/soybean-admin/commit/0344f46c9377acfb52c28cf373a5416845d1aa1b)) | * **projects:** 修复构建后mockjs对xhr的影响问题 ([7757285](https://github.com/honghuangdc/soybean-admin/commit/77572855c3f7161697f42e6da36771c15707f0ab)) | ||||||
| * **components:** 修复tab组件适应暗黑主题模式 ([2fe3d27](https://github.com/honghuangdc/soybean-admin/commit/2fe3d27a36b641339fd87eaa7acad8c3424b97b4)) | * **projects:** 修复图标的TS类型 ([dbd6760](https://github.com/honghuangdc/soybean-admin/commit/dbd676095b42aaebc783d5c89478306a453195a5)) | ||||||
| * **components:** tab组件在黑暗模式下泛白的颜色问题以及chromeTab的重叠问题 ([6797dbf](https://github.com/honghuangdc/soybean-admin/commit/6797dbf1b0617dcca662a25cf663d93dc4ad5807)) | * **projects:** 修复eslint规则 ([d7f5bf3](https://github.com/honghuangdc/soybean-admin/commit/d7f5bf3373e7884b8dc2c696a2c36e9cf27ad64b)) | ||||||
| * **deps:** 降低vite版本,新版本有些许问题 ([b429c8b](https://github.com/honghuangdc/soybean-admin/commit/b429c8b8ca61191c6bed1c52742ddd5fcf9ddc3a)) | * **projects:** 修复import.meta.env的TS类型 ([1994262](https://github.com/honghuangdc/soybean-admin/commit/19942625d58e673126db5249488555de71d18457)) | ||||||
| * **deps:** 去除图片验证码依赖 ([76a1afa](https://github.com/honghuangdc/soybean-admin/commit/76a1afae4e87c3c08f7fd31b20323c0456565f64)) | * **projects:** 修复tab不显示路由首页的问题 ([a792bb5](https://github.com/honghuangdc/soybean-admin/commit/a792bb5cb3c388ba3b93e17bab8f42d23cd5df4a)) | ||||||
| * **deps:** vite依赖放入devDependencies ([7527b1f](https://github.com/honghuangdc/soybean-admin/commit/7527b1f07cdc2d82ec0104ed7317c7ff731da0b7)) | * **projects:** 修复TS类型问题 ([16dce9a](https://github.com/honghuangdc/soybean-admin/commit/16dce9a4ce4d3aa822d70f6e5199eb9c86e33ad9)) | ||||||
| * **hooks:** 修复登录页切换登录页参数丢失问题 ([789855a](https://github.com/honghuangdc/soybean-admin/commit/789855a3786623893aa55a2f6c977155394a8a44)) | * **projects:** add iconify json ([8a1ec93](https://github.com/honghuangdc/soybean-admin/commit/8a1ec938e7a26728919024e9f5b7b0af2b270aba)) | ||||||
| * **hooks:** 修复toLogin函数导致登录重定向地址过多 ([b4adf67](https://github.com/honghuangdc/soybean-admin/commit/b4adf678a4f96f670f9cbdcaebe21378fa94c77c)) | * **svg-icon:** 自定义图标在Dropdown组件下hover状态无法显示图标 ([0523f08](https://github.com/honghuangdc/soybean-admin/commit/0523f0838246041bfc09130e21369bd777f63682)) | ||||||
| * **projects:** 布局修复:从填充屏幕高的页面切换至滚动页面导致布局坍塌 ([2fdb5f5](https://github.com/honghuangdc/soybean-admin/commit/2fdb5f563f7d9fa00d8e5343d992342ff34e3a5a)) | * **utils:** 修复iconifyRender ([c37d0ac](https://github.com/honghuangdc/soybean-admin/commit/c37d0ac7887a3451b8558fc4aa6c05ed3b0ef74f)) | ||||||
| * **projects:** 更正dashboard的布局文件 ([31fda0c](https://github.com/honghuangdc/soybean-admin/commit/31fda0ce992457972205db3a39e4c7327d21c087)) |  | ||||||
| * **projects:** 关于页面:开发环境依赖更正 ([3b3baf9](https://github.com/honghuangdc/soybean-admin/commit/3b3baf93ee36423bfe4fc0ab24eda0f99ce92363)) | ### [0.9.6](https://github.com/honghuangdc/soybean-admin/compare/v0.9.5...v0.9.6) (2022-06-15) | ||||||
| * **projects:** 腾讯地图容器高自适应 ([d7054c5](https://github.com/honghuangdc/soybean-admin/commit/d7054c599b1ce59a123667443863a8054ba19a90)) |  | ||||||
| * **projects:** 头部logo链接更正 ([5d8c3f5](https://github.com/honghuangdc/soybean-admin/commit/5d8c3f54a3e414cdeff35bf5ddb2a1e13d7d703a)) |  | ||||||
| * **projects:** 完善侧边菜单展开逻辑 ([b5f0512](https://github.com/honghuangdc/soybean-admin/commit/b5f05128abcf2403181b7cc7800d9e6593844657)) |  | ||||||
| * **projects:** 修复百度地图sdk地址 ([9a97d23](https://github.com/honghuangdc/soybean-admin/commit/9a97d23c755b7fa7c3166d783e99cac10a0a9753)) |  | ||||||
| * **projects:** 修复登录的重定向地址 ([f97f226](https://github.com/honghuangdc/soybean-admin/commit/f97f2266566164cad912e7ffcdebee1c1b2f4324)) |  | ||||||
| * **projects:** 修复登录页刷新跳404 ([358d4e8](https://github.com/honghuangdc/soybean-admin/commit/358d4e8a1992aa040b909ae580470a0fd2142f5f)) |  | ||||||
| * **projects:** 修复顶部加载条主题 ([ea5917d](https://github.com/honghuangdc/soybean-admin/commit/ea5917d2258356bbcb296420ea1d017f5ad05b7a)) |  | ||||||
| * **projects:** 修复多级菜单页面multitab显示问题 ([f0474bd](https://github.com/honghuangdc/soybean-admin/commit/f0474bd96104dcca332d35d8202eedc3df00eb10)) |  | ||||||
| * **projects:** 修复多页签删除功能 ([99adbc5](https://github.com/honghuangdc/soybean-admin/commit/99adbc5a30c9128d005dc8096d58c5b320f67fef)) |  | ||||||
| * **projects:** 修复分析页折线图表布局问题 ([43b832b](https://github.com/honghuangdc/soybean-admin/commit/43b832bee0dc1d852f3e435f16eaa37f27b0f66c)) |  | ||||||
| * **projects:** 修复富文本编辑器在亮色主题下全屏后背景色丢失 ([4ab7702](https://github.com/honghuangdc/soybean-admin/commit/4ab7702186e1121e50f1d4725b73f28498aba312)) |  | ||||||
| * **projects:** 修复没有子页面的路由写法问题 ([b80c224](https://github.com/honghuangdc/soybean-admin/commit/b80c2246641d44b9ad35dfbfb3d17500cfcb6e43)) |  | ||||||
| * **projects:** 修复同时显示两种multiTab ([5be2e2a](https://github.com/honghuangdc/soybean-admin/commit/5be2e2a2e5658e09c47a4dc1331129e14ed6d761)) |  | ||||||
| * **projects:** 修复页面滚动和页面100%视高占比 ([fa2cc78](https://github.com/honghuangdc/soybean-admin/commit/fa2cc789371999de6b2f698ba7ed87a4d740ad37)) |  | ||||||
| * **projects:** 修复页面滚动行为 ([57e00e6](https://github.com/honghuangdc/soybean-admin/commit/57e00e64177bc9925ca95785335786836571766a)) |  | ||||||
| * **projects:** 修复页面缓存 ([fa0a907](https://github.com/honghuangdc/soybean-admin/commit/fa0a907941a90ed72288205fef14b0923a0ffd8e)) |  | ||||||
| * **projects:** 修复页面缓存,添加多页签删除 ([2489374](https://github.com/honghuangdc/soybean-admin/commit/248937479cc9ccb936116300d628dfa734014b37)) |  | ||||||
| * **projects:** 修复在暗黑模式下第一次进入网页不会触发暗黑模式监听 ([c4a652e](https://github.com/honghuangdc/soybean-admin/commit/c4a652e21e4c3e2ee6e86e04e46d5dccd579d584)) |  | ||||||
| * **projects:** 修复主题配置 ([ff24fda](https://github.com/honghuangdc/soybean-admin/commit/ff24fda5ee12074e7130122ca311d0ce174cc184)) |  | ||||||
| * **projects:** 修复主题相关,自适应操作系统暗黑模式 ([bfa42d7](https://github.com/honghuangdc/soybean-admin/commit/bfa42d769d464dbc8d51689c5fc8c59a348941fb)) |  | ||||||
| * **projects:** 修复globalFooter适应暗黑模式 ([93f08d9](https://github.com/honghuangdc/soybean-admin/commit/93f08d90671b3ddfbdb969d5b13f4a3fa9903a19)) |  | ||||||
| * **projects:** 修复multiTab关闭逻辑,添加关闭左边和右边的标签右键操作 ([ed90cb8](https://github.com/honghuangdc/soybean-admin/commit/ed90cb8f8e8d3bbf594757caa950f8521869ece4)) |  | ||||||
| * **projects:** 修复tab过多时样式坍塌,添加tab横向滚动 ([0ec4d21](https://github.com/honghuangdc/soybean-admin/commit/0ec4d218e365f54ab0c138a955dcd990cbf2d9bc)) |  | ||||||
| * **projects:** 修复tab在移动端无法点击 ([1a76de0](https://github.com/honghuangdc/soybean-admin/commit/1a76de04463b0344b39c09df0e0762825d66653b)) |  | ||||||
| * **projects:** 修复vertical sider自适应主题 ([9097fa3](https://github.com/honghuangdc/soybean-admin/commit/9097fa386687d077a480033d9978cfbd59e0e3a0)) |  | ||||||
| * **projects:** 修复vertical-mix导航模式的二级菜单显示问题 ([6f286e6](https://github.com/honghuangdc/soybean-admin/commit/6f286e674724db12d6c5a4339ba6f3db720b781d)) |  | ||||||
| * **projects:** 页面各部分背景颜色添加自然过渡 ([1c5fdca](https://github.com/honghuangdc/soybean-admin/commit/1c5fdca59637c141ae1f0b47d9bcf05788a631c2)) |  | ||||||
| * **projects:** wangEditor在暗黑模式下的背景色问题 ([a7de314](https://github.com/honghuangdc/soybean-admin/commit/a7de31404508a2d4436435d06cdb63f851a86029)) |  | ||||||
| * **types:** 数据类型 EnumDataType.boolean 为 [object Boolean] ([e9b5560](https://github.com/honghuangdc/soybean-admin/commit/e9b55608f960c0d3cdeca91af6f2777a23fd20dd)) |  | ||||||
| * **types:** 修复naive组件回调函数参数类型错误 ([667282f](https://github.com/honghuangdc/soybean-admin/commit/667282f81a8822006242d612a08ac59571e3508e)) |  | ||||||
| * **types:** 修复TS类型错误 ([45d31a0](https://github.com/honghuangdc/soybean-admin/commit/45d31a0f5625784423bea463b2373b0cd35b37f5)) |  | ||||||
| * **utils:** utils函数名称更正 ([68f4d01](https://github.com/honghuangdc/soybean-admin/commit/68f4d012cc3cce1df5cb61dfa0212126ea0b202e)) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ### Performance Improvements | ### Features | ||||||
|  |  | ||||||
| * **projects:** 添加windicss指定的扫描目录,提升构建性能 ([8e6b0b2](https://github.com/honghuangdc/soybean-admin/commit/8e6b0b299d2ef50f2b85e67b7a1aa7fd2ac1bce1)) | * **projects:** 本地svg动态渲染图标 ([c3c975e](https://github.com/honghuangdc/soybean-admin/commit/c3c975ee1142987b7ded0107bf91d0080d5651fe)), closes [#61](https://github.com/honghuangdc/soybean-admin/issues/61) | ||||||
|  | * **projects:** 上下结构,菜单支持横向滚动 ([808051b](https://github.com/honghuangdc/soybean-admin/commit/808051b29dd682e1cbcf0e211774efb9cc12713a)) | ||||||
|  | * **projects:** 新增Antv G2图表示例 ([2d64a2e](https://github.com/honghuangdc/soybean-admin/commit/2d64a2e57c8d83c8d06f210eeefef8f31b3abeb9)) | ||||||
|  | * **projects:** 增加设置当前Tab页签名称功能 ([487213b](https://github.com/honghuangdc/soybean-admin/commit/487213b64853765e2bd186474e4607572624a33e)) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ### Bug Fixes | ||||||
|  |  | ||||||
|  | * **projects:** 设置tab标题导致meta属性丢失 ([efcfa57](https://github.com/honghuangdc/soybean-admin/commit/efcfa576d52a7eab644f3b4c65af153442887fab)) | ||||||
|  | * **projects:** 修复顶部菜单的位置失效问题 ([4ee0d94](https://github.com/honghuangdc/soybean-admin/commit/4ee0d94f1bde83c788fc0dcb084402359c04fb1b)) | ||||||
|  |  | ||||||
|  | ### [0.9.5](https://github.com/honghuangdc/soybean-admin/compare/v0.9.4...v0.9.5) (2022-06-06) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ### Features | ||||||
|  |  | ||||||
|  | * **projects:** 支持同一路由根据不同query和hash同时显示不同Tab ([4122685](https://github.com/honghuangdc/soybean-admin/commit/4122685803f8a0a485682d16cec74e27945adc47)), closes [#64](https://github.com/honghuangdc/soybean-admin/issues/64) | ||||||
|  | * **projects:** 动态路由根路由重定向只需取决于后端返回的路由首页 ([434ab1c](https://github.com/honghuangdc/soybean-admin/commit/434ab1c560b260f8a19895405eb1d3c3313052d7)) | ||||||
|  | * **projects:** 补充更多的ECharts示例 ([c776249](https://github.com/honghuangdc/soybean-admin/commit/c7762490def77695bedf179ffc63e3e95d15e14d)) | ||||||
|  | * **projects:** 添加百度地图、升级依赖 ([39854a4](https://github.com/honghuangdc/soybean-admin/commit/39854a492b9cce71e0c7ed52af9985cb4abd6a97)) | ||||||
|  | * **projects:** 添加插件页面:图表 ([0a46ea0](https://github.com/honghuangdc/soybean-admin/commit/0a46ea08443f6b879434e925d440cf07e9494fcb)) | ||||||
|  | * **projects:** 添加自动跟随系统主题设置 ([ba07b69](https://github.com/honghuangdc/soybean-admin/commit/ba07b695dd9dc5d3f8ebf57d0f2e69d624994962)) | ||||||
|  | * **projects:** 添加antv g2图表示例 ([44b022a](https://github.com/honghuangdc/soybean-admin/commit/44b022aefd7dbb4c34886814cf04767450dec026)) | ||||||
|  | * **projects:** 引入echarts替换antvG2plot ([e7ad086](https://github.com/honghuangdc/soybean-admin/commit/e7ad08685e8ac52a8906fc94e656192275f9764c)) | ||||||
|  | * **route:** 路由meta新增activeMenu属性 ([ebd16a4](https://github.com/honghuangdc/soybean-admin/commit/ebd16a4d1ab1a95a27838a2d4f20cc1d1e7309ae)) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ### Bug Fixes | ||||||
|  |  | ||||||
|  | * **projects:** 修复@antv/g2生产环境报错 ([4558c24](https://github.com/honghuangdc/soybean-admin/commit/4558c24d1c1e1faa3326650fc16e6baf384509ac)) | ||||||
|  | * **projects:** 修复插件不存在的错误提示 ([7165282](https://github.com/honghuangdc/soybean-admin/commit/716528206e9f63e873607d0afd59d83f6984e3fe)) | ||||||
|  | * **projects:** 修复权限切换路由数据未更新的问题 ([60f9125](https://github.com/honghuangdc/soybean-admin/commit/60f912508b0e685957fb22ef0ed1f83272847263)) | ||||||
|  | * **projects:** 修复页面切换时导致的溢出滚动条 ([e023306](https://github.com/honghuangdc/soybean-admin/commit/e0233061d3bca236b4c4bb462ce00f7ca186b9fa)) | ||||||
|  | * **route:** 当为左侧混合菜单时activeMenu无效情况 ([3e4f9e2](https://github.com/honghuangdc/soybean-admin/commit/3e4f9e282442073447c5c24c33d65bc6130978ee)) | ||||||
|  |  | ||||||
|  | ### [0.9.4](https://github.com/honghuangdc/soybean-admin/compare/v0.9.3...v0.9.4) (2022-04-28) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ### Features | ||||||
|  |  | ||||||
|  | * **layouts:** 添加侧边栏/头部的反转模式来增加对比度 ([861c8b9](https://github.com/honghuangdc/soybean-admin/commit/861c8b9852e0097a1f6b79ac2c10d19add123bde)) | ||||||
|  | * **layouts:** 添加侧边栏/头部的反转模式来增加对比度 ([3c8dd77](https://github.com/honghuangdc/soybean-admin/commit/3c8dd772f89d2b656a42c4f7164e581acdb2b1a5)) | ||||||
|  | * **projects:** 插件方式按需引入naiveUI ([6bed9ea](https://github.com/honghuangdc/soybean-admin/commit/6bed9ead38af6d58f6cd9e520db848ae5cbfa4db)) | ||||||
|  | * **projects:** 登录页背景图片位置适配移动端 ([24010d0](https://github.com/honghuangdc/soybean-admin/commit/24010d05fb1ff51cb5e5d94ffe310206a9638711)) | ||||||
|  | * **projects:** 登录页面适配移动端 ([ec0776e](https://github.com/honghuangdc/soybean-admin/commit/ec0776e268cd3d1031e9ecd794abce271a675793)) | ||||||
|  | * **projects:** 权限完善及权限示例页面 ([807448a](https://github.com/honghuangdc/soybean-admin/commit/807448aec5b041535fe4fbac90eca1138b2f439c)) | ||||||
|  | * **projects:** 添加请求适配器的请求示例 ([bed4292](https://github.com/honghuangdc/soybean-admin/commit/bed4292ed380e77ac428ab057abc42eceb72af53)) | ||||||
|  | * **projects:** 新增静态路由 ([ca2dfa6](https://github.com/honghuangdc/soybean-admin/commit/ca2dfa6185aa7a4e58184bcfef2a1246a52f88fd)) | ||||||
|  | * **projects:** 引入unocss替换windicss ([c9d3e5a](https://github.com/honghuangdc/soybean-admin/commit/c9d3e5a3fdf59179dcfc122ab8369c492ea7832e)) | ||||||
|  | * **projects:** HTML lang 修改为 zh-cmn-Hans ([b9c5c34](https://github.com/honghuangdc/soybean-admin/commit/b9c5c349790b1e83a7acd1f2c53a86c9221944ff)) | ||||||
|  | * **projects:** HTML lang 修改为 zh-cmn-Hans ([dbeb595](https://github.com/honghuangdc/soybean-admin/commit/dbeb595c0b9fc11e7d166a7684af37cc971f1a11)) | ||||||
|  | * **projects:** mock添加权限过滤 ([7f4350a](https://github.com/honghuangdc/soybean-admin/commit/7f4350aeb673dab59192584177a897aacebe4b28)) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ### Bug Fixes | ||||||
|  |  | ||||||
|  | * **projects:** 去除从环境文件引入端口号导致的错误 ([2d6d179](https://github.com/honghuangdc/soybean-admin/commit/2d6d179d669ea71cca3fe97ac840e4856bff4051)) | ||||||
|  | * **projects:** 全局搜索弹窗弹出时动画闪屏问题 ([bb1bbf2](https://github.com/honghuangdc/soybean-admin/commit/bb1bbf272438f4ed440735118c6a9ec04c7d109f)) | ||||||
|  | * **projects:** 添加.npmrc修复无法获取自动引入的全局组件声明类型 ([e8488e4](https://github.com/honghuangdc/soybean-admin/commit/e8488e4d5237e5e03ec07ff07d03115389d5b1ef)) | ||||||
|  | * **projects:** 添加获取路由组件文件未找到时的错误提示 ([219f87f](https://github.com/honghuangdc/soybean-admin/commit/219f87f46758f328f26697f66d8583f49c0d41de)) | ||||||
|  | * **projects:** 修复获取vite环境变量的方式 ([46e1ae7](https://github.com/honghuangdc/soybean-admin/commit/46e1ae7825b2b204ce3cdd63b3c64f39bff096d0)) | ||||||
|  | * **projects:** 修复路由守卫的动态路由逻辑 ([e6c26fc](https://github.com/honghuangdc/soybean-admin/commit/e6c26fcb4ae085f9fd7d7eb9183ddba020d0b5da)) | ||||||
|  | * **projects:** 修复样式 ([e899914](https://github.com/honghuangdc/soybean-admin/commit/e8999144266761b3b701442975c3c00251240d53)) | ||||||
|  | * **projects:** 修复在新版vite下环境变量获取不到的问题 ([3fb13ca](https://github.com/honghuangdc/soybean-admin/commit/3fb13ca9e710549d2ddeb774fe08fabd27d5ae11)) | ||||||
|  | * **projects:** 修复vite alias ([cd7ca8f](https://github.com/honghuangdc/soybean-admin/commit/cd7ca8f4c77ac8c753b753ba698a9573d6c37bf9)) | ||||||
|  |  | ||||||
|  | ### [0.9.3](https://github.com/honghuangdc/soybean-admin/compare/v0.9.2...v0.9.3) (2022-03-12) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ### Features | ||||||
|  |  | ||||||
|  | * **components:** svgIcon,添加type,调整size方案 ([ce4e039](https://github.com/honghuangdc/soybean-admin/commit/ce4e039f48001b47a2933e807f5410a9573781b9)) | ||||||
|  | * **projects:** 引入soybean-admin-tab、去除vite-plugin-svg-icons,用unplugin-icons实现自定义svg的iconify写法、代码优化 ([a1a57a1](https://github.com/honghuangdc/soybean-admin/commit/a1a57a185ce5004888ca4e1611973665ee46980b)) | ||||||
|  | * **projects:** 新增子菜单图标和多页签图标 ([f5c56c3](https://github.com/honghuangdc/soybean-admin/commit/f5c56c355ce41157b20ed0a10272a28e6d8b2b49)) | ||||||
|  | * **projects:** 新增自定义svg图标动态渲染 ([f83c7b5](https://github.com/honghuangdc/soybean-admin/commit/f83c7b59b893ab6e210188e92c4177b3d01392ce)) | ||||||
|  | * **projects:** 添加naiveUI按需引入 ([a810ef8](https://github.com/honghuangdc/soybean-admin/commit/a810ef85b19e4b74f3ddb3c69d17c050e556ee90)) | ||||||
|  | * **projects:** 添加SvgIcon,配置vite plugin ([378d55a](https://github.com/honghuangdc/soybean-admin/commit/378d55ac0e11cdf115ce3cb8e281d60f7fc4ff7a)) | ||||||
|  | * **projects:** 添加全局组件自动引入注册 ([f5a043b](https://github.com/honghuangdc/soybean-admin/commit/f5a043b11a403927828ae922bdae411a4e5ae3c6)) | ||||||
|  | * **projects:** 添加网络代理 ([094dca9](https://github.com/honghuangdc/soybean-admin/commit/094dca961f608404352ac360f44496423d88dae8)) | ||||||
|  | * **projects:** 重构项目的TS类型架构,去除interface文件夹 ([8191490](https://github.com/honghuangdc/soybean-admin/commit/8191490f39fc011096edd77c3156eb4fe33d4e1c)) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ### Bug Fixes | ||||||
|  |  | ||||||
|  | * **components:** 修复组件LoadingEmptyWrapper适应暗黑模式 ([811b15e](https://github.com/honghuangdc/soybean-admin/commit/811b15e672c9d69e9c5789eb11ab2db7bd729f37)) | ||||||
|  | * **components:** 组件LoadingEmptyWrapper添加背景颜色动画过渡 ([7add5c2](https://github.com/honghuangdc/soybean-admin/commit/7add5c2edfcabadb77084179d464b849d880d5e6)) | ||||||
|  | * **projects:** 修复 BASE_URL 没有生效的问题 ([72d7dcf](https://github.com/honghuangdc/soybean-admin/commit/72d7dcfa5ee8dc6f3601f4d65c6aca9ad2cc5d5c)) | ||||||
|  | * **projects:** 修复页面切换动画开关不生效 ([9d4ed61](https://github.com/honghuangdc/soybean-admin/commit/9d4ed617fb80095e521d8063718283459711118f)) | ||||||
|  | * **projects:** 修复页面切换动画无变化 ([c4546bd](https://github.com/honghuangdc/soybean-admin/commit/c4546bdfa303f1e89c0d7ddd46b54e4ec5170096)) | ||||||
|  |  | ||||||
|  | ### [0.9.2](https://github.com/honghuangdc/soybean-admin/compare/v0.9.1...v0.9.2) (2022-02-11) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ### Features | ||||||
|  |  | ||||||
|  | * **projects:** 迁移全局搜索菜单功能 ([554d7fd](https://github.com/honghuangdc/soybean-admin/commit/554d7fd6114b9cf6df571c3cb02f4cb0cc6dcfd4)) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ### Bug Fixes | ||||||
|  |  | ||||||
|  | * **components:** 修复Tab在移动端设备无法点击的问题 ([2c9660f](https://github.com/honghuangdc/soybean-admin/commit/2c9660fdbf9a84e980db0aff5cd0aed0f75963ca)) | ||||||
|  | * **projects:** 修复分析页和工作台的布局问题 ([e93b94c](https://github.com/honghuangdc/soybean-admin/commit/e93b94cb2435a130bb1d94a703328af342cd24c9)) | ||||||
|  | * **projects:** 修复项目配置拷贝功能 ([a7a269d](https://github.com/honghuangdc/soybean-admin/commit/a7a269d6a61ccd25883e6bb69639d39e0260587d)) | ||||||
|  | * **projects:** vite配置修复 ([facc00e](https://github.com/honghuangdc/soybean-admin/commit/facc00e8b4998dc8bd338e3b63a652b4bfe2ed3e)) | ||||||
|  |  | ||||||
|  | ### [0.9.1](https://github.com/honghuangdc/soybean-admin/compare/v0.1.3...v0.9.1) (2022-01-23) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ### Features | ||||||
|  |  | ||||||
|  | * **projects:** 新版重构完成 ([68b4230](https://github.com/honghuangdc/soybean-admin/commit/68b42304d5964246775c7a82dcc1406c5db7a4e4)) | ||||||
|  |  | ||||||
|  | ### [0.1.3](https://github.com/honghuangdc/soybean-admin/compare/v0.1.2...v0.1.3) (2022-01-23) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ### Bug Fixes | ||||||
|  |  | ||||||
|  | * **projects:** 修复未登录时会调用获取用户路由的接口 ([21bab1f](https://github.com/honghuangdc/soybean-admin/commit/21bab1f7c30611fe59dc91c7a73050ccb49a4658)) | ||||||
|  | * **projects:** 修复路由守卫的动态路由逻辑 ([b61b0ce](https://github.com/honghuangdc/soybean-admin/commit/b61b0ce25fdcbaf29ca64cbcc467e12faa947625)) | ||||||
|  |  | ||||||
|  | ### [0.1.2](https://github.com/honghuangdc/soybean-admin/compare/v0.1.1...v0.1.2) (2022-01-21) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ### Features | ||||||
|  |  | ||||||
|  | * **projects:** 添加缓存主题色 ([3709297](https://github.com/honghuangdc/soybean-admin/commit/37092974d37b2e661d4cbf9d27c89b5e99119cd7)) | ||||||
|  | * **projects:** 添加页面缓存、记录在tab中的缓存页面的滚动条位置 ([1d63a83](https://github.com/honghuangdc/soybean-admin/commit/1d63a838226df4f48e7f2a15b5a05d4b496d3c69)) | ||||||
|  |  | ||||||
|  | ### [0.1.1](https://github.com/honghuangdc/soybean-admin/compare/v0.0.5...v0.1.1) (2022-01-20) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ### Features | ||||||
|  |  | ||||||
|  | * **projects:** theme store完成 ([bf020a8](https://github.com/honghuangdc/soybean-admin/commit/bf020a82580e6b1fbda1cc1e0bd6176770434884)) | ||||||
|  | * **projects:** 主题配置抽屉: 迁移其他功能 ([6d132c5](https://github.com/honghuangdc/soybean-admin/commit/6d132c59770e925cfc61217dcefa5b4d937604df)) | ||||||
|  | * **projects:** 主题配置抽屉:迁移暗黑模式、布局模式、添加颜色选择面板 ([912bfdf](https://github.com/honghuangdc/soybean-admin/commit/912bfdf4390ab624d3f8e343be88e8c1cf7ab5b6)) | ||||||
|  | * **projects:** 创建自定义布局组件SoybeanLayout ([0653fb1](https://github.com/honghuangdc/soybean-admin/commit/0653fb144fe9d49f24ef4fe6e4a58de6de342b78)) | ||||||
|  | * **projects:** 初始化加载效果:应用主题颜色 ([035fa11](https://github.com/honghuangdc/soybean-admin/commit/035fa114c9fd638cf467e6a73a8e4c558f503deb)) | ||||||
|  | * **projects:** 图标选择器增加扩展树形 ([041012b](https://github.com/honghuangdc/soybean-admin/commit/041012b3ee04d960c1e38895839225613f7af377)) | ||||||
|  | * **projects:** 增加Icon选择器组件 ([9472b51](https://github.com/honghuangdc/soybean-admin/commit/9472b51811f419e9139de81c73f2c71d170700c2)) | ||||||
|  | * **projects:** 增加全局搜索菜单功能 ([b9ce691](https://github.com/honghuangdc/soybean-admin/commit/b9ce69130b12712013228326f883e2d973e4e46a)) | ||||||
|  | * **projects:** 增加项目文档外链 ([1901a0b](https://github.com/honghuangdc/soybean-admin/commit/1901a0bfb7bfa516dfda552675397ddec96b8d4b)) | ||||||
|  | * **projects:** 多级路由的所有子路由转换成二级路由 ([85b55bb](https://github.com/honghuangdc/soybean-admin/commit/85b55bb37a0a06e2645b96ed81aefe463127121a)) | ||||||
|  | * **projects:** 引入mockjs ([9bc682d](https://github.com/honghuangdc/soybean-admin/commit/9bc682dae878c084e38a0e2c9a4a2de171023c48)) | ||||||
|  | * **projects:** 新增BasicLayout布局 ([006467a](https://github.com/honghuangdc/soybean-admin/commit/006467a0626f427da3f516d90c15bf1e1eef0e55)) | ||||||
|  | * **projects:** 添加cryptojs,对本地缓存数据进行加密 ([7a0648d](https://github.com/honghuangdc/soybean-admin/commit/7a0648dba55a98f61f4d81696307d86c82a1d34d)) | ||||||
|  | * **projects:** 添加NaiveProvider组件 ([c804b21](https://github.com/honghuangdc/soybean-admin/commit/c804b21ceb92133c6ea7cc64c87521cc164e40ce)) | ||||||
|  | * **projects:** 添加侧边菜单 ([e25afe2](https://github.com/honghuangdc/soybean-admin/commit/e25afe2fadfe86b9330ee02190a4e40b8321714c)) | ||||||
|  | * **projects:** 添加头部折叠按钮 ([a090d39](https://github.com/honghuangdc/soybean-admin/commit/a090d398fc071e246b92d0da80883cf5cbedba0e)) | ||||||
|  | * **projects:** 添加常用组件、composables函数 ([230a50a](https://github.com/honghuangdc/soybean-admin/commit/230a50a4cf4d2ebb62b19d6324234243cf6b2f0d)) | ||||||
|  | * **projects:** 添加抽屉 ([10e4d81](https://github.com/honghuangdc/soybean-admin/commit/10e4d81bd6a0b35d8cfb4f7a1e981f8ef6ab87cc)) | ||||||
|  | * **projects:** 添加表格页面示例 ([51c744c](https://github.com/honghuangdc/soybean-admin/commit/51c744c8e2c8ed9691e92e35b6a88582f22c30d8)) | ||||||
|  | * **projects:** 添加路由跳转浏览器新标签 ([987cef3](https://github.com/honghuangdc/soybean-admin/commit/987cef336338987f2e6f0d5aba8f6d4602b297ca)) | ||||||
|  | * **projects:** 登录页面开始迁移 ([f5a36a0](https://github.com/honghuangdc/soybean-admin/commit/f5a36a05cb626ec62115283f1d2c534b2a787bdd)) | ||||||
|  | * **projects:** 细节完善 ([cc290ac](https://github.com/honghuangdc/soybean-admin/commit/cc290accc29282e9ba655356e2695b6ca4b23605)) | ||||||
|  | * **projects:** 细节完善、迁移页面 ([ce531ce](https://github.com/honghuangdc/soybean-admin/commit/ce531ce5dda0b4a1024aa6bd3d68835b59760d57)) | ||||||
|  | * **projects:** 菜单搜索增加大小写转换 ([2907868](https://github.com/honghuangdc/soybean-admin/commit/29078689b0652cf4ae852c93d8601a157579adcc)) | ||||||
|  | * **projects:** 请求拦截器添加刷新token ([839b82b](https://github.com/honghuangdc/soybean-admin/commit/839b82ba8b052b02e24bcfe6da54160609a4fd4b)) | ||||||
|  | * **projects:** 路由页面跳转权限完成 ([0d2a562](https://github.com/honghuangdc/soybean-admin/commit/0d2a5629e89c73a32d6c79f04b51543e1513e006)) | ||||||
|  | * **projects:** 迁移多页签 ([28efbdb](https://github.com/honghuangdc/soybean-admin/commit/28efbdbc70733d22011a0eee084d35711429d188)) | ||||||
|  | * **projects:** 迁移登录完成 ([b93b80c](https://github.com/honghuangdc/soybean-admin/commit/b93b80cb4b35268dfb6a09517a2494af24748dac)) | ||||||
|  | * **projects:** 集成naiveUI主题配置,将css vars添加至html ([2c19684](https://github.com/honghuangdc/soybean-admin/commit/2c196841bd8527d7acccefe6a7545e0a49d532f7)) | ||||||
|  | * **projects:** 面包屑 ([09c7658](https://github.com/honghuangdc/soybean-admin/commit/09c7658c21c7dda461dbb528e85b638b5a7dfacd)) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ### Bug Fixes | ||||||
|  |  | ||||||
|  | * **deps:** 降低vite版本 ([c9c5ca9](https://github.com/honghuangdc/soybean-admin/commit/c9c5ca9989eddb084f2706155473123c5dcfc334)) | ||||||
|  | * **projects:** 修复redirect-not-found子路由 ([5bfb819](https://github.com/honghuangdc/soybean-admin/commit/5bfb8199b463d9ca6430577b5c493c0b78967aa9)) | ||||||
|  | * **projects:** 修复vertical-mix布局、重构初始化的loading ([579e074](https://github.com/honghuangdc/soybean-admin/commit/579e07400e1b9a52934ed808a37c8579a41e8e74)) | ||||||
|  | * **projects:** 修复网络请求错误空信息的提示 ([ff9216b](https://github.com/honghuangdc/soybean-admin/commit/ff9216b621aaef0a8203386fa1c3ca5477a2edea)) | ||||||
|  | * **projects:** 修复面包屑数据 ([28b5d22](https://github.com/honghuangdc/soybean-admin/commit/28b5d224010a28669ad3a1919fc49f6e2dc808cd)) | ||||||
|  | * **projects:** 去除Layout组件冗余代码 ([0e783bc](https://github.com/honghuangdc/soybean-admin/commit/0e783bcf7be0b3a083fe950adfb0afc72b510f97)) | ||||||
|  | * **projects:** 请求相关细节修复 ([2ad1ad3](https://github.com/honghuangdc/soybean-admin/commit/2ad1ad32b8410d84902a33d825032c282ca6df86)) | ||||||
|   | |||||||
							
								
								
									
										16
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,16 @@ | |||||||
|  | ImageTag ?=v0.9.6 | ||||||
|  | SoybeanAdminImg ?= soybeanjs/soybean-admin:$(ImageTag) | ||||||
|  |  | ||||||
|  | VERSION=$(shell git rev-parse --short HEAD) | ||||||
|  |  | ||||||
|  | soybean-admin: soybean-admin-build soybean-admin-push | ||||||
|  |  | ||||||
|  | soybean-admin-build: | ||||||
|  | 	docker build --build-arg version=$(VERSION) -t ${SoybeanAdminImg} -f docker/Dockerfile . | ||||||
|  |  | ||||||
|  | soybean-admin-push: | ||||||
|  | 	docker push ${SoybeanAdminImg} | ||||||
|  |  | ||||||
|  | # run tauri app: | ||||||
|  | run: | ||||||
|  | 	pnpm tauri dev | ||||||
							
								
								
									
										94
									
								
								README.md
									
									
									
									
									
								
							
							
						
						| @@ -1,5 +1,5 @@ | |||||||
| <div style="text-align:center"> | <div align="center"> | ||||||
| 	<img src="https://i.loli.net/2021/11/24/x5lLfuSnEawBAgi.png"/> | 	<img src="./public/logo.png" style="width: 240px;"/> | ||||||
| 	<h1>Soybean Admin</h1> | 	<h1>Soybean Admin</h1> | ||||||
| </div> | </div> | ||||||
|  |  | ||||||
| @@ -7,15 +7,16 @@ | |||||||
|  |  | ||||||
| ## 简介 | ## 简介 | ||||||
|  |  | ||||||
| Soybean Admin 是一个基于 Vue3、Vite、Naive UI、TypeScript 的免费中后台模版,它使用了最新的前端技术栈,内置丰富的插件,有着极高的代码规范,开箱即用的中后台前端解决方案,也可用于学习参考。 | [Soybean Admin](https://github.com/honghuangdc/soybean-admin) 是一个基于 Vue3、Vite3、TypeScript、NaiveUI、Pinia 和 UnoCSS 的清新优雅的中后台模版,它使用了最新的前端技术栈,内置丰富的主题配置,有着极高的代码规范,基于 mock 实现的动态权限路由,开箱即用的中后台前端解决方案,也可用于学习参考。 | ||||||
|  |  | ||||||
| ## 特性 | ## 特性 | ||||||
|  |  | ||||||
| - **最新技术栈**:使用 Vue3/vite2 等前端前沿技术开发, 使用高效率的npm包管理器pnpm | - **最新技术栈**:使用 Vue3/vite2 等前端前沿技术开发, 使用高效率的 npm 包管理器 pnpm | ||||||
| - **TypeScript**: 应用程序级 JavaScript 的语言 | - **TypeScript**: 应用程序级 JavaScript 的语言 | ||||||
| - **主题**:丰富可配置的主题 | - **主题**:丰富可配置的主题、暗黑模式,基于原子 css 框架 - UnoCss 的动态主题颜色 | ||||||
| - **代码规范**:丰富的规范插件及极高的代码规范 | - **代码规范**:丰富的规范插件及极高的代码规范 | ||||||
| - **路由配置**:简易的路由配置 | - **权限路由**:基于文件的路由系统、基于 mock 的动态路由能快速实现后端动态路由 | ||||||
|  | - **请求函数**:基于 axios 的完善的请求函数封装,提供 Promise 和 hooks 两种请求函数,加入请求结果数据转换的适配器适配器 | ||||||
|  |  | ||||||
| ## 预览 | ## 预览 | ||||||
|  |  | ||||||
| @@ -23,33 +24,55 @@ Soybean Admin 是一个基于 Vue3、Vite、Naive UI、TypeScript 的免费中 | |||||||
|  |  | ||||||
| ## 文档 | ## 文档 | ||||||
|  |  | ||||||
| - [项目文档](https://docs.soybean.pro) | - [项目文档: docs.soybean.pro](https://docs.soybean.pro) | ||||||
|  |  | ||||||
| ### 代码仓库 | ## 代码仓库 | ||||||
|  |  | ||||||
| - [github](https://github.com/honghuangdc/soybean-admin) | - [github](https://github.com/honghuangdc/soybean-admin) | ||||||
|  | - [tauri 版](https://github.com/honghuangdc/soybean-admin/tree/tauri) | ||||||
|  | - [精简版](https://github.com/honghuangdc/soybean-admin/tree/thin) | ||||||
| - [gitee](https://gitee.com/honghuangdc/soybean-admin) | - [gitee](https://gitee.com/honghuangdc/soybean-admin) | ||||||
|  | - [tauri 版](https://gitee.com/honghuangdc/soybean-admin/tree/tauri) | ||||||
|  | - [精简版](https://gitee.com/honghuangdc/soybean-admin/tree/thin) | ||||||
|  |  | ||||||
|  | ## 更新日志 | ||||||
|  |  | ||||||
|  | [CHANGELOG](./CHANGELOG.md) | ||||||
|  |  | ||||||
|  | ## 后端服务 | ||||||
|  |  | ||||||
|  | - [soybean-admin-java](https://github.com/honghuangdc/soybean-admin-java) | ||||||
|  | - [soybean-admin-go](https://github.com/honghuangdc/soybean-admin-go) | ||||||
|  |  | ||||||
| ## 项目示例图 | ## 项目示例图 | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ### 使用 Gitpod |  | ||||||
|  |  | ||||||
| 在 Gitpod(适用于 GitHub 的免费在线开发环境)中打开项目,并立即开始编码. |  | ||||||
|  |  | ||||||
| [](https://gitpod.io/#https://github.com/honghuangdc/soybean-admin) |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ## 安装使用 | ## 安装使用 | ||||||
|  |  | ||||||
|  | - 环境配置 | ||||||
|  |   **本地环境需要安装 pnpm 7.x 、Node.js 14.18+ 和 Git** | ||||||
|  |  | ||||||
| - 克隆代码 | - 克隆代码 | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| @@ -74,19 +97,27 @@ pnpm dev | |||||||
| pnpm build | pnpm build | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|  | ## Docker 部署 | ||||||
|  |  | ||||||
|  | - Docker 部署 Soybean | ||||||
|  |  | ||||||
|  | ```bash | ||||||
|  | docker run --name soybean -p 80:80 -d soybeanjs/soybean-admin:v0.9.6 | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | - 访问 SoybeanAdmin | ||||||
|  |  | ||||||
|  | 打开本地浏览器访问`http://localhost` | ||||||
|  |  | ||||||
| ## 如何贡献 | ## 如何贡献 | ||||||
|  |  | ||||||
| 非常欢迎您的加入 或者提交一个 Pull Request。 | 非常欢迎您的加入 或者提交一个 Pull Request。 | ||||||
|  |  | ||||||
| ## Git 贡献提交规范 | ## Git 贡献提交规范 | ||||||
|  |  | ||||||
| 项目已经内置angular提交规范,通过git cz 代替git commit 命令即可。 | 项目已经内置 angular 提交规范,直接执行 commit 命令即可。 | ||||||
|  |  | ||||||
| git cz命令需要全局安装 commitizen | 项目已用 simple-git-hooks 代替了 husky, 旧版本用了 husky,执行 pnpm soy init-git-hooks 进行初始化配置 | ||||||
|  |  | ||||||
| ```bash |  | ||||||
| pnpm i -g commitizen |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| ## 浏览器支持 | ## 浏览器支持 | ||||||
|  |  | ||||||
| @@ -95,8 +126,8 @@ pnpm i -g commitizen | |||||||
| 支持现代浏览器, 不支持 IE | 支持现代浏览器, 不支持 IE | ||||||
|  |  | ||||||
| | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/archive/internet-explorer_9-11/internet-explorer_9-11_48x48.png" alt="IE" width="24px" height="24px"  />](http://godban.github.io/browsers-support-badges/)IE | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)Safari | | | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/archive/internet-explorer_9-11/internet-explorer_9-11_48x48.png" alt="IE" width="24px" height="24px"  />](http://godban.github.io/browsers-support-badges/)IE | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)Safari | | ||||||
| | :-: | :-: | :-: | :-: | :-: | | | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | | ||||||
| | not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions | | |                                                                                                                not support                                                                                                                |                                                                                          last 2 versions                                                                                          |                                                                                               last 2 versions                                                                                                |                                                                                             last 2 versions                                                                                              |                                                                                             last 2 versions                                                                                              | | ||||||
|  |  | ||||||
| ## 开源作者 | ## 开源作者 | ||||||
|  |  | ||||||
| @@ -104,17 +135,24 @@ pnpm i -g commitizen | |||||||
|  |  | ||||||
| ## 交流 | ## 交流 | ||||||
|  |  | ||||||
| `Soybean Admin` 是完全开源免费的项目,在帮助开发者更方便地进行中大型管理系统开发,同时也提供 QQ 交流群使用问题欢迎在群内提问。 | `Soybean Admin` 是完全开源免费的项目,在帮助开发者更方便地进行中大型管理系统开发,同时也提供微信和 QQ 交流群,使用问题欢迎在群内提问。 | ||||||
|  |  | ||||||
| - QQ 群 `711301266` | - 微信交流群(添加本人微信拉进群),欢迎来技术交流,业务咨询。 | ||||||
|  |   <div style="text-align:left"> | ||||||
|  |     <img src="https://s2.loli.net/2022/05/16/3YGBgXnVPJdslk8.jpg" style="width:200px" /> | ||||||
|  |   </div> | ||||||
|  |  | ||||||
|  | - QQ 交流群 `711301266` | ||||||
|  |  | ||||||
|   <div style="text-align:left"> |   <div style="text-align:left"> | ||||||
|     <img src="https://i.loli.net/2021/11/24/1J6REWXiHomU2kM.jpg" style="width:200px" /> |     <img src="https://i.loli.net/2021/11/24/1J6REWXiHomU2kM.jpg" style="width:200px" /> | ||||||
|   </div> |   </div> | ||||||
|  |  | ||||||
|  | ## 捐赠 | ||||||
|  |  | ||||||
|  | 如果你觉得这个项目对你有帮助,可以请 Soybean 喝杯饮料表示支持,Soybean 开源的动力离不开各位的支持和鼓励。 | ||||||
|  |  | ||||||
| - 本人微信号:honghuangdc,欢迎来技术交流。 |  | ||||||
|  |  | ||||||
| ## License | ## License | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3,6 +3,6 @@ import dayjs from 'dayjs'; | |||||||
| /** 项目构建时间 */ | /** 项目构建时间 */ | ||||||
| const PROJECT_BUILD_TIME = JSON.stringify(dayjs().format('YYYY-MM-DD HH:mm:ss')); | const PROJECT_BUILD_TIME = JSON.stringify(dayjs().format('YYYY-MM-DD HH:mm:ss')); | ||||||
| 
 | 
 | ||||||
| export default { | export const viteDefine = { | ||||||
|   PROJECT_BUILD_TIME |   PROJECT_BUILD_TIME | ||||||
| }; | }; | ||||||
							
								
								
									
										2
									
								
								build/config/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,2 @@ | |||||||
|  | export * from './define'; | ||||||
|  | export * from './proxy'; | ||||||
							
								
								
									
										25
									
								
								build/config/proxy.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,25 @@ | |||||||
|  | import type { ProxyOptions } from 'vite'; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 设置网络代理 | ||||||
|  |  * @param isOpenProxy - 是否开启代理 | ||||||
|  |  * @param envConfig - env环境配置 | ||||||
|  |  */ | ||||||
|  | export function createViteProxy(isOpenProxy: boolean, envConfig: ServiceEnvConfig) { | ||||||
|  |   if (!isOpenProxy) return undefined; | ||||||
|  |  | ||||||
|  |   const proxy: Record<string, string | ProxyOptions> = { | ||||||
|  |     [envConfig.urlPattern]: { | ||||||
|  |       target: envConfig.url, | ||||||
|  |       changeOrigin: true, | ||||||
|  |       rewrite: path => path.replace(new RegExp(`^${envConfig.urlPattern}`), '') | ||||||
|  |     }, | ||||||
|  |     [envConfig.secondUrlPattern]: { | ||||||
|  |       target: envConfig.secondUrl, | ||||||
|  |       changeOrigin: true, | ||||||
|  |       rewrite: path => path.replace(new RegExp(`^${envConfig.secondUrlPattern}`), '') | ||||||
|  |     } | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   return proxy; | ||||||
|  | } | ||||||
							
								
								
									
										5
									
								
								build/env/index.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -1,5 +0,0 @@ | |||||||
| import dotenv from 'dotenv'; |  | ||||||
|  |  | ||||||
| const { parsed: viteEnv } = dotenv.config(); // 加载环境 |  | ||||||
|  |  | ||||||
| export default viteEnv!; |  | ||||||
| @@ -1,5 +1,3 @@ | |||||||
| import viteEnv from './env'; | export * from './plugins'; | ||||||
| import plugins from './plugins'; | export * from './config'; | ||||||
| import define from './define'; | export * from './utils'; | ||||||
|  |  | ||||||
| export { viteEnv, plugins, define }; |  | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								build/plugins/compress.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,6 @@ | |||||||
|  | import ViteCompression from 'vite-plugin-compression'; | ||||||
|  |  | ||||||
|  | export default (viteEnv: ImportMetaEnv) => { | ||||||
|  |   const { VITE_COMPRESS_TYPE = 'gzip' } = viteEnv; | ||||||
|  |   return ViteCompression({ algorithm: VITE_COMPRESS_TYPE }); | ||||||
|  | }; | ||||||
| @@ -1,12 +1,14 @@ | |||||||
| import { minifyHtml, injectHtml } from 'vite-plugin-html'; // html插件(使用变量、压缩) | import type { PluginOption } from 'vite'; | ||||||
| import viteEnv from '../env'; | import { createHtmlPlugin } from 'vite-plugin-html'; | ||||||
|  |  | ||||||
| export default [ | export default (viteEnv: ImportMetaEnv): PluginOption[] => { | ||||||
|   minifyHtml(), |   return createHtmlPlugin({ | ||||||
|   injectHtml({ |     minify: true, | ||||||
|     injectData: { |     inject: { | ||||||
|       title: viteEnv.VITE_APP_TITLE, |       data: { | ||||||
|       appName: viteEnv.VITE_APP_TITLE_LABEL |         appName: viteEnv.VITE_APP_NAME, | ||||||
|  |         appTitle: viteEnv.VITE_APP_TITLE | ||||||
|  |       } | ||||||
|     } |     } | ||||||
|   }) |   }); | ||||||
| ]; | }; | ||||||
|   | |||||||
| @@ -1,10 +0,0 @@ | |||||||
| import Icons from 'unplugin-icons/vite'; // iconify图标 |  | ||||||
| import IconsResolver from 'unplugin-icons/resolver'; |  | ||||||
| import Components from 'unplugin-vue-components/vite'; // 从指定目录自动导入组件 |  | ||||||
|  |  | ||||||
| export default [ |  | ||||||
|   Components({ |  | ||||||
|     resolvers: [IconsResolver({ componentPrefix: 'icon' })] |  | ||||||
|   }), |  | ||||||
|   Icons() |  | ||||||
| ]; |  | ||||||
| @@ -1,9 +1,32 @@ | |||||||
| import vue from './vue'; | import type { PluginOption } from 'vite'; | ||||||
|  | import vue from '@vitejs/plugin-vue'; | ||||||
|  | import vueJsx from '@vitejs/plugin-vue-jsx'; | ||||||
|  | import unocss from '@unocss/vite'; | ||||||
|  | import progress from 'vite-plugin-progress'; | ||||||
|  | import pageRoute from '@soybeanjs/vite-plugin-vue-page-route'; | ||||||
| import html from './html'; | import html from './html'; | ||||||
| import iconify from './iconify'; | import unplugin from './unplugin'; | ||||||
| import windicss from './windicss'; | import mock from './mock'; | ||||||
| import visualizer from './visualizer'; | import visualizer from './visualizer'; | ||||||
|  | import compress from './compress'; | ||||||
|  | import pwa from './pwa'; | ||||||
|  |  | ||||||
| const plugins = [vue, ...html, ...iconify, windicss, visualizer]; | /** | ||||||
|  |  * vite插件 | ||||||
|  |  * @param viteEnv - 环境变量配置 | ||||||
|  |  */ | ||||||
|  | export function setupVitePlugins(viteEnv: ImportMetaEnv): (PluginOption | PluginOption[])[] { | ||||||
|  |   const plugins = [vue(), vueJsx(), html(viteEnv), ...unplugin(viteEnv), unocss(), mock, progress(), pageRoute()]; | ||||||
|  |  | ||||||
| export default plugins; |   if (viteEnv.VITE_VISUALIZER === 'Y') { | ||||||
|  |     plugins.push(visualizer as PluginOption); | ||||||
|  |   } | ||||||
|  |   if (viteEnv.VITE_COMPRESS === 'Y') { | ||||||
|  |     plugins.push(compress(viteEnv)); | ||||||
|  |   } | ||||||
|  |   if (viteEnv.VITE_PWA === 'Y' || viteEnv.VITE_VERCEL === 'Y') { | ||||||
|  |     plugins.push(pwa()); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   return plugins; | ||||||
|  | } | ||||||
|   | |||||||
							
								
								
									
										9
									
								
								build/plugins/mock.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,9 @@ | |||||||
|  | import { viteMockServe } from 'vite-plugin-mock'; | ||||||
|  |  | ||||||
|  | export default viteMockServe({ | ||||||
|  |   mockPath: 'mock', | ||||||
|  |   injectCode: ` | ||||||
|  | 		import { setupMockServer } from '../mock'; | ||||||
|  | 		setupMockServer(); | ||||||
|  | 	` | ||||||
|  | }); | ||||||
							
								
								
									
										31
									
								
								build/plugins/pwa.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,31 @@ | |||||||
|  | import { VitePWA } from 'vite-plugin-pwa'; | ||||||
|  |  | ||||||
|  | export default function setupVitePwa() { | ||||||
|  |   return VitePWA({ | ||||||
|  |     registerType: 'autoUpdate', | ||||||
|  |     includeAssets: ['favicon.ico'], | ||||||
|  |     manifest: { | ||||||
|  |       name: 'SoybeanAdmin', | ||||||
|  |       short_name: 'SoybeanAdmin', | ||||||
|  |       theme_color: '#fff', | ||||||
|  |       icons: [ | ||||||
|  |         { | ||||||
|  |           src: '/logo.png', | ||||||
|  |           sizes: '192x192', | ||||||
|  |           type: 'image/png' | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           src: '/logo.png', | ||||||
|  |           sizes: '512x512', | ||||||
|  |           type: 'image/png' | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           src: '/logo.png', | ||||||
|  |           sizes: '512x512', | ||||||
|  |           type: 'image/png', | ||||||
|  |           purpose: 'any maskable' | ||||||
|  |         } | ||||||
|  |       ] | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  | } | ||||||
							
								
								
									
										44
									
								
								build/plugins/unplugin.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,44 @@ | |||||||
|  | import VueMacros from 'unplugin-vue-macros/vite'; | ||||||
|  | import Icons from 'unplugin-icons/vite'; | ||||||
|  | import IconsResolver from 'unplugin-icons/resolver'; | ||||||
|  | import Components from 'unplugin-vue-components/vite'; | ||||||
|  | import { NaiveUiResolver } from 'unplugin-vue-components/resolvers'; | ||||||
|  | import { FileSystemIconLoader } from 'unplugin-icons/loaders'; | ||||||
|  | import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'; | ||||||
|  | import { getSrcPath } from '../utils'; | ||||||
|  |  | ||||||
|  | export default function unplugin(viteEnv: ImportMetaEnv) { | ||||||
|  |   const { VITE_ICON_PREFFIX, VITE_ICON_LOCAL_PREFFIX } = viteEnv; | ||||||
|  |  | ||||||
|  |   const srcPath = getSrcPath(); | ||||||
|  |   const localIconPath = `${srcPath}/assets/svg-icon`; | ||||||
|  |  | ||||||
|  |   /** 本地svg图标集合名称 */ | ||||||
|  |   const collectionName = VITE_ICON_LOCAL_PREFFIX.replace(`${VITE_ICON_PREFFIX}-`, ''); | ||||||
|  |  | ||||||
|  |   return [ | ||||||
|  |     VueMacros({}), | ||||||
|  |     Icons({ | ||||||
|  |       compiler: 'vue3', | ||||||
|  |       customCollections: { | ||||||
|  |         [collectionName]: FileSystemIconLoader(localIconPath) | ||||||
|  |       }, | ||||||
|  |       scale: 1, | ||||||
|  |       defaultClass: 'inline-block' | ||||||
|  |     }), | ||||||
|  |     Components({ | ||||||
|  |       dts: 'src/typings/components.d.ts', | ||||||
|  |       types: [{ from: 'vue-router', names: ['RouterLink', 'RouterView'] }], | ||||||
|  |       resolvers: [ | ||||||
|  |         NaiveUiResolver(), | ||||||
|  |         IconsResolver({ customCollections: [collectionName], componentPrefix: VITE_ICON_PREFFIX }) | ||||||
|  |       ] | ||||||
|  |     }), | ||||||
|  |     createSvgIconsPlugin({ | ||||||
|  |       iconDirs: [localIconPath], | ||||||
|  |       symbolId: `${VITE_ICON_LOCAL_PREFFIX}-[dir]-[name]`, | ||||||
|  |       inject: 'body-last', | ||||||
|  |       customDomId: '__SVG_ICON_LOCAL__' | ||||||
|  |     }) | ||||||
|  |   ]; | ||||||
|  | } | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| import { visualizer } from 'rollup-plugin-visualizer'; | import { visualizer } from 'rollup-plugin-visualizer'; | ||||||
|  |  | ||||||
| export default visualizer({ | export default visualizer({ | ||||||
|   open: true, |  | ||||||
|   gzipSize: true, |   gzipSize: true, | ||||||
|   brotliSize: true |   brotliSize: true, | ||||||
|  |   open: true | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -1,3 +0,0 @@ | |||||||
| import vue from '@vitejs/plugin-vue'; |  | ||||||
|  |  | ||||||
| export default vue({}); |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| import windiCSS from 'vite-plugin-windicss'; |  | ||||||
|  |  | ||||||
| export default windiCSS(); |  | ||||||
							
								
								
									
										20
									
								
								build/utils/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,20 @@ | |||||||
|  | import path from 'path'; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 获取项目根路径 | ||||||
|  |  * @descrition 末尾不带斜杠 | ||||||
|  |  */ | ||||||
|  | export function getRootPath() { | ||||||
|  |   return path.resolve(process.cwd()); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 获取项目src路径 | ||||||
|  |  * @param srcName - src目录名称(默认: "src") | ||||||
|  |  * @descrition 末尾不带斜杠 | ||||||
|  |  */ | ||||||
|  | export function getSrcPath(srcName = 'src') { | ||||||
|  |   const rootPath = getRootPath(); | ||||||
|  |  | ||||||
|  |   return `${rootPath}/${srcName}`; | ||||||
|  | } | ||||||
| @@ -1 +0,0 @@ | |||||||
| module.exports = { extends: ['@commitlint/config-conventional'] }; |  | ||||||
							
								
								
									
										32
									
								
								docker/.dockerignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,32 @@ | |||||||
|  | node_modules | ||||||
|  | .DS_Store | ||||||
|  | dist | ||||||
|  | .npmrc | ||||||
|  | .cache | ||||||
|  |  | ||||||
|  | tests/server/static | ||||||
|  | tests/server/static/upload | ||||||
|  |  | ||||||
|  | .local | ||||||
|  | # local env files | ||||||
|  | .env.local | ||||||
|  | .env.*.local | ||||||
|  | .eslintcache | ||||||
|  |  | ||||||
|  | # Log files | ||||||
|  | npm-debug.log* | ||||||
|  | yarn-debug.log* | ||||||
|  | yarn-error.log* | ||||||
|  | pnpm-debug.log* | ||||||
|  |  | ||||||
|  | # Editor directories and files | ||||||
|  | .idea | ||||||
|  | # .vscode | ||||||
|  | *.suo | ||||||
|  | *.ntvs* | ||||||
|  | *.njsproj | ||||||
|  | *.sln | ||||||
|  | *.sw? | ||||||
|  | yarn.lock | ||||||
|  | pnpm-lock.yaml | ||||||
|  | /vite-profile.cpuprofile | ||||||
							
								
								
									
										24
									
								
								docker/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,24 @@ | |||||||
|  | FROM node:16.17.0 as builder | ||||||
|  |  | ||||||
|  | ENV WORKDIR=/soybean-admin | ||||||
|  |  | ||||||
|  | WORKDIR $WORKDIR | ||||||
|  |  | ||||||
|  | COPY ./ $WORKDIR/ | ||||||
|  |  | ||||||
|  | ARG version | ||||||
|  | ENV COMMITID=$version | ||||||
|  |  | ||||||
|  | RUN npm i -g pnpm | ||||||
|  |  | ||||||
|  | RUN pnpm install | ||||||
|  | RUN pnpm build | ||||||
|  |  | ||||||
|  | FROM nginx:alpine as prod | ||||||
|  |  | ||||||
|  | RUN mkdir /soybean | ||||||
|  |  | ||||||
|  | COPY --from=builder /soybean-admin/dist /soybean-admin | ||||||
|  | COPY --from=builder /soybean-admin/docker/nginx.conf /etc/nginx/nginx.conf | ||||||
|  |  | ||||||
|  | EXPOSE 80 | ||||||
							
								
								
									
										54
									
								
								docker/nginx.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,54 @@ | |||||||
|  | user  nginx; | ||||||
|  | worker_processes  1; | ||||||
|  | error_log  /var/log/nginx/error.log warn; | ||||||
|  | pid        /var/run/nginx.pid; | ||||||
|  |  | ||||||
|  | events { | ||||||
|  |   worker_connections  1024; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | http { | ||||||
|  |   include       /etc/nginx/mime.types; | ||||||
|  |   default_type  application/octet-stream; | ||||||
|  |   log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' | ||||||
|  |                     '$status $body_bytes_sent "$http_referer" ' | ||||||
|  |                     '"$http_user_agent" "$http_x_forwarded_for"'; | ||||||
|  |   access_log  /var/log/nginx/access.log  main; | ||||||
|  |   sendfile        on; | ||||||
|  |   keepalive_timeout  65; | ||||||
|  |  | ||||||
|  |   server { | ||||||
|  |     listen       80; | ||||||
|  |     server_name  localhost; | ||||||
|  |  | ||||||
|  |     location / { | ||||||
|  |       # 不缓存html,防止程序更新后缓存继续生效 | ||||||
|  |       if ($request_filename ~* .*\.(?:htm|html)$) { | ||||||
|  |         add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate"; | ||||||
|  |         access_log on; | ||||||
|  |       } | ||||||
|  |       root   /soybean-admin/; | ||||||
|  |       index  index.html index.htm; | ||||||
|  |       try_files $uri $uri/ /index.html; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     # location /soybean/soybean-webserver/v1 { | ||||||
|  |     #     proxy_set_header Host $host; | ||||||
|  |     #     proxy_set_header X-Real-IP $remote_addr; | ||||||
|  |     #     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||||||
|  |     #     proxy_set_header REMOTE-HOST $remote_addr; | ||||||
|  |  | ||||||
|  |     #     # 后台接口地址 | ||||||
|  |     #     proxy_pass http://192.168.1.99:30597/v1; | ||||||
|  |     #     proxy_redirect default; | ||||||
|  |     #     add_header Access-Control-Allow-Origin *; | ||||||
|  |     #     add_header Access-Control-Allow-Headers X-Requested-With; | ||||||
|  |     #     add_header Access-Control-Allow-Methods GET,POST,OPTIONS; | ||||||
|  |     # } | ||||||
|  |  | ||||||
|  |     error_page   500 502 503 504  /50x.html; | ||||||
|  |     location = /50x.html { | ||||||
|  |       root   /usr/share/nginx/html; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										27
									
								
								index.html
									
									
									
									
									
								
							
							
						
						| @@ -1,32 +1,15 @@ | |||||||
| <!DOCTYPE html> | <!DOCTYPE html> | ||||||
| <html lang="en"> | <html lang="zh-cmn-Hans"> | ||||||
|   <head> |   <head> | ||||||
|     <meta charset="UTF-8" /> |     <meta charset="UTF-8" /> | ||||||
|     <link rel="icon" href="/favicon.ico" /> |     <link rel="icon" href="/logo.png" /> | ||||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |     <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||||||
|     <title><%= title %></title> |     <title><%= appName %></title> | ||||||
|   </head> |   </head> | ||||||
|   <body> |   <body> | ||||||
| 		<div id="appProvider" style="display: none"></div> |  | ||||||
|     <div id="app"> |     <div id="app"> | ||||||
| 			<!-- 页面渲染之前加载动画 --> |       <div id="appLoading"></div> | ||||||
|       <div class="app-loading"> |     </div> | ||||||
|         <img class="app-loading_logo" src="/resource/logo.png" /> |  | ||||||
|         <div class="app-loading__dot-wrapper"> |  | ||||||
|           <div class="app-loading__dot"> |  | ||||||
|             <i class="left top"></i> |  | ||||||
|             <i class="left bottom delay-400"></i> |  | ||||||
|             <i class="right top delay-800"></i> |  | ||||||
|             <i class="right bottom delay-1200"></i> |  | ||||||
|           </div> |  | ||||||
|         </div> |  | ||||||
|         <h2 class="app-loading_title"><%= appName %></h2> |  | ||||||
|         <style> |  | ||||||
|           @import '/resource/loading.css'; |  | ||||||
|         </style> |  | ||||||
|       </div> |  | ||||||
|       <!-- End --> |  | ||||||
| 		</div> |  | ||||||
|     <script type="module" src="/src/main.ts"></script> |     <script type="module" src="/src/main.ts"></script> | ||||||
|   </body> |   </body> | ||||||
| </html> | </html> | ||||||
|   | |||||||
							
								
								
									
										128
									
								
								mock/api/auth.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,128 @@ | |||||||
|  | import type { MockMethod } from 'vite-plugin-mock'; | ||||||
|  | import { userModel } from '../model'; | ||||||
|  |  | ||||||
|  | /** 参数错误的状态码 */ | ||||||
|  | const ERROR_PARAM_CODE = 10000; | ||||||
|  |  | ||||||
|  | const ERROR_PARAM_MSG = '参数校验失败!'; | ||||||
|  |  | ||||||
|  | const apis: MockMethod[] = [ | ||||||
|  |   // 获取验证码 | ||||||
|  |   { | ||||||
|  |     url: '/mock/getSmsCode', | ||||||
|  |     method: 'post', | ||||||
|  |     response: (): Service.MockServiceResult<boolean> => { | ||||||
|  |       return { | ||||||
|  |         code: 200, | ||||||
|  |         message: 'ok', | ||||||
|  |         data: true | ||||||
|  |       }; | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   // 用户+密码 登录 | ||||||
|  |   { | ||||||
|  |     url: '/mock/login', | ||||||
|  |     method: 'post', | ||||||
|  |     response: (options: Service.MockOption): Service.MockServiceResult<ApiAuth.Token | null> => { | ||||||
|  |       const { userName = undefined, password = undefined } = options.body; | ||||||
|  |  | ||||||
|  |       if (!userName || !password) { | ||||||
|  |         return { | ||||||
|  |           code: ERROR_PARAM_CODE, | ||||||
|  |           message: ERROR_PARAM_MSG, | ||||||
|  |           data: null | ||||||
|  |         }; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       const findItem = userModel.find(item => item.userName === userName && item.password === password); | ||||||
|  |  | ||||||
|  |       if (findItem) { | ||||||
|  |         return { | ||||||
|  |           code: 200, | ||||||
|  |           message: 'ok', | ||||||
|  |           data: { | ||||||
|  |             token: findItem.token, | ||||||
|  |             refreshToken: findItem.refreshToken | ||||||
|  |           } | ||||||
|  |         }; | ||||||
|  |       } | ||||||
|  |       return { | ||||||
|  |         code: 1000, | ||||||
|  |         message: '用户名或密码错误!', | ||||||
|  |         data: null | ||||||
|  |       }; | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   // 获取用户信息(请求头携带token, 根据token获取用户信息) | ||||||
|  |   { | ||||||
|  |     url: '/mock/getUserInfo', | ||||||
|  |     method: 'get', | ||||||
|  |     response: (options: Service.MockOption): Service.MockServiceResult<ApiAuth.UserInfo | null> => { | ||||||
|  |       // 这里的mock插件得到的字段是authorization, 前端传递的是Authorization字段 | ||||||
|  |       const { authorization = '' } = options.headers; | ||||||
|  |       const REFRESH_TOKEN_CODE = 66666; | ||||||
|  |  | ||||||
|  |       if (!authorization) { | ||||||
|  |         return { | ||||||
|  |           code: REFRESH_TOKEN_CODE, | ||||||
|  |           message: '用户已失效或不存在!', | ||||||
|  |           data: null | ||||||
|  |         }; | ||||||
|  |       } | ||||||
|  |       const userInfo: Auth.UserInfo = { | ||||||
|  |         userId: '', | ||||||
|  |         userName: '', | ||||||
|  |         userRole: 'user' | ||||||
|  |       }; | ||||||
|  |       const isInUser = userModel.some(item => { | ||||||
|  |         const flag = item.token === authorization; | ||||||
|  |         if (flag) { | ||||||
|  |           const { userId: itemUserId, userName, userRole } = item; | ||||||
|  |           Object.assign(userInfo, { userId: itemUserId, userName, userRole }); | ||||||
|  |         } | ||||||
|  |         return flag; | ||||||
|  |       }); | ||||||
|  |  | ||||||
|  |       if (isInUser) { | ||||||
|  |         return { | ||||||
|  |           code: 200, | ||||||
|  |           message: 'ok', | ||||||
|  |           data: userInfo | ||||||
|  |         }; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       return { | ||||||
|  |         code: REFRESH_TOKEN_CODE, | ||||||
|  |         message: '用户信息异常!', | ||||||
|  |         data: null | ||||||
|  |       }; | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     url: '/mock/updateToken', | ||||||
|  |     method: 'post', | ||||||
|  |     response: (options: Service.MockOption): Service.MockServiceResult<ApiAuth.Token | null> => { | ||||||
|  |       const { refreshToken = '' } = options.body; | ||||||
|  |  | ||||||
|  |       const findItem = userModel.find(item => item.refreshToken === refreshToken); | ||||||
|  |  | ||||||
|  |       if (findItem) { | ||||||
|  |         return { | ||||||
|  |           code: 200, | ||||||
|  |           message: 'ok', | ||||||
|  |           data: { | ||||||
|  |             token: findItem.token, | ||||||
|  |             refreshToken: findItem.refreshToken | ||||||
|  |           } | ||||||
|  |         }; | ||||||
|  |       } | ||||||
|  |       return { | ||||||
|  |         code: 3000, | ||||||
|  |         message: '用户已失效或不存在!', | ||||||
|  |         data: null | ||||||
|  |       }; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | ]; | ||||||
|  |  | ||||||
|  | export default apis; | ||||||
							
								
								
									
										5
									
								
								mock/api/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,5 @@ | |||||||
|  | import auth from './auth'; | ||||||
|  | import route from './route'; | ||||||
|  | import management from './management'; | ||||||
|  |  | ||||||
|  | export default [...auth, ...route, ...management]; | ||||||
							
								
								
									
										33
									
								
								mock/api/management.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,33 @@ | |||||||
|  | import { mock } from 'mockjs'; | ||||||
|  | import type { MockMethod } from 'vite-plugin-mock'; | ||||||
|  |  | ||||||
|  | const apis: MockMethod[] = [ | ||||||
|  |   { | ||||||
|  |     url: '/mock/getAllUserList', | ||||||
|  |     method: 'post', | ||||||
|  |     response: (): Service.MockServiceResult<ApiUserManagement.User[]> => { | ||||||
|  |       const data = mock({ | ||||||
|  |         'list|1000': [ | ||||||
|  |           { | ||||||
|  |             id: '@id', | ||||||
|  |             userName: '@cname', | ||||||
|  |             'age|18-56': 56, | ||||||
|  |             'gender|1': ['0', '1', null], | ||||||
|  |             phone: | ||||||
|  |               /^[1](([3][0-9])|([4][01456789])|([5][012356789])|([6][2567])|([7][0-8])|([8][0-9])|([9][012356789]))[0-9]{8}$/, | ||||||
|  |             'email|1': ['@email("qq.com")', null], | ||||||
|  |             'userStatus|1': ['1', '2', '3', '4', null] | ||||||
|  |           } | ||||||
|  |         ] | ||||||
|  |       }); | ||||||
|  |  | ||||||
|  |       return { | ||||||
|  |         code: 200, | ||||||
|  |         message: 'ok', | ||||||
|  |         data: data.list | ||||||
|  |       }; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | ]; | ||||||
|  |  | ||||||
|  | export default apis; | ||||||
							
								
								
									
										29
									
								
								mock/api/route.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,29 @@ | |||||||
|  | import type { MockMethod } from 'vite-plugin-mock'; | ||||||
|  | import { routeModel, userModel } from '../model'; | ||||||
|  |  | ||||||
|  | const apis: MockMethod[] = [ | ||||||
|  |   { | ||||||
|  |     url: '/mock/getUserRoutes', | ||||||
|  |     method: 'post', | ||||||
|  |     response: (options: Service.MockOption): Service.MockServiceResult => { | ||||||
|  |       const { userId = undefined } = options.body; | ||||||
|  |  | ||||||
|  |       const routeHomeName: AuthRoute.LastDegreeRouteKey = 'dashboard_analysis'; | ||||||
|  |  | ||||||
|  |       const role = userModel.find(item => item.userId === userId)?.userRole || 'user'; | ||||||
|  |  | ||||||
|  |       const filterRoutes = routeModel[role]; | ||||||
|  |  | ||||||
|  |       return { | ||||||
|  |         code: 200, | ||||||
|  |         message: 'ok', | ||||||
|  |         data: { | ||||||
|  |           routes: filterRoutes, | ||||||
|  |           home: routeHomeName | ||||||
|  |         } | ||||||
|  |       }; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | ]; | ||||||
|  |  | ||||||
|  | export default apis; | ||||||
							
								
								
									
										6
									
								
								mock/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,6 @@ | |||||||
|  | import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer'; | ||||||
|  | import api from './api'; | ||||||
|  |  | ||||||
|  | export function setupMockServer() { | ||||||
|  |   createProdMockServer(api); | ||||||
|  | } | ||||||
							
								
								
									
										40
									
								
								mock/model/auth.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,40 @@ | |||||||
|  | interface UserModel extends Auth.UserInfo { | ||||||
|  |   token: string; | ||||||
|  |   refreshToken: string; | ||||||
|  |   password: string; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export const userModel: UserModel[] = [ | ||||||
|  |   { | ||||||
|  |     token: '__TOKEN_SOYBEAN__', | ||||||
|  |     refreshToken: '__REFRESH_TOKEN_SOYBEAN__', | ||||||
|  |     userId: '0', | ||||||
|  |     userName: 'Soybean', | ||||||
|  |     userRole: 'super', | ||||||
|  |     password: 'soybean123' | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     token: '__TOKEN_SUPER__', | ||||||
|  |     refreshToken: '__REFRESH_TOKEN_SUPER__', | ||||||
|  |     userId: '1', | ||||||
|  |     userName: 'Super', | ||||||
|  |     userRole: 'super', | ||||||
|  |     password: 'super123' | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     token: '__TOKEN_ADMIN__', | ||||||
|  |     refreshToken: '__REFRESH_TOKEN_ADMIN__', | ||||||
|  |     userId: '2', | ||||||
|  |     userName: 'Admin', | ||||||
|  |     userRole: 'admin', | ||||||
|  |     password: 'admin123' | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     token: '__TOKEN_USER01__', | ||||||
|  |     refreshToken: '__REFRESH_TOKEN_USER01__', | ||||||
|  |     userId: '3', | ||||||
|  |     userName: 'User01', | ||||||
|  |     userRole: 'user', | ||||||
|  |     password: 'user01123' | ||||||
|  |   } | ||||||
|  | ]; | ||||||
							
								
								
									
										2
									
								
								mock/model/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,2 @@ | |||||||
|  | export * from './auth'; | ||||||
|  | export * from './route'; | ||||||
							
								
								
									
										1126
									
								
								mock/model/route.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										213
									
								
								package.json
									
									
									
									
									
								
							
							
						
						| @@ -1,102 +1,139 @@ | |||||||
| { | { | ||||||
|   "name": "soybean-admin", |   "name": "soybean-admin", | ||||||
|   "version": "0.0.4", |   "version": "0.9.8", | ||||||
|  |   "description": "A fresh and elegant admin template, based on Vue3、Vite3、TypeScript、NaiveUI and UnoCSS. 一个基于Vue3、Vite3、TypeScript、NaiveUI and UnoCSS的清新优雅的中后台模版。", | ||||||
|   "author": { |   "author": { | ||||||
|     "name": "Soybean", |     "name": "Soybean", | ||||||
|     "email": "honghuangdc@gmail.com", |     "email": "honghuangdc@gmail.com", | ||||||
|     "url": "https://github.com/honghuangdc" |     "url": "https://github.com/honghuangdc" | ||||||
|   }, |   }, | ||||||
|   "scripts": { |   "license": "MIT", | ||||||
|     "release": "standard-version", |  | ||||||
|     "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0 && git add CHANGELOG.md", |  | ||||||
|     "dev": "vite", |  | ||||||
|     "dev:prod": "vite --mode production", |  | ||||||
|     "dev:staging": "vite --mode staging", |  | ||||||
|     "build": "vue-tsc --noEmit --skipLibCheck && vite build", |  | ||||||
|     "build:dev": "vue-tsc --noEmit --skipLibCheck && vite build --mode development", |  | ||||||
|     "build:staging": "vue-tsc --noEmit --skipLibCheck && vite build --mode staging", |  | ||||||
|     "serve": "vite preview", |  | ||||||
|     "lint": "eslint ./src --ext .vue,.js,jsx,.ts,tsx", |  | ||||||
|     "lint:fix": "eslint --fix ./src --ext .vue,.js,jsx,.ts,tsx", |  | ||||||
|     "prepare": "husky install", |  | ||||||
|     "postinstall": "patch-package" |  | ||||||
|   }, |  | ||||||
|   "lint-staged": { |  | ||||||
|     "*.{vue,js,jsx,ts,tsx}": "eslint --fix" |  | ||||||
|   }, |  | ||||||
|   "config": { |  | ||||||
|     "commitizen": { |  | ||||||
|       "path": "./node_modules/cz-customizable" |  | ||||||
|     } |  | ||||||
|   }, |  | ||||||
|   "dependencies": { |  | ||||||
|     "@antv/g2plot": "^2.3.40", |  | ||||||
|     "@better-scroll/core": "^2.4.2", |  | ||||||
|     "@vueuse/core": "^7.0.0", |  | ||||||
|     "axios": "^0.24.0", |  | ||||||
|     "chroma-js": "^2.1.2", |  | ||||||
|     "clipboard": "^2.0.8", |  | ||||||
|     "dayjs": "^1.10.7", |  | ||||||
|     "form-data": "^4.0.0", |  | ||||||
|     "naive-ui": "^2.21.0", |  | ||||||
|     "pinia": "^2.0.4", |  | ||||||
|     "print-js": "^1.6.0", |  | ||||||
|     "qs": "^6.10.1", |  | ||||||
|     "swiper": "^7.3.0", |  | ||||||
|     "vditor": "^3.8.7", |  | ||||||
|     "vue": "^3.2.22", |  | ||||||
|     "vue-router": "^4.0.12", |  | ||||||
|     "wangeditor": "^4.7.9", |  | ||||||
|     "xgplayer": "^2.31.2" |  | ||||||
|   }, |  | ||||||
|   "devDependencies": { |  | ||||||
|     "@amap/amap-jsapi-types": "^0.0.8", |  | ||||||
|     "@commitlint/cli": "^15.0.0", |  | ||||||
|     "@commitlint/config-conventional": "^15.0.0", |  | ||||||
|     "@iconify/json": "^1.1.431", |  | ||||||
|     "@iconify/vue": "^3.1.1", |  | ||||||
|     "@types/bmapgl": "^0.0.4", |  | ||||||
|     "@types/chroma-js": "^2.1.3", |  | ||||||
|     "@types/qs": "^6.9.7", |  | ||||||
|     "@typescript-eslint/eslint-plugin": "^5.4.0", |  | ||||||
|     "@typescript-eslint/parser": "^5.4.0", |  | ||||||
|     "@vitejs/plugin-vue": "^1.9.4", |  | ||||||
|     "@vue/compiler-sfc": "^3.2.22", |  | ||||||
|     "@vue/eslint-config-prettier": "^6.0.0", |  | ||||||
|     "@vue/eslint-config-typescript": "^9.1.0", |  | ||||||
|     "commitizen": "^4.2.4", |  | ||||||
|     "cz-conventional-changelog": "^3.3.0", |  | ||||||
|     "cz-customizable": "^6.3.0", |  | ||||||
|     "dotenv": "^10.0.0", |  | ||||||
|     "eslint": "^8.3.0", |  | ||||||
|     "eslint-config-airbnb-base": "^15.0.0", |  | ||||||
|     "eslint-config-prettier": "^8.3.0", |  | ||||||
|     "eslint-plugin-import": "^2.25.3", |  | ||||||
|     "eslint-plugin-prettier": "^4.0.0", |  | ||||||
|     "eslint-plugin-vue": "^8.1.1", |  | ||||||
|     "husky": "^7.0.4", |  | ||||||
|     "lint-staged": "^12.1.0", |  | ||||||
|     "patch-package": "^6.4.7", |  | ||||||
|     "postinstall-postinstall": "^2.1.0", |  | ||||||
|     "prettier": "^2.4.1", |  | ||||||
|     "rollup-plugin-visualizer": "^5.5.2", |  | ||||||
|     "sass": "^1.43.4", |  | ||||||
|     "typescript": "^4.5.2", |  | ||||||
|     "unplugin-icons": "^0.12.18", |  | ||||||
|     "unplugin-vue-components": "^0.17.2", |  | ||||||
|     "vite": "~2.5.10", |  | ||||||
|     "vite-plugin-html": "^2.1.1", |  | ||||||
|     "vite-plugin-windicss": "^1.5.1", |  | ||||||
|     "vue-tsc": "^0.29.6", |  | ||||||
|     "vueuc": "^0.4.15", |  | ||||||
|     "windicss": "^3.2.1" |  | ||||||
|   }, |  | ||||||
|   "homepage": "https://github.com/honghuangdc/soybean-admin", |   "homepage": "https://github.com/honghuangdc/soybean-admin", | ||||||
|   "repository": { |   "repository": { | ||||||
|     "type": "git", |     "url": "https://github.com/honghuangdc/soybean-admin.git" | ||||||
|     "url": "git+https://github.com/honghuangdc/soybean-admin.git" |  | ||||||
|   }, |   }, | ||||||
|   "bugs": { |   "bugs": { | ||||||
|     "url": "https://github.com/honghuangdc/soybean-admin/issues" |     "url": "https://github.com/honghuangdc/soybean-admin/issues" | ||||||
|  |   }, | ||||||
|  |   "keywords": [ | ||||||
|  |     "Vue", | ||||||
|  |     "Vue3", | ||||||
|  |     "admin", | ||||||
|  |     "admin-template", | ||||||
|  |     "vue-admin", | ||||||
|  |     "vue-admin-template", | ||||||
|  |     "Vite3", | ||||||
|  |     "Vite", | ||||||
|  |     "vite-admin", | ||||||
|  |     "TypeScript", | ||||||
|  |     "TS", | ||||||
|  |     "NaiveUI", | ||||||
|  |     "naive-ui", | ||||||
|  |     "naive-admin", | ||||||
|  |     "NaiveUI-Admin", | ||||||
|  |     "naive-ui-admin", | ||||||
|  |     "UnoCSS" | ||||||
|  |   ], | ||||||
|  |   "scripts": { | ||||||
|  |     "dev": "cross-env VITE_SERVICE_ENV=dev vite", | ||||||
|  |     "dev:test": "cross-env VITE_SERVICE_ENV=test vite", | ||||||
|  |     "dev:prod": "cross-env VITE_SERVICE_ENV=prod vite", | ||||||
|  |     "build": "npm run typecheck && cross-env VITE_SERVICE_ENV=prod vite build", | ||||||
|  |     "build:dev": "npm run typecheck && cross-env VITE_SERVICE_ENV=dev vite build", | ||||||
|  |     "build:test": "npm run typecheck && cross-env VITE_SERVICE_ENV=test vite build", | ||||||
|  |     "build:vercel": "cross-env VITE_HASH_ROUTE=Y VITE_VERCEL=Y vite build", | ||||||
|  |     "preview": "vite preview", | ||||||
|  |     "typecheck": "vue-tsc --noEmit --skipLibCheck", | ||||||
|  |     "lint": "eslint . --fix", | ||||||
|  |     "commit": "soy git-commit", | ||||||
|  |     "cleanup": "soy cleanup", | ||||||
|  |     "update-pkg": "soy update-pkg", | ||||||
|  |     "tsx": "tsx", | ||||||
|  |     "logo": "tsx ./scripts/logo.ts", | ||||||
|  |     "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s", | ||||||
|  |     "release": "standard-version", | ||||||
|  |     "prepare": "simple-git-hooks" | ||||||
|  |   }, | ||||||
|  |   "dependencies": { | ||||||
|  |     "@antv/data-set": "^0.11.8", | ||||||
|  |     "@antv/g2": "^4.2.8", | ||||||
|  |     "@better-scroll/core": "^2.5.0", | ||||||
|  |     "@soybeanjs/vue-admin-layout": "^1.1.1", | ||||||
|  |     "@soybeanjs/vue-admin-tab": "^1.0.5", | ||||||
|  |     "@vueuse/core": "^9.10.0", | ||||||
|  |     "axios": "0.27.2", | ||||||
|  |     "clipboard": "^2.0.11", | ||||||
|  |     "colord": "^2.9.3", | ||||||
|  |     "crypto-js": "^4.1.1", | ||||||
|  |     "dayjs": "^1.11.7", | ||||||
|  |     "echarts": "^5.4.1", | ||||||
|  |     "form-data": "^4.0.0", | ||||||
|  |     "lodash-es": "^4.17.21", | ||||||
|  |     "naive-ui": "2.34.3", | ||||||
|  |     "pinia": "^2.0.28", | ||||||
|  |     "print-js": "^1.6.0", | ||||||
|  |     "qs": "^6.11.0", | ||||||
|  |     "swiper": "^8.4.5", | ||||||
|  |     "ua-parser-js": "^1.0.32", | ||||||
|  |     "vditor": "^3.9.0", | ||||||
|  |     "vue": "3.2.45", | ||||||
|  |     "vue-i18n": "^9.2.2", | ||||||
|  |     "vue-router": "^4.1.6", | ||||||
|  |     "vuedraggable": "^4.1.0", | ||||||
|  |     "wangeditor": "^4.7.15", | ||||||
|  |     "xgplayer": "^2.32.2" | ||||||
|  |   }, | ||||||
|  |   "devDependencies": { | ||||||
|  |     "@amap/amap-jsapi-types": "^0.0.10", | ||||||
|  |     "@iconify/json": "^2.2.7", | ||||||
|  |     "@iconify/vue": "^4.0.2", | ||||||
|  |     "@soybeanjs/cli": "^0.1.6", | ||||||
|  |     "@soybeanjs/vite-plugin-vue-page-route": "^0.0.5", | ||||||
|  |     "@types/bmapgl": "^0.0.5", | ||||||
|  |     "@types/crypto-js": "^4.1.1", | ||||||
|  |     "@types/node": "18.11.18", | ||||||
|  |     "@types/qs": "^6.9.7", | ||||||
|  |     "@types/ua-parser-js": "^0.7.36", | ||||||
|  |     "@unocss/preset-uno": "^0.48.4", | ||||||
|  |     "@unocss/vite": "^0.48.4", | ||||||
|  |     "@vitejs/plugin-vue": "^4.0.0", | ||||||
|  |     "@vitejs/plugin-vue-jsx": "^3.0.0", | ||||||
|  |     "conventional-changelog": "^3.1.25", | ||||||
|  |     "cross-env": "^7.0.3", | ||||||
|  |     "eslint": "^8.32.0", | ||||||
|  |     "eslint-config-soybeanjs-vue": "^0.2.2", | ||||||
|  |     "lint-staged": "12.5.0", | ||||||
|  |     "mockjs": "^1.1.0", | ||||||
|  |     "node-html-to-image": "^3.2.4", | ||||||
|  |     "rollup-plugin-visualizer": "^5.9.0", | ||||||
|  |     "sass": "^1.57.1", | ||||||
|  |     "simple-git-hooks": "^2.8.1", | ||||||
|  |     "standard-version": "^9.5.0", | ||||||
|  |     "tsx": "^3.12.2", | ||||||
|  |     "typescript": "4.9.4", | ||||||
|  |     "unplugin-icons": "^0.15.1", | ||||||
|  |     "unplugin-vue-components": "0.22.12", | ||||||
|  |     "unplugin-vue-macros": "^1.3.3", | ||||||
|  |     "utility-types": "^3.10.0", | ||||||
|  |     "vite": "^4.0.4", | ||||||
|  |     "vite-plugin-compression": "^0.5.1", | ||||||
|  |     "vite-plugin-html": "^3.2.0", | ||||||
|  |     "vite-plugin-mock": "^2.9.6", | ||||||
|  |     "vite-plugin-progress": "^0.0.6", | ||||||
|  |     "vite-plugin-pwa": "^0.14.1", | ||||||
|  |     "vite-plugin-svg-icons": "^2.0.1", | ||||||
|  |     "vue-tsc": "^1.0.24" | ||||||
|  |   }, | ||||||
|  |   "pnpm": { | ||||||
|  |     "patchedDependencies": { | ||||||
|  |       "mockjs@1.1.0": "patches/mockjs@1.1.0.patch" | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   "simple-git-hooks": { | ||||||
|  |     "commit-msg": "pnpm soy git-commit-verify", | ||||||
|  |     "pre-commit": "pnpm typecheck && pnpm lint-staged" | ||||||
|  |   }, | ||||||
|  |   "lint-staged": { | ||||||
|  |     "*": "eslint . --fix" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										732
									
								
								patches/mockjs@1.1.0.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,732 @@ | |||||||
|  | diff --git a/dist/mock.js b/dist/mock.js | ||||||
|  | index 35d5b9af3eff34324656879705dcb81470fc9697..3e6a52e0fbfdd39d3aaf1592ffd19ecde33320f3 100644 | ||||||
|  | --- a/dist/mock.js | ||||||
|  | +++ b/dist/mock.js | ||||||
|  | @@ -126,17 +126,17 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  /* 1 */ | ||||||
|  |  /***/ (function(module, exports, __webpack_require__) { | ||||||
|  |   | ||||||
|  | -	/*  | ||||||
|  | +	/* | ||||||
|  |  	    ## Handler | ||||||
|  |   | ||||||
|  |  	    处理数据模板。 | ||||||
|  | -	     | ||||||
|  | + | ||||||
|  |  	    * Handler.gen( template, name?, context? ) | ||||||
|  |   | ||||||
|  |  	        入口方法。 | ||||||
|  |   | ||||||
|  |  	    * Data Template Definition, DTD | ||||||
|  | -	         | ||||||
|  | + | ||||||
|  |  	        处理数据模板定义。 | ||||||
|  |   | ||||||
|  |  	        * Handler.array( options ) | ||||||
|  | @@ -146,7 +146,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	        * Handler.string( options ) | ||||||
|  |  	        * Handler.function( options ) | ||||||
|  |  	        * Handler.regexp( options ) | ||||||
|  | -	         | ||||||
|  | + | ||||||
|  |  	        处理路径(相对和绝对)。 | ||||||
|  |   | ||||||
|  |  	        * Handler.getValueByKeyPath( key, options ) | ||||||
|  | @@ -177,7 +177,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |   | ||||||
|  |  	    Handle.gen(template, name, options) | ||||||
|  |  	    context | ||||||
|  | -	        currentContext, templateCurrentContext,  | ||||||
|  | +	        currentContext, templateCurrentContext, | ||||||
|  |  	        path, templatePath | ||||||
|  |  	        root, templateRoot | ||||||
|  |  	*/ | ||||||
|  | @@ -456,7 +456,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	                phed = Handler.placeholder(ph, options.context.currentContext, options.context.templateCurrentContext, options) | ||||||
|  |   | ||||||
|  |  	                // 只有一个占位符,并且没有其他字符 | ||||||
|  | -	                if (placeholders.length === 1 && ph === result && typeof phed !== typeof result) { //  | ||||||
|  | +	                if (placeholders.length === 1 && ph === result && typeof phed !== typeof result) { // | ||||||
|  |  	                    result = phed | ||||||
|  |  	                    break | ||||||
|  |   | ||||||
|  | @@ -627,7 +627,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	            } | ||||||
|  |  	            // 引用的值已经计算好 | ||||||
|  |  	            if (currentContext && (key in currentContext)) return currentContext[key] | ||||||
|  | -	     | ||||||
|  | + | ||||||
|  |  	            // 尚未计算,递归引用数据模板中的属性 | ||||||
|  |  	            if (templateCurrentContext && | ||||||
|  |  	                (typeof templateCurrentContext === 'object') && | ||||||
|  | @@ -816,13 +816,13 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	        var tpl = Mock.heredoc(function() { | ||||||
|  |  	            /*! | ||||||
|  |  	        {{email}}{{age}} | ||||||
|  | -	        <!-- Mock {  | ||||||
|  | +	        <!-- Mock { | ||||||
|  |  	            email: '@EMAIL', | ||||||
|  |  	            age: '@INT(1,100)' | ||||||
|  |  	        } --> | ||||||
|  |  	            *\/ | ||||||
|  |  	        }) | ||||||
|  | -	     | ||||||
|  | + | ||||||
|  |  	    **相关阅读** | ||||||
|  |  	    * [Creating multiline strings in JavaScript](http://stackoverflow.com/questions/805107/creating-multiline-strings-in-javascript)、 | ||||||
|  |  	*/ | ||||||
|  | @@ -850,7 +850,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  		解析数据模板(属性名部分)。 | ||||||
|  |   | ||||||
|  |  		* Parser.parse( name ) | ||||||
|  | -			 | ||||||
|  | + | ||||||
|  |  			```json | ||||||
|  |  			{ | ||||||
|  |  				parameters: [ name, inc, range, decimal ], | ||||||
|  | @@ -922,7 +922,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |   | ||||||
|  |  	/* | ||||||
|  |  	    ## Mock.Random | ||||||
|  | -	     | ||||||
|  | + | ||||||
|  |  	    工具类,用于生成各种随机数据。 | ||||||
|  |  	*/ | ||||||
|  |   | ||||||
|  | @@ -1251,7 +1251,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |   | ||||||
|  |  	        替代图片源 | ||||||
|  |  	            http://fpoimg.com/ | ||||||
|  | -	        参考自  | ||||||
|  | +	        参考自 | ||||||
|  |  	            http://rensanning.iteye.com/blog/1933310 | ||||||
|  |  	            http://code.tutsplus.com/articles/the-top-8-placeholders-for-web-designers--net-19485 | ||||||
|  |  	    */ | ||||||
|  | @@ -1541,7 +1541,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	        var bg_colour = Math.floor(Math.random() * 16777215).toString(16); | ||||||
|  |  	        bg_colour = "#" + ("000000" + bg_colour).slice(-6); | ||||||
|  |  	        document.bgColor = bg_colour; | ||||||
|  | -	     | ||||||
|  | + | ||||||
|  |  	    http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/ | ||||||
|  |  	        Creating random colors is actually more difficult than it seems. The randomness itself is easy, but aesthetically pleasing randomness is more difficult. | ||||||
|  |  	        https://github.com/devongovett/color-generator | ||||||
|  | @@ -1561,7 +1561,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |   | ||||||
|  |  	    http://tool.c7sky.com/webcolor | ||||||
|  |  	        网页设计常用色彩搭配表 | ||||||
|  | -	     | ||||||
|  | + | ||||||
|  |  	    https://github.com/One-com/one-color | ||||||
|  |  	        An OO-based JavaScript color parser/computation toolkit with support for RGB, HSV, HSL, CMYK, and alpha channels. | ||||||
|  |  	        API 很赞 | ||||||
|  | @@ -1593,7 +1593,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	            color += letters[Math.floor(Math.random() * 16)] | ||||||
|  |  	        } | ||||||
|  |  	        return color | ||||||
|  | -	     | ||||||
|  | + | ||||||
|  |  	        // 随机生成一个无脑的颜色,格式为 '#RRGGBB'。 | ||||||
|  |  	        // _brainlessColor() | ||||||
|  |  	        var color = Math.floor( | ||||||
|  | @@ -1959,7 +1959,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	        } | ||||||
|  |  	        return result.join(' ') | ||||||
|  |  	    }, | ||||||
|  | -	    //  | ||||||
|  | +	    // | ||||||
|  |  	    cparagraph: function(min, max) { | ||||||
|  |  	        var len = range(3, 7, min, max) | ||||||
|  |  	        var result = [] | ||||||
|  | @@ -2282,17 +2282,17 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	        随机生成一个 URL。 | ||||||
|  |   | ||||||
|  |  	        [URL 规范](http://www.w3.org/Addressing/URL/url-spec.txt) | ||||||
|  | -	            http                    Hypertext Transfer Protocol  | ||||||
|  | -	            ftp                     File Transfer protocol  | ||||||
|  | -	            gopher                  The Gopher protocol  | ||||||
|  | -	            mailto                  Electronic mail address  | ||||||
|  | -	            mid                     Message identifiers for electronic mail  | ||||||
|  | -	            cid                     Content identifiers for MIME body part  | ||||||
|  | -	            news                    Usenet news  | ||||||
|  | -	            nntp                    Usenet news for local NNTP access only  | ||||||
|  | -	            prospero                Access using the prospero protocols  | ||||||
|  | +	            http                    Hypertext Transfer Protocol | ||||||
|  | +	            ftp                     File Transfer protocol | ||||||
|  | +	            gopher                  The Gopher protocol | ||||||
|  | +	            mailto                  Electronic mail address | ||||||
|  | +	            mid                     Message identifiers for electronic mail | ||||||
|  | +	            cid                     Content identifiers for MIME body part | ||||||
|  | +	            news                    Usenet news | ||||||
|  | +	            nntp                    Usenet news for local NNTP access only | ||||||
|  | +	            prospero                Access using the prospero protocols | ||||||
|  |  	            telnet rlogin tn3270    Reference to interactive sessions | ||||||
|  | -	            wais                    Wide Area Information Servers  | ||||||
|  | +	            wais                    Wide Area Information Servers | ||||||
|  |  	    */ | ||||||
|  |  	    url: function(protocol, host) { | ||||||
|  |  	        return (protocol || this.protocol()) + '://' + // protocol? | ||||||
|  | @@ -2422,9 +2422,9 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	    西南   重庆市 四川省 贵州省 云南省 西藏自治区 | ||||||
|  |  	    西北   陕西省 甘肃省 青海省 宁夏回族自治区 新疆维吾尔自治区 | ||||||
|  |  	    港澳台 香港特别行政区 澳门特别行政区 台湾省 | ||||||
|  | -	     | ||||||
|  | + | ||||||
|  |  	    **排序** | ||||||
|  | -	     | ||||||
|  | + | ||||||
|  |  	    ```js | ||||||
|  |  	    var map = {} | ||||||
|  |  	    _.each(_.keys(REGIONS),function(id){ | ||||||
|  | @@ -6527,7 +6527,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  		                "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" / | ||||||
|  |  		                "a" / "b" / "c" / "d" / "e" / "f" / | ||||||
|  |  		                "A" / "B" / "C" / "D" / "E" / "F" | ||||||
|  | -		     | ||||||
|  | + | ||||||
|  |  		    https://github.com/victorquinn/chancejs/blob/develop/chance.js#L1349 | ||||||
|  |  		*/ | ||||||
|  |  		guid: function() { | ||||||
|  | @@ -6629,7 +6629,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  |  	function CaptureGroup(n) { | ||||||
|  | -	    Group.call(this, "capture-group"), this.index = cgs[this.offset] || (cgs[this.offset] = index++),  | ||||||
|  | +	    Group.call(this, "capture-group"), this.index = cgs[this.offset] || (cgs[this.offset] = index++), | ||||||
|  |  	    this.body = n; | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  | @@ -6711,7 +6711,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	            } | ||||||
|  |  	            return r = l ? '"' + u(l) + '"' : "end of input", "Expected " + t + " but " + r + " found."; | ||||||
|  |  	        } | ||||||
|  | -	        this.expected = n, this.found = l, this.offset = u, this.line = t, this.column = r,  | ||||||
|  | +	        this.expected = n, this.found = l, this.offset = u, this.line = t, this.column = r, | ||||||
|  |  	        this.name = "SyntaxError", this.message = e(n, l); | ||||||
|  |  	    } | ||||||
|  |  	    function u(n) { | ||||||
|  | @@ -6724,8 +6724,8 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	        function r(l) { | ||||||
|  |  	            function u(l, u, t) { | ||||||
|  |  	                var r, e; | ||||||
|  | -	                for (r = u; t > r; r++) e = n.charAt(r), "\n" === e ? (l.seenCR || l.line++, l.column = 1,  | ||||||
|  | -	                l.seenCR = !1) : "\r" === e || "\u2028" === e || "\u2029" === e ? (l.line++, l.column = 1,  | ||||||
|  | +	                for (r = u; t > r; r++) e = n.charAt(r), "\n" === e ? (l.seenCR || l.line++, l.column = 1, | ||||||
|  | +	                l.seenCR = !1) : "\r" === e || "\u2028" === e || "\u2029" === e ? (l.line++, l.column = 1, | ||||||
|  |  	                l.seenCR = !0) : (l.column++, l.seenCR = !1); | ||||||
|  |  	            } | ||||||
|  |  	            return Mt !== l && (Mt > l && (Mt = 0, Dt = { | ||||||
|  | @@ -6743,19 +6743,19 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	        } | ||||||
|  |  	        function c() { | ||||||
|  |  	            var l, u, t, r, o; | ||||||
|  | -	            return l = qt, u = i(), null !== u ? (t = qt, 124 === n.charCodeAt(qt) ? (r = fl,  | ||||||
|  | -	            qt++) : (r = null, 0 === Wt && e(sl)), null !== r ? (o = c(), null !== o ? (r = [ r, o ],  | ||||||
|  | -	            t = r) : (qt = t, t = il)) : (qt = t, t = il), null === t && (t = al), null !== t ? (Lt = l,  | ||||||
|  | -	            u = hl(u, t), null === u ? (qt = l, l = u) : l = u) : (qt = l, l = il)) : (qt = l,  | ||||||
|  | +	            return l = qt, u = i(), null !== u ? (t = qt, 124 === n.charCodeAt(qt) ? (r = fl, | ||||||
|  | +	            qt++) : (r = null, 0 === Wt && e(sl)), null !== r ? (o = c(), null !== o ? (r = [ r, o ], | ||||||
|  | +	            t = r) : (qt = t, t = il)) : (qt = t, t = il), null === t && (t = al), null !== t ? (Lt = l, | ||||||
|  | +	            u = hl(u, t), null === u ? (qt = l, l = u) : l = u) : (qt = l, l = il)) : (qt = l, | ||||||
|  |  	            l = il), l; | ||||||
|  |  	        } | ||||||
|  |  	        function i() { | ||||||
|  |  	            var n, l, u, t, r; | ||||||
|  | -	            if (n = qt, l = f(), null === l && (l = al), null !== l) if (u = qt, Wt++, t = d(),  | ||||||
|  | +	            if (n = qt, l = f(), null === l && (l = al), null !== l) if (u = qt, Wt++, t = d(), | ||||||
|  |  	            Wt--, null === t ? u = al : (qt = u, u = il), null !== u) { | ||||||
|  | -	                for (t = [], r = h(), null === r && (r = a()); null !== r; ) t.push(r), r = h(),  | ||||||
|  | +	                for (t = [], r = h(), null === r && (r = a()); null !== r; ) t.push(r), r = h(), | ||||||
|  |  	                null === r && (r = a()); | ||||||
|  | -	                null !== t ? (r = s(), null === r && (r = al), null !== r ? (Lt = n, l = dl(l, t, r),  | ||||||
|  | +	                null !== t ? (r = s(), null === r && (r = al), null !== r ? (Lt = n, l = dl(l, t, r), | ||||||
|  |  	                null === l ? (qt = n, n = l) : n = l) : (qt = n, n = il)) : (qt = n, n = il); | ||||||
|  |  	            } else qt = n, n = il; else qt = n, n = il; | ||||||
|  |  	            return n; | ||||||
|  | @@ -6766,148 +6766,148 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	        } | ||||||
|  |  	        function f() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, 94 === n.charCodeAt(qt) ? (u = pl, qt++) : (u = null, 0 === Wt && e(vl)),  | ||||||
|  | +	            return l = qt, 94 === n.charCodeAt(qt) ? (u = pl, qt++) : (u = null, 0 === Wt && e(vl)), | ||||||
|  |  	            null !== u && (Lt = l, u = wl()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function s() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, 36 === n.charCodeAt(qt) ? (u = Al, qt++) : (u = null, 0 === Wt && e(Cl)),  | ||||||
|  | +	            return l = qt, 36 === n.charCodeAt(qt) ? (u = Al, qt++) : (u = null, 0 === Wt && e(Cl)), | ||||||
|  |  	            null !== u && (Lt = l, u = gl()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function h() { | ||||||
|  |  	            var n, l, u; | ||||||
|  | -	            return n = qt, l = a(), null !== l ? (u = d(), null !== u ? (Lt = n, l = bl(l, u),  | ||||||
|  | +	            return n = qt, l = a(), null !== l ? (u = d(), null !== u ? (Lt = n, l = bl(l, u), | ||||||
|  |  	            null === l ? (qt = n, n = l) : n = l) : (qt = n, n = il)) : (qt = n, n = il), n; | ||||||
|  |  	        } | ||||||
|  |  	        function d() { | ||||||
|  |  	            var n, l, u; | ||||||
|  | -	            return Wt++, n = qt, l = p(), null !== l ? (u = k(), null === u && (u = al), null !== u ? (Lt = n,  | ||||||
|  | -	            l = Tl(l, u), null === l ? (qt = n, n = l) : n = l) : (qt = n, n = il)) : (qt = n,  | ||||||
|  | +	            return Wt++, n = qt, l = p(), null !== l ? (u = k(), null === u && (u = al), null !== u ? (Lt = n, | ||||||
|  | +	            l = Tl(l, u), null === l ? (qt = n, n = l) : n = l) : (qt = n, n = il)) : (qt = n, | ||||||
|  |  	            n = il), Wt--, null === n && (l = null, 0 === Wt && e(kl)), n; | ||||||
|  |  	        } | ||||||
|  |  	        function p() { | ||||||
|  |  	            var n; | ||||||
|  | -	            return n = v(), null === n && (n = w(), null === n && (n = A(), null === n && (n = C(),  | ||||||
|  | +	            return n = v(), null === n && (n = w(), null === n && (n = A(), null === n && (n = C(), | ||||||
|  |  	            null === n && (n = g(), null === n && (n = b()))))), n; | ||||||
|  |  	        } | ||||||
|  |  	        function v() { | ||||||
|  |  	            var l, u, t, r, o, c; | ||||||
|  | -	            return l = qt, 123 === n.charCodeAt(qt) ? (u = xl, qt++) : (u = null, 0 === Wt && e(yl)),  | ||||||
|  | -	            null !== u ? (t = T(), null !== t ? (44 === n.charCodeAt(qt) ? (r = ml, qt++) : (r = null,  | ||||||
|  | -	            0 === Wt && e(Rl)), null !== r ? (o = T(), null !== o ? (125 === n.charCodeAt(qt) ? (c = Fl,  | ||||||
|  | -	            qt++) : (c = null, 0 === Wt && e(Ql)), null !== c ? (Lt = l, u = Sl(t, o), null === u ? (qt = l,  | ||||||
|  | -	            l = u) : l = u) : (qt = l, l = il)) : (qt = l, l = il)) : (qt = l, l = il)) : (qt = l,  | ||||||
|  | +	            return l = qt, 123 === n.charCodeAt(qt) ? (u = xl, qt++) : (u = null, 0 === Wt && e(yl)), | ||||||
|  | +	            null !== u ? (t = T(), null !== t ? (44 === n.charCodeAt(qt) ? (r = ml, qt++) : (r = null, | ||||||
|  | +	            0 === Wt && e(Rl)), null !== r ? (o = T(), null !== o ? (125 === n.charCodeAt(qt) ? (c = Fl, | ||||||
|  | +	            qt++) : (c = null, 0 === Wt && e(Ql)), null !== c ? (Lt = l, u = Sl(t, o), null === u ? (qt = l, | ||||||
|  | +	            l = u) : l = u) : (qt = l, l = il)) : (qt = l, l = il)) : (qt = l, l = il)) : (qt = l, | ||||||
|  |  	            l = il)) : (qt = l, l = il), l; | ||||||
|  |  	        } | ||||||
|  |  	        function w() { | ||||||
|  |  	            var l, u, t, r; | ||||||
|  | -	            return l = qt, 123 === n.charCodeAt(qt) ? (u = xl, qt++) : (u = null, 0 === Wt && e(yl)),  | ||||||
|  | -	            null !== u ? (t = T(), null !== t ? (n.substr(qt, 2) === Ul ? (r = Ul, qt += 2) : (r = null,  | ||||||
|  | -	            0 === Wt && e(El)), null !== r ? (Lt = l, u = Gl(t), null === u ? (qt = l, l = u) : l = u) : (qt = l,  | ||||||
|  | +	            return l = qt, 123 === n.charCodeAt(qt) ? (u = xl, qt++) : (u = null, 0 === Wt && e(yl)), | ||||||
|  | +	            null !== u ? (t = T(), null !== t ? (n.substr(qt, 2) === Ul ? (r = Ul, qt += 2) : (r = null, | ||||||
|  | +	            0 === Wt && e(El)), null !== r ? (Lt = l, u = Gl(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, | ||||||
|  |  	            l = il)) : (qt = l, l = il)) : (qt = l, l = il), l; | ||||||
|  |  	        } | ||||||
|  |  	        function A() { | ||||||
|  |  	            var l, u, t, r; | ||||||
|  | -	            return l = qt, 123 === n.charCodeAt(qt) ? (u = xl, qt++) : (u = null, 0 === Wt && e(yl)),  | ||||||
|  | -	            null !== u ? (t = T(), null !== t ? (125 === n.charCodeAt(qt) ? (r = Fl, qt++) : (r = null,  | ||||||
|  | -	            0 === Wt && e(Ql)), null !== r ? (Lt = l, u = Bl(t), null === u ? (qt = l, l = u) : l = u) : (qt = l,  | ||||||
|  | +	            return l = qt, 123 === n.charCodeAt(qt) ? (u = xl, qt++) : (u = null, 0 === Wt && e(yl)), | ||||||
|  | +	            null !== u ? (t = T(), null !== t ? (125 === n.charCodeAt(qt) ? (r = Fl, qt++) : (r = null, | ||||||
|  | +	            0 === Wt && e(Ql)), null !== r ? (Lt = l, u = Bl(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, | ||||||
|  |  	            l = il)) : (qt = l, l = il)) : (qt = l, l = il), l; | ||||||
|  |  	        } | ||||||
|  |  	        function C() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, 43 === n.charCodeAt(qt) ? (u = jl, qt++) : (u = null, 0 === Wt && e($l)),  | ||||||
|  | +	            return l = qt, 43 === n.charCodeAt(qt) ? (u = jl, qt++) : (u = null, 0 === Wt && e($l)), | ||||||
|  |  	            null !== u && (Lt = l, u = ql()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function g() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, 42 === n.charCodeAt(qt) ? (u = Ll, qt++) : (u = null, 0 === Wt && e(Ml)),  | ||||||
|  | +	            return l = qt, 42 === n.charCodeAt(qt) ? (u = Ll, qt++) : (u = null, 0 === Wt && e(Ml)), | ||||||
|  |  	            null !== u && (Lt = l, u = Dl()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function b() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, 63 === n.charCodeAt(qt) ? (u = Hl, qt++) : (u = null, 0 === Wt && e(Ol)),  | ||||||
|  | +	            return l = qt, 63 === n.charCodeAt(qt) ? (u = Hl, qt++) : (u = null, 0 === Wt && e(Ol)), | ||||||
|  |  	            null !== u && (Lt = l, u = Wl()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function k() { | ||||||
|  |  	            var l; | ||||||
|  | -	            return 63 === n.charCodeAt(qt) ? (l = Hl, qt++) : (l = null, 0 === Wt && e(Ol)),  | ||||||
|  | +	            return 63 === n.charCodeAt(qt) ? (l = Hl, qt++) : (l = null, 0 === Wt && e(Ol)), | ||||||
|  |  	            l; | ||||||
|  |  	        } | ||||||
|  |  	        function T() { | ||||||
|  |  	            var l, u, t; | ||||||
|  | -	            if (l = qt, u = [], zl.test(n.charAt(qt)) ? (t = n.charAt(qt), qt++) : (t = null,  | ||||||
|  | -	            0 === Wt && e(Il)), null !== t) for (;null !== t; ) u.push(t), zl.test(n.charAt(qt)) ? (t = n.charAt(qt),  | ||||||
|  | +	            if (l = qt, u = [], zl.test(n.charAt(qt)) ? (t = n.charAt(qt), qt++) : (t = null, | ||||||
|  | +	            0 === Wt && e(Il)), null !== t) for (;null !== t; ) u.push(t), zl.test(n.charAt(qt)) ? (t = n.charAt(qt), | ||||||
|  |  	            qt++) : (t = null, 0 === Wt && e(Il)); else u = il; | ||||||
|  | -	            return null !== u && (Lt = l, u = Jl(u)), null === u ? (qt = l, l = u) : l = u,  | ||||||
|  | +	            return null !== u && (Lt = l, u = Jl(u)), null === u ? (qt = l, l = u) : l = u, | ||||||
|  |  	            l; | ||||||
|  |  	        } | ||||||
|  |  	        function x() { | ||||||
|  |  	            var l, u, t, r; | ||||||
|  | -	            return l = qt, 40 === n.charCodeAt(qt) ? (u = Kl, qt++) : (u = null, 0 === Wt && e(Nl)),  | ||||||
|  | -	            null !== u ? (t = R(), null === t && (t = F(), null === t && (t = m(), null === t && (t = y()))),  | ||||||
|  | -	            null !== t ? (41 === n.charCodeAt(qt) ? (r = Pl, qt++) : (r = null, 0 === Wt && e(Vl)),  | ||||||
|  | -	            null !== r ? (Lt = l, u = Xl(t), null === u ? (qt = l, l = u) : l = u) : (qt = l,  | ||||||
|  | +	            return l = qt, 40 === n.charCodeAt(qt) ? (u = Kl, qt++) : (u = null, 0 === Wt && e(Nl)), | ||||||
|  | +	            null !== u ? (t = R(), null === t && (t = F(), null === t && (t = m(), null === t && (t = y()))), | ||||||
|  | +	            null !== t ? (41 === n.charCodeAt(qt) ? (r = Pl, qt++) : (r = null, 0 === Wt && e(Vl)), | ||||||
|  | +	            null !== r ? (Lt = l, u = Xl(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, | ||||||
|  |  	            l = il)) : (qt = l, l = il)) : (qt = l, l = il), l; | ||||||
|  |  	        } | ||||||
|  |  	        function y() { | ||||||
|  |  	            var n, l; | ||||||
|  | -	            return n = qt, l = c(), null !== l && (Lt = n, l = Yl(l)), null === l ? (qt = n,  | ||||||
|  | +	            return n = qt, l = c(), null !== l && (Lt = n, l = Yl(l)), null === l ? (qt = n, | ||||||
|  |  	            n = l) : n = l, n; | ||||||
|  |  	        } | ||||||
|  |  	        function m() { | ||||||
|  |  	            var l, u, t; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === Zl ? (u = Zl, qt += 2) : (u = null, 0 === Wt && e(_l)),  | ||||||
|  | -	            null !== u ? (t = c(), null !== t ? (Lt = l, u = nu(t), null === u ? (qt = l, l = u) : l = u) : (qt = l,  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === Zl ? (u = Zl, qt += 2) : (u = null, 0 === Wt && e(_l)), | ||||||
|  | +	            null !== u ? (t = c(), null !== t ? (Lt = l, u = nu(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, | ||||||
|  |  	            l = il)) : (qt = l, l = il), l; | ||||||
|  |  	        } | ||||||
|  |  	        function R() { | ||||||
|  |  	            var l, u, t; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === lu ? (u = lu, qt += 2) : (u = null, 0 === Wt && e(uu)),  | ||||||
|  | -	            null !== u ? (t = c(), null !== t ? (Lt = l, u = tu(t), null === u ? (qt = l, l = u) : l = u) : (qt = l,  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === lu ? (u = lu, qt += 2) : (u = null, 0 === Wt && e(uu)), | ||||||
|  | +	            null !== u ? (t = c(), null !== t ? (Lt = l, u = tu(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, | ||||||
|  |  	            l = il)) : (qt = l, l = il), l; | ||||||
|  |  	        } | ||||||
|  |  	        function F() { | ||||||
|  |  	            var l, u, t; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === ru ? (u = ru, qt += 2) : (u = null, 0 === Wt && e(eu)),  | ||||||
|  | -	            null !== u ? (t = c(), null !== t ? (Lt = l, u = ou(t), null === u ? (qt = l, l = u) : l = u) : (qt = l,  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === ru ? (u = ru, qt += 2) : (u = null, 0 === Wt && e(eu)), | ||||||
|  | +	            null !== u ? (t = c(), null !== t ? (Lt = l, u = ou(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, | ||||||
|  |  	            l = il)) : (qt = l, l = il), l; | ||||||
|  |  	        } | ||||||
|  |  	        function Q() { | ||||||
|  |  	            var l, u, t, r, o; | ||||||
|  | -	            if (Wt++, l = qt, 91 === n.charCodeAt(qt) ? (u = iu, qt++) : (u = null, 0 === Wt && e(au)),  | ||||||
|  | -	            null !== u) if (94 === n.charCodeAt(qt) ? (t = pl, qt++) : (t = null, 0 === Wt && e(vl)),  | ||||||
|  | +	            if (Wt++, l = qt, 91 === n.charCodeAt(qt) ? (u = iu, qt++) : (u = null, 0 === Wt && e(au)), | ||||||
|  | +	            null !== u) if (94 === n.charCodeAt(qt) ? (t = pl, qt++) : (t = null, 0 === Wt && e(vl)), | ||||||
|  |  	            null === t && (t = al), null !== t) { | ||||||
|  | -	                for (r = [], o = S(), null === o && (o = U()); null !== o; ) r.push(o), o = S(),  | ||||||
|  | +	                for (r = [], o = S(), null === o && (o = U()); null !== o; ) r.push(o), o = S(), | ||||||
|  |  	                null === o && (o = U()); | ||||||
|  | -	                null !== r ? (93 === n.charCodeAt(qt) ? (o = fu, qt++) : (o = null, 0 === Wt && e(su)),  | ||||||
|  | -	                null !== o ? (Lt = l, u = hu(t, r), null === u ? (qt = l, l = u) : l = u) : (qt = l,  | ||||||
|  | +	                null !== r ? (93 === n.charCodeAt(qt) ? (o = fu, qt++) : (o = null, 0 === Wt && e(su)), | ||||||
|  | +	                null !== o ? (Lt = l, u = hu(t, r), null === u ? (qt = l, l = u) : l = u) : (qt = l, | ||||||
|  |  	                l = il)) : (qt = l, l = il); | ||||||
|  |  	            } else qt = l, l = il; else qt = l, l = il; | ||||||
|  |  	            return Wt--, null === l && (u = null, 0 === Wt && e(cu)), l; | ||||||
|  |  	        } | ||||||
|  |  	        function S() { | ||||||
|  |  	            var l, u, t, r; | ||||||
|  | -	            return Wt++, l = qt, u = U(), null !== u ? (45 === n.charCodeAt(qt) ? (t = pu, qt++) : (t = null,  | ||||||
|  | -	            0 === Wt && e(vu)), null !== t ? (r = U(), null !== r ? (Lt = l, u = wu(u, r), null === u ? (qt = l,  | ||||||
|  | -	            l = u) : l = u) : (qt = l, l = il)) : (qt = l, l = il)) : (qt = l, l = il), Wt--,  | ||||||
|  | +	            return Wt++, l = qt, u = U(), null !== u ? (45 === n.charCodeAt(qt) ? (t = pu, qt++) : (t = null, | ||||||
|  | +	            0 === Wt && e(vu)), null !== t ? (r = U(), null !== r ? (Lt = l, u = wu(u, r), null === u ? (qt = l, | ||||||
|  | +	            l = u) : l = u) : (qt = l, l = il)) : (qt = l, l = il)) : (qt = l, l = il), Wt--, | ||||||
|  |  	            null === l && (u = null, 0 === Wt && e(du)), l; | ||||||
|  |  	        } | ||||||
|  |  	        function U() { | ||||||
|  |  	            var n, l; | ||||||
|  | -	            return Wt++, n = G(), null === n && (n = E()), Wt--, null === n && (l = null, 0 === Wt && e(Au)),  | ||||||
|  | +	            return Wt++, n = G(), null === n && (n = E()), Wt--, null === n && (l = null, 0 === Wt && e(Au)), | ||||||
|  |  	            n; | ||||||
|  |  	        } | ||||||
|  |  	        function E() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, Cu.test(n.charAt(qt)) ? (u = n.charAt(qt), qt++) : (u = null, 0 === Wt && e(gu)),  | ||||||
|  | +	            return l = qt, Cu.test(n.charAt(qt)) ? (u = n.charAt(qt), qt++) : (u = null, 0 === Wt && e(gu)), | ||||||
|  |  	            null !== u && (Lt = l, u = bu(u)), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function G() { | ||||||
|  |  	            var n; | ||||||
|  | -	            return n = L(), null === n && (n = Y(), null === n && (n = H(), null === n && (n = O(),  | ||||||
|  | -	            null === n && (n = W(), null === n && (n = z(), null === n && (n = I(), null === n && (n = J(),  | ||||||
|  | -	            null === n && (n = K(), null === n && (n = N(), null === n && (n = P(), null === n && (n = V(),  | ||||||
|  | -	            null === n && (n = X(), null === n && (n = _(), null === n && (n = nl(), null === n && (n = ll(),  | ||||||
|  | +	            return n = L(), null === n && (n = Y(), null === n && (n = H(), null === n && (n = O(), | ||||||
|  | +	            null === n && (n = W(), null === n && (n = z(), null === n && (n = I(), null === n && (n = J(), | ||||||
|  | +	            null === n && (n = K(), null === n && (n = N(), null === n && (n = P(), null === n && (n = V(), | ||||||
|  | +	            null === n && (n = X(), null === n && (n = _(), null === n && (n = nl(), null === n && (n = ll(), | ||||||
|  |  	            null === n && (n = ul(), null === n && (n = tl()))))))))))))))))), n; | ||||||
|  |  	        } | ||||||
|  |  	        function B() { | ||||||
|  | @@ -6916,154 +6916,154 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	        } | ||||||
|  |  	        function j() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, 46 === n.charCodeAt(qt) ? (u = ku, qt++) : (u = null, 0 === Wt && e(Tu)),  | ||||||
|  | +	            return l = qt, 46 === n.charCodeAt(qt) ? (u = ku, qt++) : (u = null, 0 === Wt && e(Tu)), | ||||||
|  |  	            null !== u && (Lt = l, u = xu()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function $() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return Wt++, l = qt, mu.test(n.charAt(qt)) ? (u = n.charAt(qt), qt++) : (u = null,  | ||||||
|  | -	            0 === Wt && e(Ru)), null !== u && (Lt = l, u = bu(u)), null === u ? (qt = l, l = u) : l = u,  | ||||||
|  | +	            return Wt++, l = qt, mu.test(n.charAt(qt)) ? (u = n.charAt(qt), qt++) : (u = null, | ||||||
|  | +	            0 === Wt && e(Ru)), null !== u && (Lt = l, u = bu(u)), null === u ? (qt = l, l = u) : l = u, | ||||||
|  |  	            Wt--, null === l && (u = null, 0 === Wt && e(yu)), l; | ||||||
|  |  	        } | ||||||
|  |  	        function q() { | ||||||
|  |  	            var n; | ||||||
|  | -	            return n = M(), null === n && (n = D(), null === n && (n = Y(), null === n && (n = H(),  | ||||||
|  | -	            null === n && (n = O(), null === n && (n = W(), null === n && (n = z(), null === n && (n = I(),  | ||||||
|  | -	            null === n && (n = J(), null === n && (n = K(), null === n && (n = N(), null === n && (n = P(),  | ||||||
|  | -	            null === n && (n = V(), null === n && (n = X(), null === n && (n = Z(), null === n && (n = _(),  | ||||||
|  | -	            null === n && (n = nl(), null === n && (n = ll(), null === n && (n = ul(), null === n && (n = tl()))))))))))))))))))),  | ||||||
|  | +	            return n = M(), null === n && (n = D(), null === n && (n = Y(), null === n && (n = H(), | ||||||
|  | +	            null === n && (n = O(), null === n && (n = W(), null === n && (n = z(), null === n && (n = I(), | ||||||
|  | +	            null === n && (n = J(), null === n && (n = K(), null === n && (n = N(), null === n && (n = P(), | ||||||
|  | +	            null === n && (n = V(), null === n && (n = X(), null === n && (n = Z(), null === n && (n = _(), | ||||||
|  | +	            null === n && (n = nl(), null === n && (n = ll(), null === n && (n = ul(), null === n && (n = tl()))))))))))))))))))), | ||||||
|  |  	            n; | ||||||
|  |  	        } | ||||||
|  |  	        function L() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === Fu ? (u = Fu, qt += 2) : (u = null, 0 === Wt && e(Qu)),  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === Fu ? (u = Fu, qt += 2) : (u = null, 0 === Wt && e(Qu)), | ||||||
|  |  	            null !== u && (Lt = l, u = Su()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function M() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === Fu ? (u = Fu, qt += 2) : (u = null, 0 === Wt && e(Qu)),  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === Fu ? (u = Fu, qt += 2) : (u = null, 0 === Wt && e(Qu)), | ||||||
|  |  	            null !== u && (Lt = l, u = Uu()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function D() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === Eu ? (u = Eu, qt += 2) : (u = null, 0 === Wt && e(Gu)),  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === Eu ? (u = Eu, qt += 2) : (u = null, 0 === Wt && e(Gu)), | ||||||
|  |  	            null !== u && (Lt = l, u = Bu()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function H() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === ju ? (u = ju, qt += 2) : (u = null, 0 === Wt && e($u)),  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === ju ? (u = ju, qt += 2) : (u = null, 0 === Wt && e($u)), | ||||||
|  |  	            null !== u && (Lt = l, u = qu()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function O() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === Lu ? (u = Lu, qt += 2) : (u = null, 0 === Wt && e(Mu)),  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === Lu ? (u = Lu, qt += 2) : (u = null, 0 === Wt && e(Mu)), | ||||||
|  |  	            null !== u && (Lt = l, u = Du()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function W() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === Hu ? (u = Hu, qt += 2) : (u = null, 0 === Wt && e(Ou)),  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === Hu ? (u = Hu, qt += 2) : (u = null, 0 === Wt && e(Ou)), | ||||||
|  |  	            null !== u && (Lt = l, u = Wu()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function z() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === zu ? (u = zu, qt += 2) : (u = null, 0 === Wt && e(Iu)),  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === zu ? (u = zu, qt += 2) : (u = null, 0 === Wt && e(Iu)), | ||||||
|  |  	            null !== u && (Lt = l, u = Ju()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function I() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === Ku ? (u = Ku, qt += 2) : (u = null, 0 === Wt && e(Nu)),  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === Ku ? (u = Ku, qt += 2) : (u = null, 0 === Wt && e(Nu)), | ||||||
|  |  	            null !== u && (Lt = l, u = Pu()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function J() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === Vu ? (u = Vu, qt += 2) : (u = null, 0 === Wt && e(Xu)),  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === Vu ? (u = Vu, qt += 2) : (u = null, 0 === Wt && e(Xu)), | ||||||
|  |  	            null !== u && (Lt = l, u = Yu()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function K() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === Zu ? (u = Zu, qt += 2) : (u = null, 0 === Wt && e(_u)),  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === Zu ? (u = Zu, qt += 2) : (u = null, 0 === Wt && e(_u)), | ||||||
|  |  	            null !== u && (Lt = l, u = nt()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function N() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === lt ? (u = lt, qt += 2) : (u = null, 0 === Wt && e(ut)),  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === lt ? (u = lt, qt += 2) : (u = null, 0 === Wt && e(ut)), | ||||||
|  |  	            null !== u && (Lt = l, u = tt()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function P() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === rt ? (u = rt, qt += 2) : (u = null, 0 === Wt && e(et)),  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === rt ? (u = rt, qt += 2) : (u = null, 0 === Wt && e(et)), | ||||||
|  |  	            null !== u && (Lt = l, u = ot()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function V() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === ct ? (u = ct, qt += 2) : (u = null, 0 === Wt && e(it)),  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === ct ? (u = ct, qt += 2) : (u = null, 0 === Wt && e(it)), | ||||||
|  |  	            null !== u && (Lt = l, u = at()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function X() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === ft ? (u = ft, qt += 2) : (u = null, 0 === Wt && e(st)),  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === ft ? (u = ft, qt += 2) : (u = null, 0 === Wt && e(st)), | ||||||
|  |  	            null !== u && (Lt = l, u = ht()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function Y() { | ||||||
|  |  	            var l, u, t; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === dt ? (u = dt, qt += 2) : (u = null, 0 === Wt && e(pt)),  | ||||||
|  | -	            null !== u ? (n.length > qt ? (t = n.charAt(qt), qt++) : (t = null, 0 === Wt && e(vt)),  | ||||||
|  | -	            null !== t ? (Lt = l, u = wt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l,  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === dt ? (u = dt, qt += 2) : (u = null, 0 === Wt && e(pt)), | ||||||
|  | +	            null !== u ? (n.length > qt ? (t = n.charAt(qt), qt++) : (t = null, 0 === Wt && e(vt)), | ||||||
|  | +	            null !== t ? (Lt = l, u = wt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, | ||||||
|  |  	            l = il)) : (qt = l, l = il), l; | ||||||
|  |  	        } | ||||||
|  |  	        function Z() { | ||||||
|  |  	            var l, u, t; | ||||||
|  | -	            return l = qt, 92 === n.charCodeAt(qt) ? (u = At, qt++) : (u = null, 0 === Wt && e(Ct)),  | ||||||
|  | -	            null !== u ? (gt.test(n.charAt(qt)) ? (t = n.charAt(qt), qt++) : (t = null, 0 === Wt && e(bt)),  | ||||||
|  | -	            null !== t ? (Lt = l, u = kt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l,  | ||||||
|  | +	            return l = qt, 92 === n.charCodeAt(qt) ? (u = At, qt++) : (u = null, 0 === Wt && e(Ct)), | ||||||
|  | +	            null !== u ? (gt.test(n.charAt(qt)) ? (t = n.charAt(qt), qt++) : (t = null, 0 === Wt && e(bt)), | ||||||
|  | +	            null !== t ? (Lt = l, u = kt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, | ||||||
|  |  	            l = il)) : (qt = l, l = il), l; | ||||||
|  |  	        } | ||||||
|  |  	        function _() { | ||||||
|  |  	            var l, u, t, r; | ||||||
|  | -	            if (l = qt, n.substr(qt, 2) === Tt ? (u = Tt, qt += 2) : (u = null, 0 === Wt && e(xt)),  | ||||||
|  | +	            if (l = qt, n.substr(qt, 2) === Tt ? (u = Tt, qt += 2) : (u = null, 0 === Wt && e(xt)), | ||||||
|  |  	            null !== u) { | ||||||
|  | -	                if (t = [], yt.test(n.charAt(qt)) ? (r = n.charAt(qt), qt++) : (r = null, 0 === Wt && e(mt)),  | ||||||
|  | -	                null !== r) for (;null !== r; ) t.push(r), yt.test(n.charAt(qt)) ? (r = n.charAt(qt),  | ||||||
|  | +	                if (t = [], yt.test(n.charAt(qt)) ? (r = n.charAt(qt), qt++) : (r = null, 0 === Wt && e(mt)), | ||||||
|  | +	                null !== r) for (;null !== r; ) t.push(r), yt.test(n.charAt(qt)) ? (r = n.charAt(qt), | ||||||
|  |  	                qt++) : (r = null, 0 === Wt && e(mt)); else t = il; | ||||||
|  | -	                null !== t ? (Lt = l, u = Rt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l,  | ||||||
|  | +	                null !== t ? (Lt = l, u = Rt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, | ||||||
|  |  	                l = il); | ||||||
|  |  	            } else qt = l, l = il; | ||||||
|  |  	            return l; | ||||||
|  |  	        } | ||||||
|  |  	        function nl() { | ||||||
|  |  	            var l, u, t, r; | ||||||
|  | -	            if (l = qt, n.substr(qt, 2) === Ft ? (u = Ft, qt += 2) : (u = null, 0 === Wt && e(Qt)),  | ||||||
|  | +	            if (l = qt, n.substr(qt, 2) === Ft ? (u = Ft, qt += 2) : (u = null, 0 === Wt && e(Qt)), | ||||||
|  |  	            null !== u) { | ||||||
|  | -	                if (t = [], St.test(n.charAt(qt)) ? (r = n.charAt(qt), qt++) : (r = null, 0 === Wt && e(Ut)),  | ||||||
|  | -	                null !== r) for (;null !== r; ) t.push(r), St.test(n.charAt(qt)) ? (r = n.charAt(qt),  | ||||||
|  | +	                if (t = [], St.test(n.charAt(qt)) ? (r = n.charAt(qt), qt++) : (r = null, 0 === Wt && e(Ut)), | ||||||
|  | +	                null !== r) for (;null !== r; ) t.push(r), St.test(n.charAt(qt)) ? (r = n.charAt(qt), | ||||||
|  |  	                qt++) : (r = null, 0 === Wt && e(Ut)); else t = il; | ||||||
|  | -	                null !== t ? (Lt = l, u = Et(t), null === u ? (qt = l, l = u) : l = u) : (qt = l,  | ||||||
|  | +	                null !== t ? (Lt = l, u = Et(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, | ||||||
|  |  	                l = il); | ||||||
|  |  	            } else qt = l, l = il; | ||||||
|  |  	            return l; | ||||||
|  |  	        } | ||||||
|  |  	        function ll() { | ||||||
|  |  	            var l, u, t, r; | ||||||
|  | -	            if (l = qt, n.substr(qt, 2) === Gt ? (u = Gt, qt += 2) : (u = null, 0 === Wt && e(Bt)),  | ||||||
|  | +	            if (l = qt, n.substr(qt, 2) === Gt ? (u = Gt, qt += 2) : (u = null, 0 === Wt && e(Bt)), | ||||||
|  |  	            null !== u) { | ||||||
|  | -	                if (t = [], St.test(n.charAt(qt)) ? (r = n.charAt(qt), qt++) : (r = null, 0 === Wt && e(Ut)),  | ||||||
|  | -	                null !== r) for (;null !== r; ) t.push(r), St.test(n.charAt(qt)) ? (r = n.charAt(qt),  | ||||||
|  | +	                if (t = [], St.test(n.charAt(qt)) ? (r = n.charAt(qt), qt++) : (r = null, 0 === Wt && e(Ut)), | ||||||
|  | +	                null !== r) for (;null !== r; ) t.push(r), St.test(n.charAt(qt)) ? (r = n.charAt(qt), | ||||||
|  |  	                qt++) : (r = null, 0 === Wt && e(Ut)); else t = il; | ||||||
|  | -	                null !== t ? (Lt = l, u = jt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l,  | ||||||
|  | +	                null !== t ? (Lt = l, u = jt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, | ||||||
|  |  	                l = il); | ||||||
|  |  	            } else qt = l, l = il; | ||||||
|  |  	            return l; | ||||||
|  |  	        } | ||||||
|  |  	        function ul() { | ||||||
|  |  	            var l, u; | ||||||
|  | -	            return l = qt, n.substr(qt, 2) === Tt ? (u = Tt, qt += 2) : (u = null, 0 === Wt && e(xt)),  | ||||||
|  | +	            return l = qt, n.substr(qt, 2) === Tt ? (u = Tt, qt += 2) : (u = null, 0 === Wt && e(xt)), | ||||||
|  |  	            null !== u && (Lt = l, u = $t()), null === u ? (qt = l, l = u) : l = u, l; | ||||||
|  |  	        } | ||||||
|  |  	        function tl() { | ||||||
|  |  	            var l, u, t; | ||||||
|  | -	            return l = qt, 92 === n.charCodeAt(qt) ? (u = At, qt++) : (u = null, 0 === Wt && e(Ct)),  | ||||||
|  | -	            null !== u ? (n.length > qt ? (t = n.charAt(qt), qt++) : (t = null, 0 === Wt && e(vt)),  | ||||||
|  | -	            null !== t ? (Lt = l, u = bu(t), null === u ? (qt = l, l = u) : l = u) : (qt = l,  | ||||||
|  | +	            return l = qt, 92 === n.charCodeAt(qt) ? (u = At, qt++) : (u = null, 0 === Wt && e(Ct)), | ||||||
|  | +	            null !== u ? (n.length > qt ? (t = n.charAt(qt), qt++) : (t = null, 0 === Wt && e(vt)), | ||||||
|  | +	            null !== t ? (Lt = l, u = bu(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, | ||||||
|  |  	            l = il)) : (qt = l, l = il), l; | ||||||
|  |  	        } | ||||||
|  |  	        var rl, el = arguments.length > 1 ? arguments[1] : {}, ol = { | ||||||
|  | @@ -7234,7 +7234,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	var Util = __webpack_require__(3) | ||||||
|  |  	var Random = __webpack_require__(5) | ||||||
|  |  	    /* | ||||||
|  | -	         | ||||||
|  | + | ||||||
|  |  	    */ | ||||||
|  |  	var Handler = { | ||||||
|  |  	    extend: Util.extend | ||||||
|  | @@ -7481,7 +7481,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	        return Random.integer(min, max) | ||||||
|  |  	    }, | ||||||
|  |  	    /* | ||||||
|  | -	         | ||||||
|  | + | ||||||
|  |  	    */ | ||||||
|  |  	    charset: function(node, result, cache) { | ||||||
|  |  	        // node.invert | ||||||
|  | @@ -7642,11 +7642,11 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	    ## valid(template, data) | ||||||
|  |   | ||||||
|  |  	    校验真实数据 data 是否与数据模板 template 匹配。 | ||||||
|  | -	     | ||||||
|  | + | ||||||
|  |  	    实现思路: | ||||||
|  |  	    1. 解析规则。 | ||||||
|  |  	        先把数据模板 template 解析为更方便机器解析的 JSON-Schame | ||||||
|  | -	        name               属性名  | ||||||
|  | +	        name               属性名 | ||||||
|  |  	        type               属性值类型 | ||||||
|  |  	        template           属性值模板 | ||||||
|  |  	        properties         对象属性数组 | ||||||
|  | @@ -7655,7 +7655,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	    2. 递归验证规则。 | ||||||
|  |  	        然后用 JSON-Schema 校验真实数据,校验项包括属性名、值类型、值、值生成规则。 | ||||||
|  |   | ||||||
|  | -	    提示信息  | ||||||
|  | +	    提示信息 | ||||||
|  |  	    https://github.com/fge/json-schema-validator/blob/master/src/main/resources/com/github/fge/jsonschema/validator/validation.properties | ||||||
|  |  	    [JSON-Schama validator](http://json-schema-validator.herokuapp.com/) | ||||||
|  |  	    [Regexp Demo](http://demos.forbeslindesay.co.uk/regexp/) | ||||||
|  | @@ -7693,8 +7693,8 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	                    +step | ||||||
|  |  	                    整数部分 | ||||||
|  |  	                    小数部分 | ||||||
|  | -	                boolean  | ||||||
|  | -	                string   | ||||||
|  | +	                boolean | ||||||
|  | +	                string | ||||||
|  |  	                    min-max | ||||||
|  |  	                    count | ||||||
|  |  	    ## properties | ||||||
|  | @@ -7949,9 +7949,9 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |   | ||||||
|  |  	/* | ||||||
|  |  	    完善、友好的提示信息 | ||||||
|  | -	     | ||||||
|  | + | ||||||
|  |  	    Equal, not equal to, greater than, less than, greater than or equal to, less than or equal to | ||||||
|  | -	    路径 验证类型 描述  | ||||||
|  | +	    路径 验证类型 描述 | ||||||
|  |   | ||||||
|  |  	    Expect path.name is less than or equal to expected, but path.name is actual. | ||||||
|  |   | ||||||
|  | @@ -8264,7 +8264,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	Util.extend(MockXMLHttpRequest.prototype, { | ||||||
|  |  	    // https://xhr.spec.whatwg.org/#the-open()-method | ||||||
|  |  	    // Sets the request method, request URL, and synchronous flag. | ||||||
|  | -	    open: function(method, url, async, username, password) { | ||||||
|  | +	    open: function(method, url, async = true, username, password) { | ||||||
|  |  	        var that = this | ||||||
|  |   | ||||||
|  |  	        Util.extend(this.custom, { | ||||||
|  | @@ -8310,6 +8310,8 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |  	            var xhr = createNativeXMLHttpRequest() | ||||||
|  |  	            this.custom.xhr = xhr | ||||||
|  |   | ||||||
|  | +                MockXMLHttpRequest.prototype.upload = xhr.upload | ||||||
|  | + | ||||||
|  |  	            // 初始化所有事件,用于监听原生 XHR 对象的事件 | ||||||
|  |  	            for (var i = 0; i < XHR_EVENTS.length; i++) { | ||||||
|  |  	                xhr.addEventListener(XHR_EVENTS[i], handle) | ||||||
|  | @@ -8360,6 +8362,7 @@ return /******/ (function(modules) { // webpackBootstrap | ||||||
|  |   | ||||||
|  |  	        // 原生 XHR | ||||||
|  |  	        if (!this.match) { | ||||||
|  | +                this.custom.xhr.responseType = this.responseType || '' | ||||||
|  |  	            this.custom.xhr.send(data) | ||||||
|  |  	            return | ||||||
|  |  	        } | ||||||
							
								
								
									
										18279
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						| Before Width: | Height: | Size: 17 KiB | 
							
								
								
									
										
											BIN
										
									
								
								public/logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 31 KiB | 
| @@ -1,91 +0,0 @@ | |||||||
| .app-loading { |  | ||||||
|   position: fixed; |  | ||||||
|   left: 0; |  | ||||||
|   top: 0; |  | ||||||
|   z-index: -1; |  | ||||||
|   display: flex; |  | ||||||
|   flex-direction: column; |  | ||||||
|   justify-content: center; |  | ||||||
|   align-items: center; |  | ||||||
|   width: 100%; |  | ||||||
|   height: 100%; |  | ||||||
| 	background-color:#f5f7f9; |  | ||||||
| } |  | ||||||
| .app-loading_logo { |  | ||||||
|   width: 128px; |  | ||||||
|   height: 128px; |  | ||||||
| } |  | ||||||
| .app-loading__dot-wrapper { |  | ||||||
|   width: 56px; |  | ||||||
|   height: 56px; |  | ||||||
|   margin: 36px 0; |  | ||||||
| } |  | ||||||
| .app-loading__dot { |  | ||||||
|   position: relative; |  | ||||||
|   height: 100%; |  | ||||||
|   transform: rotate(45deg); |  | ||||||
|   animation-name: loadingRotate; |  | ||||||
|   animation-duration: 1.2s; |  | ||||||
|   animation-iteration-count: infinite; |  | ||||||
|   animation-timing-function: linear; |  | ||||||
| } |  | ||||||
| @keyframes loadingRotate { |  | ||||||
|   to { |  | ||||||
|     -webkit-transform: rotate(405deg); |  | ||||||
|     transform: rotate(405deg); |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @-webkit-keyframes loadingRotate { |  | ||||||
|   to { |  | ||||||
|     -webkit-transform: rotate(405deg); |  | ||||||
|     transform: rotate(405deg); |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| .app-loading__dot > i { |  | ||||||
|   position: absolute; |  | ||||||
|   display: block; |  | ||||||
|   width: 18px; |  | ||||||
|   height: 18px; |  | ||||||
|   background: #1890ff; |  | ||||||
|   border-radius: 50%; |  | ||||||
|   -webkit-transform: scale(0.75); |  | ||||||
|   transform: scale(0.75); |  | ||||||
|   transform-origin: 50% 50%; |  | ||||||
|   opacity: 0.3; |  | ||||||
|   animation: spinOpacity 1s infinite linear alternate; |  | ||||||
| } |  | ||||||
| @keyframes spinOpacity { |  | ||||||
|   to { |  | ||||||
|     opacity: 1; |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @-webkit-keyframes spinOpacity { |  | ||||||
|   to { |  | ||||||
|     opacity: 1; |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| .delay-400 { |  | ||||||
|   animation-delay: 0.4s !important; |  | ||||||
| } |  | ||||||
| .delay-800 { |  | ||||||
|   animation-delay: 0.8s !important; |  | ||||||
| } |  | ||||||
| .delay-1200 { |  | ||||||
|   animation-delay: 1.2s !important; |  | ||||||
| } |  | ||||||
| .left { |  | ||||||
|   left: 0; |  | ||||||
| } |  | ||||||
| .right { |  | ||||||
|   right: 0; |  | ||||||
| } |  | ||||||
| .top { |  | ||||||
|   top: 0; |  | ||||||
| } |  | ||||||
| .bottom { |  | ||||||
|   bottom: 0; |  | ||||||
| } |  | ||||||
| .app-loading_title { |  | ||||||
|   font-size: 28px; |  | ||||||
|   color: #646464; |  | ||||||
| } |  | ||||||
| Before Width: | Height: | Size: 11 KiB | 
							
								
								
									
										17
									
								
								scripts/logo.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,17 @@ | |||||||
|  | import { readFile } from 'fs/promises'; | ||||||
|  | import nodeHtmlToImage from 'node-html-to-image'; | ||||||
|  | import themeSettings from '../src/settings/theme.json'; | ||||||
|  |  | ||||||
|  | async function generatePngLogoFromSvg(svgPath: string, color: string) { | ||||||
|  |   const svgStr = await readFile(svgPath, 'utf-8'); | ||||||
|  |  | ||||||
|  |   const svgStrWithColor = svgStr.replace(/currentColor/g, color); | ||||||
|  |  | ||||||
|  |   await nodeHtmlToImage({ | ||||||
|  |     output: './public/logo.png', | ||||||
|  |     html: svgStrWithColor, | ||||||
|  |     transparent: true | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | generatePngLogoFromSvg('./src/assets/svg-icon/logo.svg', themeSettings.themeColor); | ||||||
							
								
								
									
										28
									
								
								src/App.vue
									
									
									
									
									
								
							
							
						
						| @@ -1,10 +1,26 @@ | |||||||
| <template> | <template> | ||||||
|   <app-provider> |   <n-config-provider | ||||||
|     <router-view /> |     :theme="theme.naiveTheme" | ||||||
|   </app-provider> |     :theme-overrides="theme.naiveThemeOverrides" | ||||||
|  |     :locale="zhCN" | ||||||
|  |     :date-locale="dateZhCN" | ||||||
|  |     class="h-full" | ||||||
|  |   > | ||||||
|  |     <naive-provider> | ||||||
|  |       <router-view /> | ||||||
|  |     </naive-provider> | ||||||
|  |   </n-config-provider> | ||||||
| </template> | </template> | ||||||
|  |  | ||||||
| <script lang="ts" setup> | <script setup lang="ts"> | ||||||
| import AppProvider from './AppProvider.vue'; | import { dateZhCN, zhCN } from 'naive-ui'; | ||||||
|  | import { subscribeStore, useThemeStore } from '@/store'; | ||||||
|  | import { useGlobalEvents } from '@/composables'; | ||||||
|  |  | ||||||
|  | const theme = useThemeStore(); | ||||||
|  |  | ||||||
|  | subscribeStore(); | ||||||
|  | useGlobalEvents(); | ||||||
| </script> | </script> | ||||||
| <style></style> |  | ||||||
|  | <style scoped></style> | ||||||
|   | |||||||
| @@ -1,26 +0,0 @@ | |||||||
| <template> |  | ||||||
|   <n-config-provider |  | ||||||
|     class="h-full" |  | ||||||
|     :locale="zhCN" |  | ||||||
|     :date-locale="dateZhCN" |  | ||||||
|     :theme="naiveTheme" |  | ||||||
|     :theme-overrides="theme.themeOverrids" |  | ||||||
|   > |  | ||||||
|     <n-element class="h-full"> |  | ||||||
|       <naive-provider> |  | ||||||
|         <slot></slot> |  | ||||||
|       </naive-provider> |  | ||||||
|     </n-element> |  | ||||||
|   </n-config-provider> |  | ||||||
| </template> |  | ||||||
|  |  | ||||||
| <script lang="ts" setup> |  | ||||||
| import { NConfigProvider, NElement, zhCN, dateZhCN } from 'naive-ui'; |  | ||||||
| import { NaiveProvider } from '@/components'; |  | ||||||
| import { useThemeStore } from '@/store'; |  | ||||||
| import { useDarkMode } from '@/composables'; |  | ||||||
|  |  | ||||||
| const theme = useThemeStore(); |  | ||||||
| const { naiveTheme } = useDarkMode(); |  | ||||||
| </script> |  | ||||||
| <style></style> |  | ||||||
							
								
								
									
										
											BIN
										
									
								
								src/assets/fonts/aguazyuan-bold.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								src/assets/fonts/aguazyuan-light.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								src/assets/fonts/aguazyuan-regular.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						| Before Width: | Height: | Size: 7.8 KiB | 
| Before Width: | Height: | Size: 11 KiB | 
							
								
								
									
										1
									
								
								src/assets/svg-icon/activity.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1 @@ | |||||||
|  | <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="feather feather-activity"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg> | ||||||
| After Width: | Height: | Size: 282 B | 
							
								
								
									
										1
									
								
								src/assets/svg-icon/at-sign.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1 @@ | |||||||
|  | <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="feather feather-at-sign"><circle cx="12" cy="12" r="4"></circle><path d="M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94"></path></svg> | ||||||
| After Width: | Height: | Size: 322 B | 
| Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.6 KiB | 
							
								
								
									
										1
									
								
								src/assets/svg-icon/banner.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 19 KiB | 
							
								
								
									
										1
									
								
								src/assets/svg-icon/cast.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1 @@ | |||||||
|  | <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="feather feather-cast"><path d="M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6"></path><line x1="2" y1="20" x2="2.01" y2="20"></line></svg> | ||||||
| After Width: | Height: | Size: 387 B | 
							
								
								
									
										1
									
								
								src/assets/svg-icon/chrome.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1 @@ | |||||||
|  | <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chrome"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="4"></circle><line x1="21.17" y1="8" x2="12" y2="8"></line><line x1="3.95" y1="6.06" x2="8.54" y2="14"></line><line x1="10.88" y1="21.94" x2="15.46" y2="14"></line></svg> | ||||||
| After Width: | Height: | Size: 448 B | 
							
								
								
									
										1
									
								
								src/assets/svg-icon/copy.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1 @@ | |||||||
|  | <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="feather feather-copy"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg> | ||||||
| After Width: | Height: | Size: 351 B | 
							
								
								
									
										1
									
								
								src/assets/svg-icon/custom-icon.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1 @@ | |||||||
|  | <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--mdi" width="32" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" d="M19 10c0 1.38-2.12 2.5-3.5 2.5s-2.75-1.12-2.75-2.5h-1.5c0 1.38-1.37 2.5-2.75 2.5S5 11.38 5 10h-.75c-.16.64-.25 1.31-.25 2a8 8 0 0 0 8 8a8 8 0 0 0 8-8c0-.69-.09-1.36-.25-2H19m-7-6C9.04 4 6.45 5.61 5.07 8h13.86C17.55 5.61 14.96 4 12 4m10 8a10 10 0 0 1-10 10A10 10 0 0 1 2 12A10 10 0 0 1 12 2a10 10 0 0 1 10 10m-10 5.23c-1.75 0-3.29-.73-4.19-1.81L9.23 14c.45.72 1.52 1.23 2.77 1.23s2.32-.51 2.77-1.23l1.42 1.42c-.9 1.08-2.44 1.81-4.19 1.81Z"></path></svg> | ||||||
| After Width: | Height: | Size: 702 B | 
							
								
								
									
										1
									
								
								src/assets/svg-icon/empty-data.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 77 KiB | 
							
								
								
									
										1
									
								
								src/assets/svg-icon/heart.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1 @@ | |||||||
|  | <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="feather feather-heart"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"></path></svg> | ||||||
| After Width: | Height: | Size: 371 B | 
							
								
								
									
										1
									
								
								src/assets/svg-icon/logo-fill.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1 @@ | |||||||
|  | <svg viewBox="0 0 158.88 158.88"><path d="M158.86.3v157.48c0 .9-.2 1.1-1.1 1.1H.24a2.61 2.61 0 01-.11-1.3V1.67C.14 0 0 .18 1.61.18h156a2.62 2.62 0 011.25.12z" fill="currentColor"/><path d="M158.86.3H2C0 .31.27 0 .27 2v156.85c-.07-.05-.25.12-.24-.12s0-.64 0-1Q0 79.46 0 1.14C0 .24.2 0 1.1 0h156.68c.35.08.81-.2 1.08.3z" fill="#fff"/><path d="M93.65 51.52a68.65 68.65 0 01-6.47 28.81 1.72 1.72 0 00.19 2c6.08 8.28 13.58 14.79 23.19 18.69a46.22 46.22 0 0017.15 3.39 28.87 28.87 0 003.34-.25 6.2 6.2 0 017 5.12 6.07 6.07 0 01-5.15 7.14 50.39 50.39 0 01-18.06-1c-15.85-3.66-28-12.75-37.44-25.7a2.15 2.15 0 00-2.23-1.09c-14 1.37-26.17 6.43-35.5 17.21a38.47 38.47 0 00-6.23 9.74 6.21 6.21 0 01-8.17 3.42 6.14 6.14 0 01-3.27-8.2 49.31 49.31 0 019.63-14.62c10.56-11.44 23.8-17.54 39.09-19.54a13.93 13.93 0 012.84-.34c1.61.14 2.18-.73 2.73-2A54.38 54.38 0 0081.12 51a44 44 0 00-8-25 6.11 6.11 0 01-.65-6.46A6 6 0 0177.75 16a6.34 6.34 0 015.66 3 53.61 53.61 0 017.17 14.28 59.33 59.33 0 013.07 18.24z" fill="#fff"/><path d="M46.92 118.63a6 6 0 011.35-3.88 37.89 37.89 0 0122.5-14 6.08 6.08 0 016.65 2.47 6.18 6.18 0 01-3.84 9.63 26.09 26.09 0 00-15.71 9.77 6.2 6.2 0 01-10.95-4zM124.3 92.8a34.66 34.66 0 01-9.82-2.48 35.46 35.46 0 01-14.65-10.45 6.19 6.19 0 012.84-9.93 5.79 5.79 0 016.44 1.73 26.79 26.79 0 0016.51 8.85 6 6 0 015 5.54 6.21 6.21 0 01-4.29 6.46 6.55 6.55 0 01-2.03.28zM69.32 53.27a33.46 33.46 0 01-2.27 12.52 6.21 6.21 0 01-10.94 1 6.09 6.09 0 01-.65-5.4 26 26 0 00-.53-18.25 6.21 6.21 0 0111.49-4.72 40.24 40.24 0 012.9 14.85z" fill="#fff"/></svg> | ||||||
| After Width: | Height: | Size: 1.5 KiB | 
							
								
								
									
										1
									
								
								src/assets/svg-icon/logo.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1 @@ | |||||||
|  | <svg viewBox="0 0 158.88 158.88"><path d="M0 158.86V1.1C0 .2.2 0 1.1 0h156.68c.9 0 1.1.2 1.1 1.1v156.68c0 .9-.2 1.1-1.1 1.1Q78.9 158.83 0 158.86z" fill="#ffffff00"/><path d="M81.28 55.9c-.1-11.67-2.93-22.55-9.37-32.38-1-1.5-2.14-2.86-2.5-4.71a8.1 8.1 0 014-8.61 7.89 7.89 0 019.3 1.23 36 36 0 015.9 8.83 75.18 75.18 0 018.44 28.58 83.21 83.21 0 01-5.23 36.74 103 103 0 01-3 7.28 1.2 1.2 0 000 1.41c9.58 13.3 21.76 23 37.85 27.24a54.35 54.35 0 0019.68 1.57 7.72 7.72 0 018.36 6.9 7.9 7.9 0 01-6.7 9 64.74 64.74 0 01-23-1.33 77.68 77.68 0 01-36.93-19.88 93.64 93.64 0 01-11.91-13.71 2.18 2.18 0 00-2.3-1.06 72.75 72.75 0 00-27.38 7.55c-11.6 6-20.67 14.58-26.4 26.45a10.13 10.13 0 01-3.7 4.7 8 8 0 01-9.19-.7 7.86 7.86 0 01-2.36-9.28 60.32 60.32 0 018.72-14.52c12.2-15.43 28.21-24.59 47.32-28.57A85.08 85.08 0 0173.07 87a1.22 1.22 0 001.18-.8 76.06 76.06 0 006.53-22.3 57.87 57.87 0 00.5-8z" fill="currentColor"/><path d="M136.26 108.34a44.72 44.72 0 01-11.13-2.87 46.11 46.11 0 01-19.66-13.76 8 8 0 015.72-13.22 7.93 7.93 0 016.54 2.93 33.27 33.27 0 0018.87 10.75 14.76 14.76 0 014.48 1.18 8.08 8.08 0 013.84 9.21c-.92 3.52-4.13 5.81-8.66 5.78zM55.66 33.32a7.61 7.61 0 016.64 5 49.14 49.14 0 013.64 17 46.33 46.33 0 01-2.46 17.28c-2 5.77-8.24 7.79-12.89 4.15a8.1 8.1 0 01-2.39-9 31.68 31.68 0 001.68-12.36 35.77 35.77 0 00-2.43-11c-2.1-5.45 1.75-11.07 8.21-11.07zM77.92 126.57a8 8 0 01-6.68 7.86 32.88 32.88 0 00-19.7 12.19 8.13 8.13 0 01-11.21 1.62 8 8 0 01-1.41-11.58A51.05 51.05 0 0154 123.81a45.85 45.85 0 0114-5.1c5.35-1.04 9.91 2.56 9.92 7.86z" fill="currentColor"/></svg> | ||||||
| After Width: | Height: | Size: 1.5 KiB | 
							
								
								
									
										1
									
								
								src/assets/svg-icon/network-error.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 19 KiB | 
							
								
								
									
										1
									
								
								src/assets/svg-icon/no-icon.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 8.1 KiB | 
							
								
								
									
										1
									
								
								src/assets/svg-icon/no-permission.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 50 KiB | 
							
								
								
									
										1
									
								
								src/assets/svg-icon/not-found.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 33 KiB | 
							
								
								
									
										1
									
								
								src/assets/svg-icon/service-error.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 74 KiB | 
							
								
								
									
										1
									
								
								src/assets/svg-icon/wind.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1 @@ | |||||||
|  | <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="feather feather-wind"><path d="M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2"></path></svg> | ||||||
| After Width: | Height: | Size: 326 B | 
| @@ -1,26 +0,0 @@ | |||||||
| <?xml version="1.0" encoding="utf-8"?> |  | ||||||
| <!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  --> |  | ||||||
| <svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" |  | ||||||
| 	 viewBox="0 0 158.9 158.9" style="enable-background:new 0 0 158.9 158.9;" xml:space="preserve"> |  | ||||||
| <style type="text/css"> |  | ||||||
| 	.st0{fill:none;} |  | ||||||
| 	.st1{fill:#409EFF;} |  | ||||||
| </style> |  | ||||||
| <path class="st0" d="M0,158.9C0,106.3,0,53.7,0,1.1C0,0.2,0.2,0,1.1,0c52.2,0,104.5,0,156.7,0c0.9,0,1.1,0.2,1.1,1.1 |  | ||||||
| 	c0,52.2,0,104.5,0,156.7c0,0.9-0.2,1.1-1.1,1.1C105.2,158.8,52.6,158.8,0,158.9z"/> |  | ||||||
| <path class="st1" d="M81.3,55.9c-0.1-11.7-2.9-22.5-9.4-32.4c-1-1.5-2.1-2.9-2.5-4.7c-0.7-3.4,0.9-6.9,4-8.6c3-1.7,6.8-1.2,9.3,1.2 |  | ||||||
| 	c2.4,2.6,4.4,5.6,5.9,8.8c4.7,8.9,7.6,18.6,8.4,28.6c1,12.5-0.7,25-5.2,36.7c-0.9,2.5-1.9,4.9-3,7.3c-0.3,0.4-0.3,1,0,1.4 |  | ||||||
| 	c9.6,13.3,21.8,23,37.8,27.2c6.4,1.7,13.1,2.3,19.7,1.6c4.2-0.4,7.9,2.7,8.4,6.9c0.7,4.3-2.3,8.3-6.6,9c0,0,0,0-0.1,0 |  | ||||||
| 	c-7.7,0.9-15.5,0.5-23-1.3c-13.9-3.1-26.7-10-36.9-19.9c-4.4-4.2-8.4-8.8-11.9-13.7c-0.5-0.8-1.4-1.2-2.3-1.1 |  | ||||||
| 	c-9.5,0.7-18.8,3.3-27.4,7.6c-11.6,6-20.7,14.6-26.4,26.4c-0.7,1.9-2,3.5-3.7,4.7c-2.9,1.7-6.6,1.5-9.2-0.7c-2.8-2.2-3.8-6-2.4-9.3 |  | ||||||
| 	c2.2-5.2,5.1-10.1,8.7-14.5c12.2-15.4,28.2-24.6,47.3-28.6c4-0.8,8.1-1.4,12.2-1.6c0.5,0,1-0.3,1.2-0.8c3.3-7.1,5.5-14.6,6.5-22.3 |  | ||||||
| 	C81.1,61.2,81.3,58.6,81.3,55.9z"/> |  | ||||||
| <path class="st1" d="M136.3,108.3c-3.8-0.5-7.6-1.4-11.1-2.9c-7.7-2.8-14.4-7.5-19.7-13.8c-2.9-3.3-2.5-8.4,0.8-11.3 |  | ||||||
| 	c1.4-1.2,3.1-1.9,4.9-1.9c2.5-0.1,5,1,6.5,2.9c4.9,5.6,11.6,9.4,18.9,10.8c1.5,0.2,3.1,0.6,4.5,1.2c3.2,1.8,4.8,5.6,3.8,9.2 |  | ||||||
| 	C144,106.1,140.8,108.4,136.3,108.3z"/> |  | ||||||
| <path class="st1" d="M55.7,33.3c3,0.2,5.6,2.2,6.6,5c2.2,5.4,3.4,11.2,3.6,17c0.3,5.9-0.6,11.7-2.5,17.3c-2,5.8-8.2,7.8-12.9,4.2 |  | ||||||
| 	c-2.6-2.2-3.6-5.8-2.4-9c1.4-4,1.9-8.2,1.7-12.4c-0.2-3.8-1-7.5-2.4-11C45.3,38.9,49.2,33.3,55.7,33.3z"/> |  | ||||||
| <path class="st1" d="M77.9,126.6c0,3.9-2.8,7.2-6.7,7.9c-7.8,1.5-14.8,5.9-19.7,12.2c-2.7,3.5-7.6,4.2-11.2,1.6 |  | ||||||
| 	c-3.6-2.6-4.3-7.6-1.7-11.2c0.1-0.1,0.2-0.3,0.3-0.4c4.1-5.2,9.3-9.6,15.1-12.8c4.4-2.5,9.1-4.2,14-5.1 |  | ||||||
| 	C73.3,117.7,77.9,121.3,77.9,126.6z"/> |  | ||||||
| </svg> |  | ||||||
| Before Width: | Height: | Size: 2.1 KiB | 
							
								
								
									
										97
									
								
								src/components/business/LoadingEmptyWrapper.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,97 @@ | |||||||
|  | <template> | ||||||
|  |   <div v-if="reloadFlag" class="relative"> | ||||||
|  |     <slot></slot> | ||||||
|  |     <div v-show="showPlaceholder" class="absolute-lt w-full h-full" :class="placeholderClass"> | ||||||
|  |       <div v-show="loading" class="absolute-center"> | ||||||
|  |         <n-spin :show="true" :size="loadingSize" /> | ||||||
|  |       </div> | ||||||
|  |       <div v-show="isEmpty" class="absolute-center"> | ||||||
|  |         <div class="relative"> | ||||||
|  |           <icon-local-empty-data :class="iconClass" /> | ||||||
|  |           <p class="absolute-lb w-full text-center" :class="descClass">{{ emptyDesc }}</p> | ||||||
|  |         </div> | ||||||
|  |       </div> | ||||||
|  |       <div v-show="!network" class="absolute-center"> | ||||||
|  |         <div class="relative" :class="{ 'cursor-pointer': showNetworkReload }" @click="handleReload"> | ||||||
|  |           <icon-local-network-error :class="iconClass" /> | ||||||
|  |           <p class="absolute-lb w-full text-center" :class="descClass">{{ networkErrorDesc }}</p> | ||||||
|  |         </div> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </div> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script setup lang="ts"> | ||||||
|  | import { computed, nextTick, onUnmounted, watch } from 'vue'; | ||||||
|  | import { NETWORK_ERROR_MSG } from '@/config'; | ||||||
|  | import { useBoolean } from '@/hooks'; | ||||||
|  |  | ||||||
|  | defineOptions({ name: 'LoadingEmptyWrapper' }); | ||||||
|  |  | ||||||
|  | interface Props { | ||||||
|  |   /** 是否加载 */ | ||||||
|  |   loading: boolean; | ||||||
|  |   /** 是否为空 */ | ||||||
|  |   empty?: boolean; | ||||||
|  |   /** 加载图标的大小 */ | ||||||
|  |   loadingSize?: 'small' | 'medium' | 'large'; | ||||||
|  |   /** 中间占位符的class */ | ||||||
|  |   placeholderClass?: string; | ||||||
|  |   /** 空数据描述文本 */ | ||||||
|  |   emptyDesc?: string; | ||||||
|  |   /** 图标的class */ | ||||||
|  |   iconClass?: string; | ||||||
|  |   /** 描述文本的class */ | ||||||
|  |   descClass?: string; | ||||||
|  |   /** 显示网络异常的重试点击按钮 */ | ||||||
|  |   showNetworkReload?: boolean; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const props = withDefaults(defineProps<Props>(), { | ||||||
|  |   loading: false, | ||||||
|  |   empty: false, | ||||||
|  |   loadingSize: 'medium', | ||||||
|  |   placeholderClass: 'bg-white dark:bg-dark transition-background-color duration-300 ease-in-out', | ||||||
|  |   emptyDesc: '暂无数据', | ||||||
|  |   iconClass: 'text-320px text-primary', | ||||||
|  |   descClass: 'text-16px text-[#666]', | ||||||
|  |   showNetworkReload: false | ||||||
|  | }); | ||||||
|  |  | ||||||
|  | // 网络状态 | ||||||
|  | const { bool: network, setBool: setNetwork } = useBoolean(window.navigator.onLine); | ||||||
|  | const { bool: reloadFlag, setBool: setReload } = useBoolean(true); | ||||||
|  |  | ||||||
|  | // 数据是否为空 | ||||||
|  | const isEmpty = computed(() => props.empty && !props.loading && network.value); | ||||||
|  |  | ||||||
|  | const showPlaceholder = computed(() => props.loading || isEmpty.value || !network.value); | ||||||
|  |  | ||||||
|  | const networkErrorDesc = computed(() => | ||||||
|  |   props.showNetworkReload ? `${NETWORK_ERROR_MSG}, 点击重试` : NETWORK_ERROR_MSG | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | function handleReload() { | ||||||
|  |   if (!props.showNetworkReload) return; | ||||||
|  |   setReload(false); | ||||||
|  |   nextTick(() => { | ||||||
|  |     setReload(true); | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const stopHandle = watch( | ||||||
|  |   () => props.loading, | ||||||
|  |   newValue => { | ||||||
|  |     // 结束加载判断一下网络状态 | ||||||
|  |     if (!newValue) { | ||||||
|  |       setNetwork(window.navigator.onLine); | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | onUnmounted(() => { | ||||||
|  |   stopHandle(); | ||||||
|  | }); | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <style scoped></style> | ||||||
							
								
								
									
										50
									
								
								src/components/business/LoginAgreement.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,50 @@ | |||||||
|  | <template> | ||||||
|  |   <div class="w-full text-14px"> | ||||||
|  |     <n-checkbox v-model:checked="checked">我已经仔细阅读并接受</n-checkbox> | ||||||
|  |     <n-button :text="true" type="primary" @click="handleClickProtocol">《用户协议》</n-button> | ||||||
|  |     <n-button :text="true" type="primary" @click="handleClickPolicy">《隐私权政策》</n-button> | ||||||
|  |   </div> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script setup lang="ts"> | ||||||
|  | import { computed } from 'vue'; | ||||||
|  |  | ||||||
|  | defineOptions({ name: 'LoginAgreement' }); | ||||||
|  |  | ||||||
|  | interface Props { | ||||||
|  |   /** 是否勾选 */ | ||||||
|  |   value?: boolean; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const props = withDefaults(defineProps<Props>(), { | ||||||
|  |   value: true | ||||||
|  | }); | ||||||
|  |  | ||||||
|  | interface Emits { | ||||||
|  |   (e: 'update:value', value: boolean): void; | ||||||
|  |   /** 点击协议 */ | ||||||
|  |   (e: 'click-protocol'): void; | ||||||
|  |   /** 点击隐私政策 */ | ||||||
|  |   (e: 'click-policy'): void; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const emit = defineEmits<Emits>(); | ||||||
|  |  | ||||||
|  | const checked = computed({ | ||||||
|  |   get() { | ||||||
|  |     return props.value; | ||||||
|  |   }, | ||||||
|  |   set(newValue: boolean) { | ||||||
|  |     emit('update:value', newValue); | ||||||
|  |   } | ||||||
|  | }); | ||||||
|  |  | ||||||
|  | function handleClickProtocol() { | ||||||
|  |   emit('click-protocol'); | ||||||
|  | } | ||||||
|  | function handleClickPolicy() { | ||||||
|  |   emit('click-policy'); | ||||||
|  | } | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <style scoped></style> | ||||||
							
								
								
									
										41
									
								
								src/components/common/AppLoading.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,41 @@ | |||||||
|  | <template> | ||||||
|  |   <div class="fixed-center flex-col"> | ||||||
|  |     <system-logo class="text-128px text-primary" /> | ||||||
|  |     <div class="w-56px h-56px my-36px"> | ||||||
|  |       <div class="relative h-full animate-spin"> | ||||||
|  |         <div | ||||||
|  |           v-for="(item, index) in lodingClasses" | ||||||
|  |           :key="index" | ||||||
|  |           class="absolute w-16px h-16px bg-primary rounded-8px animate-pulse" | ||||||
|  |           :class="item" | ||||||
|  |         ></div> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |     <h2 class="text-28px font-500 text-#646464">{{ title }}</h2> | ||||||
|  |   </div> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script setup lang="ts"> | ||||||
|  | import { useAppInfo } from '@/composables'; | ||||||
|  | import { localStg } from '@/utils'; | ||||||
|  |  | ||||||
|  | const { title } = useAppInfo(); | ||||||
|  |  | ||||||
|  | const lodingClasses = [ | ||||||
|  |   'left-0 top-0', | ||||||
|  |   'left-0 bottom-0 animate-delay-500', | ||||||
|  |   'right-0 top-0 animate-delay-1000', | ||||||
|  |   'right-0 bottom-0 animate-delay-1500' | ||||||
|  | ]; | ||||||
|  |  | ||||||
|  | function addThemeColorCssVars() { | ||||||
|  |   const defaultColor = '#1890ff'; | ||||||
|  |   const themeColor = localStg.get('themeColor') || defaultColor; | ||||||
|  |   const cssVars = `--primary-color: ${themeColor}`; | ||||||
|  |   document.documentElement.style.cssText = cssVars; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | addThemeColorCssVars(); | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <style scoped></style> | ||||||
| @@ -1,611 +0,0 @@ | |||||||
| <template> |  | ||||||
|   <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500"> |  | ||||||
|     <g id="freepik--background-complete--inject-83"> |  | ||||||
|       <rect y="382.4" width="500" height="0.25" style="fill: #ebebeb"></rect> |  | ||||||
|       <rect x="416.78" y="398.49" width="33.12" height="0.25" style="fill: #ebebeb"></rect> |  | ||||||
|       <rect x="322.53" y="401.21" width="8.69" height="0.25" style="fill: #ebebeb"></rect> |  | ||||||
|       <rect x="396.59" y="389.21" width="19.19" height="0.25" style="fill: #ebebeb"></rect> |  | ||||||
|       <rect x="52.46" y="390.89" width="43.19" height="0.25" style="fill: #ebebeb"></rect> |  | ||||||
|       <rect x="104.56" y="390.89" width="6.33" height="0.25" style="fill: #ebebeb"></rect> |  | ||||||
|       <rect x="131.47" y="395.11" width="93.68" height="0.25" style="fill: #ebebeb"></rect> |  | ||||||
|       <path |  | ||||||
|         d="M237,337.8H43.91a5.71,5.71,0,0,1-5.7-5.71V60.66A5.71,5.71,0,0,1,43.91,55H237a5.71,5.71,0,0,1,5.71,5.71V332.09A5.71,5.71,0,0,1,237,337.8ZM43.91,55.2a5.46,5.46,0,0,0-5.45,5.46V332.09a5.46,5.46,0,0,0,5.45,5.46H237a5.47,5.47,0,0,0,5.46-5.46V60.66A5.47,5.47,0,0,0,237,55.2Z" |  | ||||||
|         style="fill: #ebebeb" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M453.31,337.8H260.21a5.72,5.72,0,0,1-5.71-5.71V60.66A5.72,5.72,0,0,1,260.21,55h193.1A5.71,5.71,0,0,1,459,60.66V332.09A5.71,5.71,0,0,1,453.31,337.8ZM260.21,55.2a5.47,5.47,0,0,0-5.46,5.46V332.09a5.47,5.47,0,0,0,5.46,5.46h193.1a5.47,5.47,0,0,0,5.46-5.46V60.66a5.47,5.47,0,0,0-5.46-5.46Z" |  | ||||||
|         style="fill: #ebebeb" |  | ||||||
|       ></path> |  | ||||||
|       <rect |  | ||||||
|         x="301.09" |  | ||||||
|         y="78.79" |  | ||||||
|         width="108.81" |  | ||||||
|         height="196.62" |  | ||||||
|         transform="translate(710.99 354.2) rotate(180)" |  | ||||||
|         style="fill: #e6e6e6" |  | ||||||
|       ></rect> |  | ||||||
|       <rect |  | ||||||
|         x="296.07" |  | ||||||
|         y="78.79" |  | ||||||
|         width="111.48" |  | ||||||
|         height="196.62" |  | ||||||
|         transform="translate(703.63 354.2) rotate(180)" |  | ||||||
|         style="fill: #f0f0f0" |  | ||||||
|       ></rect> |  | ||||||
|       <rect |  | ||||||
|         x="301.09" |  | ||||||
|         y="275.41" |  | ||||||
|         width="108.81" |  | ||||||
|         height="4.66" |  | ||||||
|         transform="translate(710.99 555.48) rotate(180)" |  | ||||||
|         style="fill: #e6e6e6" |  | ||||||
|       ></rect> |  | ||||||
|       <rect |  | ||||||
|         x="294.26" |  | ||||||
|         y="275.41" |  | ||||||
|         width="111.48" |  | ||||||
|         height="4.66" |  | ||||||
|         transform="translate(700.01 555.48) rotate(180)" |  | ||||||
|         style="fill: #f0f0f0" |  | ||||||
|       ></rect> |  | ||||||
|       <rect |  | ||||||
|         x="260.53" |  | ||||||
|         y="128.39" |  | ||||||
|         width="182.56" |  | ||||||
|         height="97.42" |  | ||||||
|         transform="translate(528.91 -174.71) rotate(90)" |  | ||||||
|         style="fill: #fafafa" |  | ||||||
|       ></rect> |  | ||||||
|       <polygon |  | ||||||
|         points="330.66 268.38 358.08 85.82 377.56 85.82 350.13 268.38 330.66 268.38" |  | ||||||
|         style="fill: #fff" |  | ||||||
|       ></polygon> |  | ||||||
|       <polygon |  | ||||||
|         points="333.75 268.38 361.18 85.82 380.65 85.82 353.22 268.38 333.75 268.38" |  | ||||||
|         style="fill: #fff" |  | ||||||
|       ></polygon> |  | ||||||
|       <polygon |  | ||||||
|         points="354.31 268.38 381.74 85.82 389.33 85.82 361.91 268.38 354.31 268.38" |  | ||||||
|         style="fill: #fff" |  | ||||||
|       ></polygon> |  | ||||||
|       <rect |  | ||||||
|         x="212.27" |  | ||||||
|         y="176.65" |  | ||||||
|         width="182.56" |  | ||||||
|         height="0.89" |  | ||||||
|         transform="translate(480.65 -126.45) rotate(90)" |  | ||||||
|         style="fill: #e6e6e6" |  | ||||||
|       ></rect> |  | ||||||
|       <polygon |  | ||||||
|         points="294.41 91.12 403.22 91.12 403.86 88.55 295.06 88.55 294.41 91.12" |  | ||||||
|         style="fill: #ebebeb; opacity: 0.6000000000000001" |  | ||||||
|       ></polygon> |  | ||||||
|       <polygon |  | ||||||
|         points="294.41 95.32 403.22 95.32 403.86 92.76 295.06 92.76 294.41 95.32" |  | ||||||
|         style="fill: #ebebeb; opacity: 0.6000000000000001" |  | ||||||
|       ></polygon> |  | ||||||
|       <polygon |  | ||||||
|         points="294.41 99.53 403.22 99.53 403.86 96.97 295.06 96.97 294.41 99.53" |  | ||||||
|         style="fill: #ebebeb; opacity: 0.6000000000000001" |  | ||||||
|       ></polygon> |  | ||||||
|       <polygon |  | ||||||
|         points="294.41 103.74 403.22 103.74 403.86 101.17 295.06 101.17 294.41 103.74" |  | ||||||
|         style="fill: #ebebeb; opacity: 0.6000000000000001" |  | ||||||
|       ></polygon> |  | ||||||
|       <polygon |  | ||||||
|         points="294.41 107.95 403.22 107.95 403.86 105.38 295.06 105.38 294.41 107.95" |  | ||||||
|         style="fill: #ebebeb; opacity: 0.6000000000000001" |  | ||||||
|       ></polygon> |  | ||||||
|       <polygon |  | ||||||
|         points="294.41 112.15 403.22 112.15 403.86 109.59 295.06 109.59 294.41 112.15" |  | ||||||
|         style="fill: #ebebeb; opacity: 0.6000000000000001" |  | ||||||
|       ></polygon> |  | ||||||
|       <rect x="274.53" y="67" width="156.92" height="3.79" style="fill: #f0f0f0"></rect> |  | ||||||
|       <rect x="420.36" y="63.81" width="8.25" height="242.84" style="fill: #fafafa; opacity: 0.8"></rect> |  | ||||||
|       <rect x="420.36" y="63.81" width="2.14" height="242.84" style="fill: #f0f0f0; opacity: 0.8"></rect> |  | ||||||
|       <rect x="412.11" y="63.81" width="8.25" height="242.84" style="fill: #fafafa; opacity: 0.8"></rect> |  | ||||||
|       <rect x="412.11" y="63.81" width="2.14" height="242.84" style="fill: #f0f0f0; opacity: 0.8"></rect> |  | ||||||
|       <rect x="403.86" y="63.81" width="8.25" height="242.84" style="fill: #fafafa; opacity: 0.8"></rect> |  | ||||||
|       <rect x="292.84" y="63.81" width="8.25" height="242.84" style="fill: #fafafa; opacity: 0.8"></rect> |  | ||||||
|       <rect x="292.84" y="63.81" width="2.14" height="242.84" style="fill: #f0f0f0; opacity: 0.8"></rect> |  | ||||||
|       <rect x="284.6" y="63.81" width="8.25" height="242.84" style="fill: #fafafa; opacity: 0.8"></rect> |  | ||||||
|       <rect x="284.6" y="63.81" width="2.14" height="242.84" style="fill: #f0f0f0; opacity: 0.8"></rect> |  | ||||||
|       <rect x="276.35" y="63.81" width="8.25" height="242.84" style="fill: #fafafa; opacity: 0.8"></rect> |  | ||||||
|       <rect |  | ||||||
|         x="85.34" |  | ||||||
|         y="78.79" |  | ||||||
|         width="108.81" |  | ||||||
|         height="196.62" |  | ||||||
|         transform="translate(279.49 354.2) rotate(180)" |  | ||||||
|         style="fill: #e6e6e6" |  | ||||||
|       ></rect> |  | ||||||
|       <rect |  | ||||||
|         x="80.32" |  | ||||||
|         y="78.79" |  | ||||||
|         width="111.48" |  | ||||||
|         height="196.62" |  | ||||||
|         transform="translate(272.12 354.2) rotate(180)" |  | ||||||
|         style="fill: #f0f0f0" |  | ||||||
|       ></rect> |  | ||||||
|       <rect |  | ||||||
|         x="85.34" |  | ||||||
|         y="275.41" |  | ||||||
|         width="108.81" |  | ||||||
|         height="4.66" |  | ||||||
|         transform="translate(279.49 555.48) rotate(180)" |  | ||||||
|         style="fill: #e6e6e6" |  | ||||||
|       ></rect> |  | ||||||
|       <rect |  | ||||||
|         x="78.51" |  | ||||||
|         y="275.41" |  | ||||||
|         width="111.48" |  | ||||||
|         height="4.66" |  | ||||||
|         transform="translate(268.5 555.48) rotate(180)" |  | ||||||
|         style="fill: #f0f0f0" |  | ||||||
|       ></rect> |  | ||||||
|       <rect |  | ||||||
|         x="44.78" |  | ||||||
|         y="128.39" |  | ||||||
|         width="182.56" |  | ||||||
|         height="97.42" |  | ||||||
|         transform="translate(313.16 41.04) rotate(90)" |  | ||||||
|         style="fill: #fafafa" |  | ||||||
|       ></rect> |  | ||||||
|       <polygon |  | ||||||
|         points="114.91 268.38 142.33 85.82 161.81 85.82 134.38 268.38 114.91 268.38" |  | ||||||
|         style="fill: #fff" |  | ||||||
|       ></polygon> |  | ||||||
|       <polygon points="118 268.38 145.42 85.82 164.9 85.82 137.47 268.38 118 268.38" style="fill: #fff"></polygon> |  | ||||||
|       <polygon |  | ||||||
|         points="138.56 268.38 165.99 85.82 173.58 85.82 146.16 268.38 138.56 268.38" |  | ||||||
|         style="fill: #fff" |  | ||||||
|       ></polygon> |  | ||||||
|       <rect |  | ||||||
|         x="-3.49" |  | ||||||
|         y="176.65" |  | ||||||
|         width="182.56" |  | ||||||
|         height="0.89" |  | ||||||
|         transform="translate(264.9 89.3) rotate(90)" |  | ||||||
|         style="fill: #e6e6e6" |  | ||||||
|       ></rect> |  | ||||||
|       <polygon |  | ||||||
|         points="78.66 91.12 187.47 91.12 188.11 88.55 79.31 88.55 78.66 91.12" |  | ||||||
|         style="fill: #ebebeb; opacity: 0.6000000000000001" |  | ||||||
|       ></polygon> |  | ||||||
|       <polygon |  | ||||||
|         points="78.66 95.32 187.47 95.32 188.11 92.76 79.31 92.76 78.66 95.32" |  | ||||||
|         style="fill: #ebebeb; opacity: 0.6000000000000001" |  | ||||||
|       ></polygon> |  | ||||||
|       <polygon |  | ||||||
|         points="78.66 99.53 187.47 99.53 188.11 96.97 79.31 96.97 78.66 99.53" |  | ||||||
|         style="fill: #ebebeb; opacity: 0.6000000000000001" |  | ||||||
|       ></polygon> |  | ||||||
|       <polygon |  | ||||||
|         points="78.66 103.74 187.47 103.74 188.11 101.17 79.31 101.17 78.66 103.74" |  | ||||||
|         style="fill: #ebebeb; opacity: 0.6000000000000001" |  | ||||||
|       ></polygon> |  | ||||||
|       <polygon |  | ||||||
|         points="78.66 107.95 187.47 107.95 188.11 105.38 79.31 105.38 78.66 107.95" |  | ||||||
|         style="fill: #ebebeb; opacity: 0.6000000000000001" |  | ||||||
|       ></polygon> |  | ||||||
|       <polygon |  | ||||||
|         points="78.66 112.15 187.47 112.15 188.11 109.59 79.31 109.59 78.66 112.15" |  | ||||||
|         style="fill: #ebebeb; opacity: 0.6000000000000001" |  | ||||||
|       ></polygon> |  | ||||||
|       <rect x="58.78" y="67" width="156.92" height="3.79" style="fill: #f0f0f0"></rect> |  | ||||||
|       <rect x="204.61" y="63.81" width="8.25" height="242.84" style="fill: #fafafa; opacity: 0.8"></rect> |  | ||||||
|       <rect x="204.61" y="63.81" width="2.14" height="242.84" style="fill: #f0f0f0; opacity: 0.8"></rect> |  | ||||||
|       <rect x="196.36" y="63.81" width="8.25" height="242.84" style="fill: #fafafa; opacity: 0.8"></rect> |  | ||||||
|       <rect x="196.36" y="63.81" width="2.14" height="242.84" style="fill: #f0f0f0; opacity: 0.8"></rect> |  | ||||||
|       <rect x="188.11" y="63.81" width="8.25" height="242.84" style="fill: #fafafa; opacity: 0.8"></rect> |  | ||||||
|       <rect x="77.09" y="63.81" width="8.25" height="242.84" style="fill: #fafafa; opacity: 0.8"></rect> |  | ||||||
|       <rect x="77.09" y="63.81" width="2.14" height="242.84" style="fill: #f0f0f0; opacity: 0.8"></rect> |  | ||||||
|       <rect x="68.84" y="63.81" width="8.25" height="242.84" style="fill: #fafafa; opacity: 0.8"></rect> |  | ||||||
|       <rect x="68.84" y="63.81" width="2.14" height="242.84" style="fill: #f0f0f0; opacity: 0.8"></rect> |  | ||||||
|       <rect x="60.59" y="63.81" width="8.25" height="242.84" style="fill: #fafafa; opacity: 0.8"></rect> |  | ||||||
|       <rect |  | ||||||
|         x="375.76" |  | ||||||
|         y="291.61" |  | ||||||
|         width="16.81" |  | ||||||
|         height="84" |  | ||||||
|         transform="translate(768.34 667.22) rotate(180)" |  | ||||||
|         style="fill: #f0f0f0" |  | ||||||
|       ></rect> |  | ||||||
|       <rect |  | ||||||
|         x="243.98" |  | ||||||
|         y="375.61" |  | ||||||
|         width="142.46" |  | ||||||
|         height="6.79" |  | ||||||
|         transform="translate(630.42 758.01) rotate(180)" |  | ||||||
|         style="fill: #f0f0f0" |  | ||||||
|       ></rect> |  | ||||||
|       <rect x="237.85" y="291.61" width="137.92" height="84" style="fill: #f5f5f5"></rect> |  | ||||||
|       <rect x="250.41" y="300.51" width="112.79" height="27.94" style="fill: #f0f0f0"></rect> |  | ||||||
|       <rect x="250.41" y="334.85" width="112.79" height="27.94" style="fill: #f0f0f0"></rect> |  | ||||||
|       <path |  | ||||||
|         d="M293.44,304.36h26.73a2.41,2.41,0,0,0,2.41-2.41h0a2.42,2.42,0,0,0-2.41-2.41H293.44A2.42,2.42,0,0,0,291,302h0A2.41,2.41,0,0,0,293.44,304.36Z" |  | ||||||
|         style="fill: #f5f5f5" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M293.44,338.71h26.73a2.42,2.42,0,0,0,2.41-2.41h0a2.41,2.41,0,0,0-2.41-2.41H293.44A2.41,2.41,0,0,0,291,336.3h0A2.42,2.42,0,0,0,293.44,338.71Z" |  | ||||||
|         style="fill: #f5f5f5" |  | ||||||
|       ></path> |  | ||||||
|       <rect |  | ||||||
|         x="233.59" |  | ||||||
|         y="288.33" |  | ||||||
|         width="142.18" |  | ||||||
|         height="3.28" |  | ||||||
|         transform="translate(609.35 579.95) rotate(180)" |  | ||||||
|         style="fill: #f0f0f0" |  | ||||||
|       ></rect> |  | ||||||
|       <rect x="375.76" y="288.33" width="21.28" height="3.28" style="fill: #e6e6e6"></rect> |  | ||||||
|       <path |  | ||||||
|         d="M108.34,376.83h0a7.25,7.25,0,0,1-7.23-7.23V298.84a7.25,7.25,0,0,1,7.23-7.23h0a7.24,7.24,0,0,1,7.22,7.23V369.6A7.24,7.24,0,0,1,108.34,376.83Z" |  | ||||||
|         style="fill: #f5f5f5" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M112.47,374h0a4.9,4.9,0,0,1-4.88-4.88V299.34a4.9,4.9,0,0,1,4.88-4.88h0a4.9,4.9,0,0,1,4.89,4.88V369.1A4.9,4.9,0,0,1,112.47,374Z" |  | ||||||
|         style="fill: #ebebeb" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M118.83,376.83h0a7.24,7.24,0,0,1-7.22-7.23V298.84a7.24,7.24,0,0,1,7.22-7.23h0a7.25,7.25,0,0,1,7.23,7.23V369.6A7.25,7.25,0,0,1,118.83,376.83Z" |  | ||||||
|         style="fill: #f5f5f5" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M123,374h0a4.89,4.89,0,0,1-4.88-4.88V299.34a4.89,4.89,0,0,1,4.88-4.88h0a4.89,4.89,0,0,1,4.88,4.88V369.1A4.89,4.89,0,0,1,123,374Z" |  | ||||||
|         style="fill: #ebebeb" |  | ||||||
|       ></path> |  | ||||||
|       <rect x="122.1" y="291.61" width="14.45" height="85.22" rx="7.23" style="fill: #f5f5f5"></rect> |  | ||||||
|       <path |  | ||||||
|         d="M133.47,374h0a4.89,4.89,0,0,1-4.88-4.88V299.34a4.89,4.89,0,0,1,4.88-4.88h0a4.89,4.89,0,0,1,4.88,4.88V369.1A4.89,4.89,0,0,1,133.47,374Z" |  | ||||||
|         style="fill: #ebebeb" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M139.83,376.83h0a7.25,7.25,0,0,1-7.23-7.23V298.84a7.25,7.25,0,0,1,7.23-7.23h0a7.25,7.25,0,0,1,7.23,7.23V369.6A7.25,7.25,0,0,1,139.83,376.83Z" |  | ||||||
|         style="fill: #f5f5f5" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M144,374h0a4.9,4.9,0,0,1-4.89-4.88V299.34a4.9,4.9,0,0,1,4.89-4.88h0a4.9,4.9,0,0,1,4.88,4.88V369.1A4.9,4.9,0,0,1,144,374Z" |  | ||||||
|         style="fill: #ebebeb" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M150.33,376.83h0a7.25,7.25,0,0,1-7.23-7.23V298.84a7.25,7.25,0,0,1,7.23-7.23h0a7.25,7.25,0,0,1,7.23,7.23V369.6A7.25,7.25,0,0,1,150.33,376.83Z" |  | ||||||
|         style="fill: #f5f5f5" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M154.47,374h0a4.9,4.9,0,0,1-4.89-4.88V299.34a4.9,4.9,0,0,1,4.89-4.88h0a4.9,4.9,0,0,1,4.88,4.88V369.1A4.9,4.9,0,0,1,154.47,374Z" |  | ||||||
|         style="fill: #ebebeb" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M160.83,376.83h0a7.25,7.25,0,0,1-7.23-7.23V298.84a7.25,7.25,0,0,1,7.23-7.23h0a7.24,7.24,0,0,1,7.22,7.23V369.6A7.24,7.24,0,0,1,160.83,376.83Z" |  | ||||||
|         style="fill: #f5f5f5" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M165,374h0a4.9,4.9,0,0,1-4.88-4.88V299.34a4.9,4.9,0,0,1,4.88-4.88h0a4.9,4.9,0,0,1,4.89,4.88V369.1A4.9,4.9,0,0,1,165,374Z" |  | ||||||
|         style="fill: #ebebeb" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M171.33,376.83h0a7.25,7.25,0,0,1-7.23-7.23V298.84a7.25,7.25,0,0,1,7.23-7.23h0a7.24,7.24,0,0,1,7.22,7.23V369.6A7.24,7.24,0,0,1,171.33,376.83Z" |  | ||||||
|         style="fill: #f5f5f5" |  | ||||||
|       ></path> |  | ||||||
|       <rect x="157.39" y="364.15" width="24.4" height="3.2" rx="1.6" style="fill: #f5f5f5"></rect> |  | ||||||
|       <path |  | ||||||
|         d="M180.19,306.38H159a1.6,1.6,0,0,1-1.6-1.6h0a1.6,1.6,0,0,1,1.6-1.6h21.2a1.6,1.6,0,0,1,1.6,1.6h0A1.6,1.6,0,0,1,180.19,306.38Z" |  | ||||||
|         style="fill: #f5f5f5" |  | ||||||
|       ></path> |  | ||||||
|     </g> |  | ||||||
|     <g id="freepik--Shadow--inject-83"> |  | ||||||
|       <ellipse |  | ||||||
|         id="freepik--path--inject-83" |  | ||||||
|         cx="250" |  | ||||||
|         cy="416.24" |  | ||||||
|         rx="193.89" |  | ||||||
|         ry="11.32" |  | ||||||
|         style="fill: #f5f5f5" |  | ||||||
|       ></ellipse> |  | ||||||
|     </g> |  | ||||||
|     <g id="freepik--information-tab--inject-83"> |  | ||||||
|       <path |  | ||||||
|         d="M409.83,248.66h-239a9.25,9.25,0,0,1-9.32-9.93l8.76-141.08a10.75,10.75,0,0,1,10.55-9.94h239a9.26,9.26,0,0,1,9.32,9.94l-8.76,141.08A10.75,10.75,0,0,1,409.83,248.66Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M409.83,248.66h-239a9.25,9.25,0,0,1-9.32-9.93l8.76-141.08a10.75,10.75,0,0,1,10.55-9.94h239a9.26,9.26,0,0,1,9.32,9.94l-8.76,141.08A10.75,10.75,0,0,1,409.83,248.66Z" |  | ||||||
|         style="fill: #fff; opacity: 0.8" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M201.46,128.36H173a2.61,2.61,0,0,1-2.64-2.81l.81-13a3,3,0,0,1,3-2.82h28.46Z" |  | ||||||
|         style="fill: #fff; opacity: 0.4" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M419.67,90.2H211.28a8,8,0,0,0-7.91,7.45l-2,32.37H172.9a3,3,0,0,0-3,2.82l-.75,12.2a2.61,2.61,0,0,0,2.64,2.82h28.46l-5.64,90.87a6.92,6.92,0,0,0,7,7.45H410a8,8,0,0,0,7.91-7.45l8.76-141.08A6.91,6.91,0,0,0,419.67,90.2Z" |  | ||||||
|         style="fill: #fff" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M199,167.36H170.58a2.62,2.62,0,0,1-2.65-2.82l.76-12.2a3,3,0,0,1,3-2.82h28.46Z" |  | ||||||
|         style="fill: #fff; opacity: 0.4" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M197.83,186.86H169.37a2.62,2.62,0,0,1-2.65-2.82l.76-12.21a3,3,0,0,1,3-2.81h28.46Z" |  | ||||||
|         style="fill: #fff; opacity: 0.4" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M196.62,206.36H168.16a2.63,2.63,0,0,1-2.65-2.82l.76-12.21a3.05,3.05,0,0,1,3-2.82h28.46Z" |  | ||||||
|         style="fill: #fff; opacity: 0.4" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M195.41,225.85H167A2.62,2.62,0,0,1,164.3,223l.76-12.2a3,3,0,0,1,3-2.82h28.47Z" |  | ||||||
|         style="fill: #fff; opacity: 0.4" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M172.63,145.59a1.13,1.13,0,0,1-1.15-1.23l.66-10.71a1.48,1.48,0,0,1,1.44-1.36H197.7a1.13,1.13,0,0,1,1.15,1.23l-.66,10.72a1.48,1.48,0,0,1-1.44,1.35Z" |  | ||||||
|         style="fill: currentColor; opacity: 0.2" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M253,107H218.57a4.47,4.47,0,0,1-4.49-4.79h0a5.17,5.17,0,0,1,5.08-4.78h34.41a4.46,4.46,0,0,1,4.49,4.78h0A5.19,5.19,0,0,1,253,107Z" |  | ||||||
|         style="fill: currentColor; opacity: 0.30000000000000004" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M417,102.22a5.17,5.17,0,0,1-5.08,4.79,4.46,4.46,0,0,1-4.49-4.79,5.16,5.16,0,0,1,5.08-4.78A4.45,4.45,0,0,1,417,102.22Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M319.53,188.84H218a8.83,8.83,0,0,1-8.9-9.49L212.15,130a10.23,10.23,0,0,1,10.07-9.48H323.78a8.81,8.81,0,0,1,8.89,9.48l-3.06,49.34A10.26,10.26,0,0,1,319.53,188.84Zm-97.34-67.9a9.79,9.79,0,0,0-9.63,9.07l-3.06,49.34a8.43,8.43,0,0,0,8.51,9.07H319.56a9.79,9.79,0,0,0,9.63-9.07L332.26,130a8.44,8.44,0,0,0-8.51-9.07Z" |  | ||||||
|         style="fill: currentColor; opacity: 0.4" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M230.33,153.34l14.57,9.43a33,33,0,0,1,11.33-10.27L248.4,137A52.81,52.81,0,0,0,230.33,153.34Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M230.33,153.34l14.57,9.43a33,33,0,0,1,11.33-10.27L248.4,137A52.81,52.81,0,0,0,230.33,153.34Z" |  | ||||||
|         style="fill: #fff; opacity: 0.8" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M221.55,178.6h17.84a31.51,31.51,0,0,1,5.51-15.83l-14.57-9.43A50.28,50.28,0,0,0,221.55,178.6Z" |  | ||||||
|         style="fill: #263238" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M272.36,130.76a49.82,49.82,0,0,0-24,6.22l7.83,15.52a31.31,31.31,0,0,1,15-3.89,27.86,27.86,0,0,1,28.13,30h17.84C318.88,152.18,298.79,130.76,272.36,130.76Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path d="M260.78,207h-52.3a.85.85,0,0,1-.85-.91l.23-3.68a1,1,0,0,1,1-.91h52.3Z" style="fill: currentColor"></path> |  | ||||||
|       <path |  | ||||||
|         d="M260.78,207h66a1,1,0,0,0,1-.91l.23-3.68a.85.85,0,0,0-.85-.91h-66Z" |  | ||||||
|         style="fill: currentColor; opacity: 0.2" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M296.3,221.51H207.58a.84.84,0,0,1-.85-.91l.23-3.67a1,1,0,0,1,1-.91h88.72Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M296.3,221.51h29.58a1,1,0,0,0,1-.91l.23-3.67a.84.84,0,0,0-.85-.91H296.64Z" |  | ||||||
|         style="fill: currentColor; opacity: 0.2" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M217.1,236H206.68a.85.85,0,0,1-.85-.91l.23-3.68a1,1,0,0,1,1-.91h10.42Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M217.1,236H325a1,1,0,0,0,1-.91l.23-3.68a.85.85,0,0,0-.86-.91H217.44Z" |  | ||||||
|         style="fill: currentColor; opacity: 0.2" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M348.77,236.45a.38.38,0,0,1-.39-.41l7.16-115.31a.44.44,0,0,1,.44-.41.38.38,0,0,1,.38.41L349.2,236A.44.44,0,0,1,348.77,236.45Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M356.83,150.94a3,3,0,0,1-2.93,2.76,2.57,2.57,0,0,1-2.59-2.76,3,3,0,0,1,2.94-2.76A2.55,2.55,0,0,1,356.83,150.94Z" |  | ||||||
|         style="fill: #fff" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M353.88,154.11a3,3,0,0,1-3-3.17,3.43,3.43,0,0,1,3.37-3.18,3,3,0,0,1,3,3.18A3.42,3.42,0,0,1,353.88,154.11Zm.34-5.52a2.53,2.53,0,0,0-2.49,2.35,2.18,2.18,0,0,0,2.2,2.34,2.53,2.53,0,0,0,2.49-2.34A2.18,2.18,0,0,0,354.22,148.59Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M355.29,175.78a3,3,0,0,1-2.93,2.76,2.57,2.57,0,0,1-2.59-2.76A3,3,0,0,1,352.7,173,2.56,2.56,0,0,1,355.29,175.78Z" |  | ||||||
|         style="fill: #fff" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M352.34,179a3,3,0,0,1-3-3.17,3.43,3.43,0,0,1,3.37-3.18,3,3,0,0,1,3,3.18A3.42,3.42,0,0,1,352.34,179Zm.34-5.52a2.53,2.53,0,0,0-2.49,2.35,2.17,2.17,0,0,0,2.2,2.34,2.53,2.53,0,0,0,2.49-2.34A2.18,2.18,0,0,0,352.68,173.43Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <polygon points="351.78 187.86 348.13 193.57 354.73 193.57 351.78 187.86" style="fill: #fff"></polygon> |  | ||||||
|       <path |  | ||||||
|         d="M354.7,194h-6.6a.39.39,0,0,1-.34-.2.42.42,0,0,1,0-.42l3.66-5.71a.42.42,0,0,1,.71,0l3,5.71a.44.44,0,0,1-.4.62Zm-5.83-.82H354l-2.3-4.48Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M398.45,236.45a.38.38,0,0,1-.39-.41l7.16-115.31a.44.44,0,0,1,.44-.41.38.38,0,0,1,.39.41L398.89,236A.45.45,0,0,1,398.45,236.45Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M403.67,196.71a2.56,2.56,0,0,0-2.58-2.76,3,3,0,0,0-2.94,2.76,2.57,2.57,0,0,0,2.59,2.76A3,3,0,0,0,403.67,196.71Z" |  | ||||||
|         style="fill: #fff" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M400.72,199.88a3,3,0,0,1-3-3.17,3.42,3.42,0,0,1,3.37-3.17,3,3,0,0,1,3,3.17A3.42,3.42,0,0,1,400.72,199.88Zm.34-5.52a2.54,2.54,0,0,0-2.49,2.35,2.19,2.19,0,0,0,2.2,2.35,2.54,2.54,0,0,0,2.49-2.35A2.19,2.19,0,0,0,401.06,194.36Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M407.53,134.6a2.56,2.56,0,0,0-2.59-2.76A3,3,0,0,0,402,134.6a2.57,2.57,0,0,0,2.59,2.76A3,3,0,0,0,407.53,134.6Z" |  | ||||||
|         style="fill: #fff" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M404.57,137.77a2.94,2.94,0,0,1-3-3.17,3.43,3.43,0,0,1,3.37-3.18,3,3,0,0,1,3,3.18A3.43,3.43,0,0,1,404.57,137.77Zm.35-5.52a2.53,2.53,0,0,0-2.49,2.35,2.17,2.17,0,0,0,2.2,2.34,2.53,2.53,0,0,0,2.49-2.34A2.18,2.18,0,0,0,404.92,132.25Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <polygon points="402.64 168.92 399.7 163.2 406.29 163.2 402.64 168.92" style="fill: #fff"></polygon> |  | ||||||
|       <path |  | ||||||
|         d="M402.61,169.33a.38.38,0,0,1-.34-.21l-2.95-5.71a.43.43,0,0,1,0-.41.44.44,0,0,1,.37-.21h6.6a.39.39,0,0,1,.35.21.43.43,0,0,1,0,.41L403,169.12A.47.47,0,0,1,402.61,169.33Zm-2.22-5.71,2.3,4.47,2.86-4.47Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M373.61,236.45a.38.38,0,0,1-.39-.41l7.16-115.31a.44.44,0,0,1,.44-.41.37.37,0,0,1,.38.41L374.05,236A.45.45,0,0,1,373.61,236.45Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M381.24,158a3,3,0,0,1-2.94,2.76,2.55,2.55,0,0,1-2.58-2.76,3,3,0,0,1,2.93-2.76A2.57,2.57,0,0,1,381.24,158Z" |  | ||||||
|         style="fill: #fff" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M378.28,161.2a3,3,0,0,1-3-3.18,3.42,3.42,0,0,1,3.37-3.17,3,3,0,0,1,3,3.17A3.43,3.43,0,0,1,378.28,161.2Zm.34-5.53a2.54,2.54,0,0,0-2.49,2.35,2.19,2.19,0,0,0,2.2,2.35,2.54,2.54,0,0,0,2.49-2.35A2.18,2.18,0,0,0,378.62,155.67Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M377.81,213.26a3,3,0,0,1-2.93,2.76,2.56,2.56,0,0,1-2.59-2.76,3,3,0,0,1,2.93-2.76A2.57,2.57,0,0,1,377.81,213.26Z" |  | ||||||
|         style="fill: #fff" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M374.85,216.43a3,3,0,0,1-3-3.17,3.43,3.43,0,0,1,3.37-3.18,3,3,0,0,1,3,3.18A3.42,3.42,0,0,1,374.85,216.43Zm.34-5.52a2.53,2.53,0,0,0-2.49,2.35,2.18,2.18,0,0,0,2.2,2.34,2.53,2.53,0,0,0,2.49-2.34A2.18,2.18,0,0,0,375.19,210.91Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <polygon points="380.46 126.12 376.8 131.84 383.4 131.84 380.46 126.12" style="fill: #fff"></polygon> |  | ||||||
|       <path |  | ||||||
|         d="M383.37,132.25h-6.59a.39.39,0,0,1-.35-.21.43.43,0,0,1,0-.41l3.65-5.71a.43.43,0,0,1,.72,0l2.94,5.71a.4.4,0,0,1,0,.41A.47.47,0,0,1,383.37,132.25Zm-5.82-.83h5.16L380.4,127Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|     </g> |  | ||||||
|     <g id="freepik--Character--inject-83"> |  | ||||||
|       <path |  | ||||||
|         d="M111.54,155.81l-1,4.87-1,5c-.66,3.32-1.22,6.64-1.73,9.9-.26,1.63-.46,3.24-.63,4.83s-.32,3.13-.4,4.62a40,40,0,0,0,0,4.08c0,1.17.26,2.17.21,2.28l-.67-1.15c-.3-.3-.85-.58-.94-.45s.26.36.9.53a13.51,13.51,0,0,0,2.51.35,29.74,29.74,0,0,0,3.22-.08,65.84,65.84,0,0,0,7.23-1c1.25-.24,2.52-.49,3.78-.77l3.74-.81.5-.11a5.25,5.25,0,0,1,4.24,9.34l-1.87,1.38-1.84,1.26c-1.26.8-2.53,1.58-3.85,2.3a55.3,55.3,0,0,1-8.46,3.78,41.08,41.08,0,0,1-4.87,1.31,26.44,26.44,0,0,1-5.69.54,20.16,20.16,0,0,1-7-1.34,16.42,16.42,0,0,1-7.2-5.61,7.56,7.56,0,0,1-.52-.86l-.15-.29a28,28,0,0,1-2.55-8,47.2,47.2,0,0,1-.64-6.62q-.11-3.13,0-6.1t.41-5.85c.34-3.84.91-7.58,1.56-11.29.34-1.85.68-3.69,1.1-5.52.2-.92.4-1.84.63-2.76l.74-2.83a10.47,10.47,0,0,1,20.39,4.73Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M111.54,155.81l-1,4.87-1,5c-.66,3.32-1.22,6.64-1.73,9.9-.26,1.63-.46,3.24-.63,4.83s-.32,3.13-.4,4.62a40,40,0,0,0,0,4.08c0,1.17.26,2.17.21,2.28l-.67-1.15c-.3-.3-.85-.58-.94-.45s.26.36.9.53a13.51,13.51,0,0,0,2.51.35,29.74,29.74,0,0,0,3.22-.08,65.84,65.84,0,0,0,7.23-1c1.25-.24,2.52-.49,3.78-.77l3.74-.81.5-.11a5.25,5.25,0,0,1,4.24,9.34l-1.87,1.38-1.84,1.26c-1.26.8-2.53,1.58-3.85,2.3a55.3,55.3,0,0,1-8.46,3.78,41.08,41.08,0,0,1-4.87,1.31,26.44,26.44,0,0,1-5.69.54,20.16,20.16,0,0,1-7-1.34,16.42,16.42,0,0,1-7.2-5.61,7.56,7.56,0,0,1-.52-.86l-.15-.29a28,28,0,0,1-2.55-8,47.2,47.2,0,0,1-.64-6.62q-.11-3.13,0-6.1t.41-5.85c.34-3.84.91-7.58,1.56-11.29.34-1.85.68-3.69,1.1-5.52.2-.92.4-1.84.63-2.76l.74-2.83a10.47,10.47,0,0,1,20.39,4.73Z" |  | ||||||
|         style="opacity: 0.2" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M86.23,411.58S76.77,403,77,400.28l-7.86-4-4.68,8.08,4.34,2.43L70,406.4l.79,1.37c3.92,2,12.48,5.91,15.47,5.8A1.92,1.92,0,0,0,86.23,411.58Z" |  | ||||||
|         style="fill: #263238" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M86.91,310.62c5.72-41,3.85-65.87,9.86-86.06l37.2-3s-16.49,65-24,92.06-31.23,88.42-31.23,88.42l-10.35-5.3S76.84,342.32,86.91,310.62Z" |  | ||||||
|         style="fill: #263238" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M117.25,251.87c-2.53,5.85-7.47,43.42-7.45,62.18,0-.13.08-.28.12-.42,2.65-9.51,6.42-23.72,10.18-38.13Z" |  | ||||||
|         style="opacity: 0.2" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M146,412.92s-15.43-3.5-16.14-6h-9.79l-.81,9.33h5.44l1-.86,1.22.86c4.4,0,17.12,0,19.86-1.6C146.8,413.23,146,412.92,146,412.92Z" |  | ||||||
|         style="fill: #263238" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M119.87,311.77c-8.17-55.51-8.17-89.88-8.17-89.88l36.4-.59s-4.37,66.2-5.89,93.93c-1.57,28.83-10.57,92.29-10.57,92.29H119S116,347.42,119.87,311.77Z" |  | ||||||
|         style="fill: #263238" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M115.92,117.67c-1.73,10.89-4.87,16.73-7,22.14,3.67,3.42,11.53,7.65,19.46,7.54s6.49-5.48,4.36-8.25c-5.69-2.87-5.91-5.77-4.52-8.31Z" |  | ||||||
|         style="fill: #7f3e3b" |  | ||||||
|       ></path> |  | ||||||
|       <path d="M102.32,141.35s5.06-5.95,7.06-6.95,17.13,1,20.7,1.72,7.92,6,7.92,6Z" style="fill: #263238"></path> |  | ||||||
|       <path |  | ||||||
|         d="M141,116.76c-.16.72.09,1.38.56,1.48s1-.4,1.14-1.12-.09-1.38-.56-1.48S141.14,116,141,116.76Z" |  | ||||||
|         style="fill: #263238" |  | ||||||
|       ></path> |  | ||||||
|       <path d="M140.71,117.75a26.08,26.08,0,0,0,2.06,6.87c-1.54.91-3.58-.1-3.58-.1Z" style="fill: #630f0f"></path> |  | ||||||
|       <path |  | ||||||
|         d="M143.46,112.63a.41.41,0,0,1-.4,0,3.39,3.39,0,0,0-3.11.1.42.42,0,0,1-.59-.12.43.43,0,0,1,.12-.6,4.23,4.23,0,0,1,3.92-.18.43.43,0,0,1,.22.57A.38.38,0,0,1,143.46,112.63Z" |  | ||||||
|         style="fill: #263238" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M117.18,109.46c-1.43,8.92-2.73,14.07.72,19.55,5.18,8.24,17,6.56,21.07-1.78,3.68-7.5,5.41-20.83-2.45-26.19A12.46,12.46,0,0,0,117.18,109.46Z" |  | ||||||
|         style="fill: #7f3e3b" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M133.39,118c7.22,1.56,5.12-7.36,3.39-8.25,4.34,2.6,7.22-.42,7-3.14,3.32-.55,3.15-6,.87-6.17-1.44-3.77-8.17-6.94-9.42-4.61-3.63-4.22-13.35-3.5-11.94-.44-3.69-.72-11.55-.39-8.92,5.17-5.61.72-5.34,10.32-1.68,11.32-3.83,2.12-.12,9.36,1.53,13.9S132.31,126.28,133.39,118Z" |  | ||||||
|         style="fill: #263238" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M129.28,117.09a7.61,7.61,0,0,0,1.18,5.45c1.41,2,3.59.75,4.44-1.66.76-2.16.94-5.8-1.07-6.89S129.65,114.65,129.28,117.09Z" |  | ||||||
|         style="fill: #7f3e3b" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M102.83,140.35c12.3-1.51,29.75-1.38,41.33.64A13.17,13.17,0,0,1,155,152.91c1.44,17.67-2.47,48.55-5.85,79.64-27.25,9.14-54.91-.13-54.91-.13-.61-6.27,2.77-26.82,4.88-37.79-1.55-11.32-5.48-24.29-7.69-39.34A13.15,13.15,0,0,1,102.83,140.35Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M139.84,165.09c1.86,10.64,7.75,23.32,13.14,31.71.74-7.35,1.36-14.35,1.75-20.81Z" |  | ||||||
|         style="opacity: 0.2" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M229.93,140.44a17.77,17.77,0,0,0-19.06,30c-1.78,2.4-7,9.45-8.59,12.17-2,3.29-3,6.25-1.62,7.07s3.48-1.51,5.43-4.8c1.62-2.71,5.34-10.65,6.59-13.37a17.77,17.77,0,0,0,17.25-31.06Zm4.27,23.23a15.54,15.54,0,1,1-5.41-21.31A15.53,15.53,0,0,1,234.2,163.67Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M234.93,164.1a16.39,16.39,0,1,1-5.71-22.46A16.38,16.38,0,0,1,234.93,164.1Z" |  | ||||||
|         style="fill: currentColor; opacity: 0.2" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M209.43,179.66l-2.17-1.92a3.36,3.36,0,0,0-3-.76l-5,1.14a6.28,6.28,0,0,0-4.4,3.72l-.48,1.16c3.37,3.43,9.54,4.66,9.54,4.66l1.73.54a2.79,2.79,0,0,0,3.57-1.76l1.13-3.39A3.27,3.27,0,0,0,209.43,179.66Z" |  | ||||||
|         style="fill: #7f3e3b" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M154.47,149.29l2,4.39,2.11,4.48c1.41,3,2.9,5.89,4.39,8.72q1.13,2.12,2.32,4.11c.77,1.33,1.56,2.61,2.36,3.79A38.85,38.85,0,0,0,170,177.9c.7.86,1.42,1.48,1.44,1.58l-1.24-.51a12,12,0,0,0,4.36,1.1,43.06,43.06,0,0,0,6.37.08c2.28-.1,4.63-.34,7-.62,1.19-.15,2.4-.29,3.61-.47l3.58-.48.49-.07a5.26,5.26,0,0,1,3.6,9.6l-1.82,1.2-1.79,1.08c-1.21.69-2.43,1.36-3.69,2s-2.53,1.21-3.84,1.75-2.66,1-4,1.49a46,46,0,0,1-8.9,2,28.27,28.27,0,0,1-10.86-.66,4.81,4.81,0,0,1-.75-.28l-.48-.23a26.69,26.69,0,0,1-6.86-4.74,46.93,46.93,0,0,1-4.48-4.82,83.07,83.07,0,0,1-6.74-9.64c-2-3.23-3.74-6.51-5.39-9.8-.81-1.66-1.62-3.31-2.36-5-.37-.84-.75-1.69-1.1-2.54l-1.08-2.67a10.47,10.47,0,0,1,19.22-8.3Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|     </g> |  | ||||||
|     <g id="freepik--Plant--inject-83"> |  | ||||||
|       <path |  | ||||||
|         d="M362.85,378.84c-1.54-12.09,5.2-21.84,11.72-31.28,7.67-11.1,15.6-22.57,10.91-38.32a33,33,0,0,0-6.31-11.77,40.88,40.88,0,0,1-13.75,18c-8.7,6.48-19,8.52-26.17,5.21-4.05-1.86-9-6.25-9.75-16.53-.74-10.52,5.37-18,16.33-20s24.27,2,33,11.41a43.49,43.49,0,0,0,1.84-20.25l1-.14a44.23,44.23,0,0,1-2.07,21.24A33.94,33.94,0,0,1,386.44,309c4.83,16.2-3.24,27.88-11.05,39.17-6.71,9.71-13,18.88-11.55,30.58Zm-11.33-94.2a31.2,31.2,0,0,0-5.51.48c-10.41,1.89-16.21,9-15.52,18.93.54,7.75,3.71,13.18,9.18,15.69,6.87,3.16,16.75,1.16,25.16-5.1a39.92,39.92,0,0,0,13.6-18A36.79,36.79,0,0,0,351.52,284.64Z" |  | ||||||
|         style="fill: #263238" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M381.57,278.67c-7.92-7.07-8.83-16.4-4.19-18.37C383.81,257.57,386.21,268.93,381.57,278.67Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M375.56,347c-5.66-9-6-20.22.91-21C382.76,325.26,384.14,335.92,375.56,347Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M381.75,281.64c-1.09-6.71,2.21-11.71,5.31-10.82C391.35,272.05,388,278.66,381.75,281.64Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M366.18,314.07c-3.47-7.48-1.25-14.41,2.67-14.39C374.27,299.72,372.48,308.55,366.18,314.07Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M352.86,284.24c-7.14,1.21-12.5-2.28-11.57-5.59C342.58,274.06,349.65,277.62,352.86,284.24Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M352.86,284.24c-4.38-2.34-5-5.82-2.76-6.75C353.25,276.2,354.75,280.39,352.86,284.24Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M387.28,314c-1.73-4.67.1-7.7,2.41-6.89C392.9,308.24,391.25,312.36,387.28,314Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <path |  | ||||||
|         d="M331.11,310.73c-4.95.54-7.44-2-6.09-4C326.9,303.87,330.5,306.48,331.11,310.73Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|       <rect |  | ||||||
|         x="385.12" |  | ||||||
|         y="386.95" |  | ||||||
|         width="17.52" |  | ||||||
|         height="1" |  | ||||||
|         transform="translate(-43.09 725.57) rotate(-82.26)" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></rect> |  | ||||||
|       <rect |  | ||||||
|         x="387.27" |  | ||||||
|         y="404.29" |  | ||||||
|         width="8.47" |  | ||||||
|         height="1" |  | ||||||
|         transform="translate(-62.35 738.17) rotate(-82.26)" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></rect> |  | ||||||
|       <path |  | ||||||
|         d="M344,371.23l5.79,42.34a3.09,3.09,0,0,0,3.06,2.67h31.26a3.09,3.09,0,0,0,3.06-2.67l5.79-42.34a3.09,3.09,0,0,0-3.06-3.5H347A3.09,3.09,0,0,0,344,371.23Z" |  | ||||||
|         style="fill: currentColor" |  | ||||||
|       ></path> |  | ||||||
|     </g> |  | ||||||
|   </svg> |  | ||||||
| </template> |  | ||||||
|  |  | ||||||
| <script lang="ts" setup></script> |  | ||||||
| <style scoped></style> |  | ||||||
| @@ -1,5 +0,0 @@ | |||||||
| import Banner1 from './Banner1.vue'; |  | ||||||
| import Banner2 from './Banner2.vue'; |  | ||||||
| import Banner3 from './Banner3.vue'; |  | ||||||
|  |  | ||||||
| export { Banner1, Banner2, Banner3 }; |  | ||||||
| @@ -1,24 +0,0 @@ | |||||||
| <template> |  | ||||||
|   <div :style="{ color }"> |  | ||||||
|     <banner1 v-if="type === '1'" /> |  | ||||||
|     <banner2 v-if="type === '2'" /> |  | ||||||
|     <banner3 v-if="type === '3'" /> |  | ||||||
|   </div> |  | ||||||
| </template> |  | ||||||
|  |  | ||||||
| <script lang="ts" setup> |  | ||||||
| import { Banner1, Banner2, Banner3 } from './components'; |  | ||||||
|  |  | ||||||
| interface Props { |  | ||||||
|   /** banner类型 */ |  | ||||||
|   type?: '1' | '2' | '3'; |  | ||||||
|   /** 主题颜色 */ |  | ||||||
|   color?: string; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| withDefaults(defineProps<Props>(), { |  | ||||||
|   type: '1', |  | ||||||
|   color: '#409eff' |  | ||||||
| }); |  | ||||||
| </script> |  | ||||||
| <style scoped></style> |  | ||||||
							
								
								
									
										22
									
								
								src/components/common/DarkModeContainer.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,22 @@ | |||||||
|  | <template> | ||||||
|  |   <div | ||||||
|  |     class="dark:bg-[#18181c] dark:text-white dark:text-opacity-82 transition-all duration-300 ease-in-out" | ||||||
|  |     :class="inverted ? 'bg-[#001428] text-white' : 'bg-white text-[#333639]'" | ||||||
|  |   > | ||||||
|  |     <slot></slot> | ||||||
|  |   </div> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script setup lang="ts"> | ||||||
|  | defineOptions({ name: 'DarkModeContainer' }); | ||||||
|  |  | ||||||
|  | interface Props { | ||||||
|  |   inverted?: boolean; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | withDefaults(defineProps<Props>(), { | ||||||
|  |   inverted: false | ||||||
|  | }); | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <style scoped></style> | ||||||
							
								
								
									
										42
									
								
								src/components/common/DarkModeSwitch.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,42 @@ | |||||||
|  | <template> | ||||||
|  |   <div class="flex-center text-18px cursor-pointer" @click="handleSwitch"> | ||||||
|  |     <icon-mdi-moon-waning-crescent v-if="darkMode" /> | ||||||
|  |     <icon-mdi-white-balance-sunny v-else /> | ||||||
|  |   </div> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script setup lang="ts"> | ||||||
|  | import { computed } from 'vue'; | ||||||
|  |  | ||||||
|  | defineOptions({ name: 'DarkModeSwitch' }); | ||||||
|  |  | ||||||
|  | interface Props { | ||||||
|  |   /** 暗黑模式 */ | ||||||
|  |   dark?: boolean; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const props = withDefaults(defineProps<Props>(), { | ||||||
|  |   dark: false | ||||||
|  | }); | ||||||
|  |  | ||||||
|  | interface Emits { | ||||||
|  |   (e: 'update:dark', darkMode: boolean): void; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const emit = defineEmits<Emits>(); | ||||||
|  |  | ||||||
|  | const darkMode = computed({ | ||||||
|  |   get() { | ||||||
|  |     return props.dark; | ||||||
|  |   }, | ||||||
|  |   set(newValue: boolean) { | ||||||
|  |     emit('update:dark', newValue); | ||||||
|  |   } | ||||||
|  | }); | ||||||
|  |  | ||||||
|  | function handleSwitch() { | ||||||
|  |   darkMode.value = !darkMode.value; | ||||||
|  | } | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <style scoped></style> | ||||||
							
								
								
									
										31
									
								
								src/components/common/ExceptionBase.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,31 @@ | |||||||
|  | <template> | ||||||
|  |   <div class="flex-col-center wh-full"> | ||||||
|  |     <div class="text-400px text-primary"> | ||||||
|  |       <icon-local-no-permission v-if="type === '403'" /> | ||||||
|  |       <icon-local-not-found v-if="type === '404'" /> | ||||||
|  |       <icon-local-service-error v-if="type === '500'" /> | ||||||
|  |     </div> | ||||||
|  |     <router-link :to="{ name: routeHomePath }"> | ||||||
|  |       <n-button type="primary">回到首页</n-button> | ||||||
|  |     </router-link> | ||||||
|  |   </div> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script lang="ts" setup> | ||||||
|  | import { routeName } from '@/router'; | ||||||
|  |  | ||||||
|  | defineOptions({ name: 'ExceptionBase' }); | ||||||
|  |  | ||||||
|  | type ExceptionType = '403' | '404' | '500'; | ||||||
|  |  | ||||||
|  | interface Props { | ||||||
|  |   /** 异常类型 403 404 500 */ | ||||||
|  |   type: ExceptionType; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | defineProps<Props>(); | ||||||
|  |  | ||||||
|  | const routeHomePath = routeName('root'); | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <style scoped></style> | ||||||
| @@ -1,897 +0,0 @@ | |||||||
| <template> |  | ||||||
|   <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500"> |  | ||||||
|     <g id="freepik--Floor--inject-70"> |  | ||||||
|       <ellipse |  | ||||||
|         id="freepik--floor--inject-70" |  | ||||||
|         cx="250" |  | ||||||
|         cy="384.61" |  | ||||||
|         rx="209.73" |  | ||||||
|         ry="94.79" |  | ||||||
|         style="fill: #f5f5f5" |  | ||||||
|       ></ellipse> |  | ||||||
|     </g> |  | ||||||
|     <g id="freepik--Shadows--inject-70"> |  | ||||||
|       <ellipse |  | ||||||
|         id="freepik--Shadow--inject-70" |  | ||||||
|         cx="352.36" |  | ||||||
|         cy="395.73" |  | ||||||
|         rx="56.05" |  | ||||||
|         ry="32.36" |  | ||||||
|         style="fill: #e0e0e0" |  | ||||||
|       ></ellipse> |  | ||||||
|       <path |  | ||||||
|         id="freepik--shadow--inject-70" |  | ||||||
|         d="M91.71,412.52c-9.53,5.57-9.53,14.59,0,20.15s25,5.56,34.51,0,9.53-14.58,0-20.15S101.24,407,91.71,412.52Z" |  | ||||||
|         style="fill: #e0e0e0" |  | ||||||
|       ></path> |  | ||||||
|     </g> |  | ||||||
|     <g id="freepik--Door--inject-70"> |  | ||||||
|       <g id="freepik--Bricks--inject-70"> |  | ||||||
|         <path |  | ||||||
|           d="M103.87,225.91v3.46c0,1.09.77,1.53,1.71,1l3.34-1.92V221L105.58,223A3.78,3.78,0,0,0,103.87,225.91Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M93.28,223v3.45c0,1.09.77,1.53,1.71,1l13.93-8V212L95,220A3.78,3.78,0,0,0,93.28,223Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M100.82,262.05,85,271.18a3.8,3.8,0,0,0-1.71,3v3.46c0,1.09.77,1.53,1.71,1l15.82-9.13a3.78,3.78,0,0,0,1.71-3V263C102.53,261.94,101.76,261.5,100.82,262.05Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M108.92,302.88l-13.93,8a3.78,3.78,0,0,0-1.71,3v3.46c0,1.09.77,1.53,1.71,1l13.93-8Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M93.28,186.59V190c0,1.09.77,1.53,1.71,1l13.93-8v-7.4l-13.93,8A3.78,3.78,0,0,0,93.28,186.59Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M77.44,295.91v3.46c0,1.09.76,1.53,1.71,1L95,291.23a3.77,3.77,0,0,0,1.71-3v-3.46c0-1.09-.76-1.53-1.71-1L79.15,293A3.77,3.77,0,0,0,77.44,295.91Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M93.28,259.32v3.46c0,1.09.77,1.53,1.71,1l13.93-8v-7.41L95,256.37A3.78,3.78,0,0,0,93.28,259.32Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M91.94,318.09v-3.45c0-1.09-.76-1.54-1.71-1l-15.82,9.13a3.8,3.8,0,0,0-1.71,3v3.46c0,1.09.77,1.53,1.71,1l15.82-9.14A3.75,3.75,0,0,0,91.94,318.09Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M92,176.33,76.2,185.46a3.8,3.8,0,0,0-1.71,3v3.46c0,1.09.77,1.53,1.71,1L92,183.74a3.8,3.8,0,0,0,1.71-3v-3.46C93.73,176.23,93,175.79,92,176.33Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M100.82,189.31,85,198.44a3.8,3.8,0,0,0-1.71,3v3.46c0,1.09.77,1.53,1.71,1l15.82-9.14a3.78,3.78,0,0,0,1.71-3v-3.46C102.53,189.2,101.76,188.76,100.82,189.31Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M100.82,225.68,85,234.81a3.8,3.8,0,0,0-1.71,3v3.46c0,1.09.77,1.53,1.71,1l15.82-9.13a3.78,3.78,0,0,0,1.71-3v-3.46C102.53,225.57,101.76,225.13,100.82,225.68Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M85,333.14,100.82,324a3.8,3.8,0,0,0,1.71-3v-3.46c0-1.09-.77-1.53-1.71-1L85,325.73a3.8,3.8,0,0,0-1.71,3v3.46C83.29,333.24,84.06,333.68,85,333.14Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M235.65,161.92v3.46a3.77,3.77,0,0,1-1.7,3l-3.34,1.93v-7.41l3.34-1.92C234.89,160.39,235.65,160.83,235.65,161.92Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M230.61,281.09l13.93-8c.94-.55,1.7-.1,1.7,1v3.45a3.77,3.77,0,0,1-1.7,3l-13.93,8Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M246.24,146.74v3.46a3.79,3.79,0,0,1-1.7,3l-13.93,8v-7.4l13.93-8C245.48,145.21,246.24,145.65,246.24,146.74Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M238.71,194.54l15.82-9.14c.94-.54,1.71-.1,1.71,1v3.46a3.8,3.8,0,0,1-1.71,3l-15.82,9.13c-1,.55-1.71.1-1.71-1V197.5A3.75,3.75,0,0,1,238.71,194.54Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M230.61,244.72l13.93-8c.94-.54,1.7-.1,1.7,1v3.45a3.77,3.77,0,0,1-1.7,3l-13.93,8Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M246.24,110.37v3.46a3.77,3.77,0,0,1-1.7,3l-13.93,8v-7.4l13.93-8C245.48,108.84,246.24,109.28,246.24,110.37Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M262.09,201.4v3.46a3.77,3.77,0,0,1-1.71,3L244.56,217c-.94.55-1.7.11-1.7-1v-3.46a3.77,3.77,0,0,1,1.7-3l15.82-9.13C261.33,199.87,262.09,200.31,262.09,201.4Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M246.24,183.11v3.46a3.79,3.79,0,0,1-1.7,3l-13.93,8v-7.4l13.93-8C245.48,181.58,246.24,182,246.24,183.11Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M247.59,240.33v-3.46a3.77,3.77,0,0,1,1.71-3l15.82-9.13c.94-.55,1.71-.11,1.71,1v3.46a3.78,3.78,0,0,1-1.71,3l-15.82,9.14C248.35,241.86,247.59,241.42,247.59,240.33Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M238.71,121.8l15.82-9.14c.94-.54,1.71-.1,1.71,1v3.46a3.8,3.8,0,0,1-1.71,3l-15.82,9.13c-1,.55-1.71.1-1.71-1v-3.46A3.75,3.75,0,0,1,238.71,121.8Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M238.71,158.17,254.53,149c.94-.54,1.71-.1,1.71,1v3.46a3.8,3.8,0,0,1-1.71,3l-15.82,9.13c-1,.55-1.71.1-1.71-1v-3.45A3.75,3.75,0,0,1,238.71,158.17Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M254.53,247.36l-15.82,9.14c-1,.54-1.71.1-1.71-1v-3.46a3.77,3.77,0,0,1,1.71-3L254.53,240c.94-.55,1.71-.1,1.71,1v3.46A3.78,3.78,0,0,1,254.53,247.36Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M230.61,299.27l13.93-8c.94-.54,1.7-.1,1.7,1v3.46a3.79,3.79,0,0,1-1.7,3l-13.93,8Z" |  | ||||||
|           style="fill: #e0e0e0" |  | ||||||
|         ></path> |  | ||||||
|       </g> |  | ||||||
|       <g id="freepik--door--inject-70"> |  | ||||||
|         <g id="freepik--door--inject-70"> |  | ||||||
|           <path |  | ||||||
|             d="M108.92,413V165.44a12,12,0,0,1,5.42-9.38L221.46,94.21a3.83,3.83,0,0,1,3.83-.38L229,96a3.79,3.79,0,0,1,1.6,3.51V347.06l-7.81,4.51-6.34-3.67-96,55.42v7.33l-7.81,4.51Z" |  | ||||||
|             style="fill: #37474f" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M134.28,395.32l-13.85,8v7.33l-7.81,4.51-3.7-2.14V165.44a11,11,0,0,1,1.6-5.35l23.58,13.62Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M112.62,167.59V415.14l7.81-4.5v-7.32l96-55.42,6.34,3.66,7.81-4.5V99.48c0-3.47-2.43-4.85-5.4-3.13L118,158.21A12,12,0,0,0,112.62,167.59Z" |  | ||||||
|             style="fill: #455a64" |  | ||||||
|           ></path> |  | ||||||
|           <polygon |  | ||||||
|             points="120.43 168.9 120.43 406.38 219.1 349.42 219.1 111.95 120.43 168.9" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></polygon> |  | ||||||
|           <polygon |  | ||||||
|             points="120.43 168.9 120.43 406.38 219.1 349.42 219.1 111.95 120.43 168.9" |  | ||||||
|             style="fill: #fff; opacity: 0.7000000000000001" |  | ||||||
|           ></polygon> |  | ||||||
|           <g style="opacity: 0.43"> |  | ||||||
|             <path |  | ||||||
|               d="M137.25,377.26V178.61l65-37.54V339.71ZM140,180.19V372.53l59.59-34.4V145.8Z" |  | ||||||
|               style="fill: currentColor" |  | ||||||
|             ></path> |  | ||||||
|             <path |  | ||||||
|               d="M137.25,178.61V377.26l65-37.55V141.07Zm62.31,159.52L140,372.53V180.19l59.59-34.39Z" |  | ||||||
|               style="opacity: 0.1" |  | ||||||
|             ></path> |  | ||||||
|           </g> |  | ||||||
|           <polygon |  | ||||||
|             points="219.1 349.42 219.1 111.95 222.75 109.83 222.76 351.57 219.1 349.42" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></polygon> |  | ||||||
|           <polygon |  | ||||||
|             points="120.43 410.64 222.76 351.57 219.1 349.42 120.43 406.38 120.43 410.64" |  | ||||||
|             style="fill: #e0e0e0" |  | ||||||
|           ></polygon> |  | ||||||
|         </g> |  | ||||||
|         <g id="freepik--Latch--inject-70"> |  | ||||||
|           <polygon |  | ||||||
|             points="122.34 258.22 124.31 259.36 124.32 292.09 122.34 290.95 122.34 258.22" |  | ||||||
|             style="fill: #e0e0e0" |  | ||||||
|           ></polygon> |  | ||||||
|           <polygon |  | ||||||
|             points="124.31 259.36 134.94 253.22 134.95 285.95 124.32 292.09 124.31 259.36" |  | ||||||
|             style="fill: #fafafa" |  | ||||||
|           ></polygon> |  | ||||||
|           <path d="M135,262.23l-4.66,2.68v5.32a.64.64,0,0,0,1,.55l3.7-2.13Z" style="opacity: 0.05"></path> |  | ||||||
|           <polygon |  | ||||||
|             points="134.94 253.22 132.97 252.08 122.34 258.22 124.31 259.36 134.94 253.22" |  | ||||||
|             style="fill: #ebebeb" |  | ||||||
|           ></polygon> |  | ||||||
|           <path |  | ||||||
|             d="M128.39,263.82l4.88,2.81,1.95-3.38-4.88-2.81h0a.94.94,0,0,0-1,.09,3,3,0,0,0-1.38,2.39A1,1,0,0,0,128.39,263.82Z" |  | ||||||
|             style="fill: #e0e0e0" |  | ||||||
|           ></path> |  | ||||||
|           <polygon |  | ||||||
|             points="130.29 264.91 132.06 265.94 132.06 263.61 133.95 262.52 132.18 261.5 130.29 262.58 130.29 264.91" |  | ||||||
|             style="opacity: 0.1" |  | ||||||
|           ></polygon> |  | ||||||
|           <polygon |  | ||||||
|             points="132.65 263.98 132.65 269.09 152.15 257.84 152.15 252.73 132.65 263.98" |  | ||||||
|             style="fill: #fafafa" |  | ||||||
|           ></polygon> |  | ||||||
|           <polygon |  | ||||||
|             points="132.65 263.98 130.88 262.95 130.88 268.07 132.65 269.09 132.65 263.98" |  | ||||||
|             style="fill: #e0e0e0" |  | ||||||
|           ></polygon> |  | ||||||
|           <polygon |  | ||||||
|             points="152.15 252.73 150.38 251.7 130.88 262.95 132.65 263.98 152.15 252.73" |  | ||||||
|             style="fill: #ebebeb" |  | ||||||
|           ></polygon> |  | ||||||
|           <path |  | ||||||
|             d="M127.84,278.23a4,4,0,0,1,1.79-3.1c1-.57,1.79-.11,1.79,1a3.92,3.92,0,0,1-1.08,2.52V282a1.35,1.35,0,0,1-.61,1.05l-.2.12c-.34.19-.61,0-.61-.35v-3.34C128.28,279.56,127.84,279.08,127.84,278.23Z" |  | ||||||
|             style="fill: #455a64" |  | ||||||
|           ></path> |  | ||||||
|         </g> |  | ||||||
|         <g id="freepik--Close--inject-70"> |  | ||||||
|           <path |  | ||||||
|             d="M155.5,200.16l30.07-17.36c1.79-1,3.25-.2,3.25,1.87v20.65a7.21,7.21,0,0,1-3.25,5.63L155.5,228.31c-1.79,1-3.25.19-3.25-1.88V205.78A7.17,7.17,0,0,1,155.5,200.16Z" |  | ||||||
|             style="opacity: 0.15" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M156.65,201l30.07-17.36c1.79-1,3.25-.2,3.25,1.87v20.65a7.21,7.21,0,0,1-3.25,5.63l-30.07,17.36c-1.8,1-3.25.19-3.25-1.88V206.66A7.15,7.15,0,0,1,156.65,201Z" |  | ||||||
|             style="fill: #455a64" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M165.59,198h-.08a.37.37,0,0,1-.29-.45l6.1-26.68a.36.36,0,0,1,.35-.29h0a.37.37,0,0,1,.36.26l6.1,19.65a.38.38,0,1,1-.72.22l-5.68-18.31L166,197.74A.38.38,0,0,1,165.59,198Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M157.66,220.88a.72.72,0,0,1-.09-.44V209.63a1.37,1.37,0,0,1,.09-.55.58.58,0,0,1,.29-.31l3.27-1.89c.11-.06.18,0,.23.05a1.51,1.51,0,0,1,.06.52v.45a2.41,2.41,0,0,1-.06.6.5.5,0,0,1-.23.31l-2.16,1.25v3L161,212c.1-.06.18,0,.22.05a1.3,1.3,0,0,1,.07.53V213a1.89,1.89,0,0,1-.07.6.55.55,0,0,1-.22.32L159.06,215v3.28l2.17-1.26a.15.15,0,0,1,.22,0,1.54,1.54,0,0,1,.06.53v.45a2.34,2.34,0,0,1-.06.61.54.54,0,0,1-.22.3l-3.28,1.9C157.81,220.93,157.71,220.94,157.66,220.88Z" |  | ||||||
|             style="fill: #fafafa" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M162.78,217.6v-11a1.19,1.19,0,0,1,.1-.53.72.72,0,0,1,.29-.33l1.81-1q2.25-1.31,2.25,2a5.9,5.9,0,0,1-1,3.53v.07c.3.08.55.56.76,1.44l.68,2.95a.44.44,0,0,0,0,.1.34.34,0,0,1,0,.1c0,.27-.2.52-.61.75l-.32.19c-.35.2-.55.18-.58-.06l-.62-3a1.21,1.21,0,0,0-.31-.64c-.12-.08-.29-.05-.53.09l-.42.24v4.26a1,1,0,0,1-.59.85l-.31.17C163,218,162.78,217.93,162.78,217.6Zm2.28-7.69a1.4,1.4,0,0,0,.51-.76,3.86,3.86,0,0,0,.22-1.37,2,2,0,0,0-.21-1.1q-.21-.27-.57-.06l-.76.44v3.32Z" |  | ||||||
|             style="fill: #fafafa" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M168.65,214.21v-11a1.38,1.38,0,0,1,.09-.54.8.8,0,0,1,.3-.33l1.81-1q2.25-1.31,2.25,2a5.94,5.94,0,0,1-1,3.53v.06c.3.09.55.57.76,1.45l.67,2.94,0,.1s0,.07,0,.11c0,.26-.2.51-.61.74l-.32.19c-.36.2-.55.18-.59-.06l-.61-3a1.19,1.19,0,0,0-.31-.63c-.12-.08-.3-.06-.54.08l-.41.24v4.27a1,1,0,0,1-.6.84l-.3.18C168.84,214.6,168.65,214.55,168.65,214.21Zm2.28-7.69a1.36,1.36,0,0,0,.51-.76,4.07,4.07,0,0,0,.21-1.37,1.92,1.92,0,0,0-.2-1.09.39.39,0,0,0-.57-.07l-.76.44V207Z" |  | ||||||
|             style="fill: #fafafa" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M174.29,205.36q0-6.15,2.89-7.82t2.89,4.48q0,6.18-2.89,7.85T174.29,205.36Zm3.93,1a13.59,13.59,0,0,0,.33-3.46,9.2,9.2,0,0,0-.33-3.07q-.33-.77-1-.36a2.49,2.49,0,0,0-1,1.56,13.45,13.45,0,0,0-.33,3.45,9.36,9.36,0,0,0,.33,3.08c.23.52.57.64,1,.37A2.55,2.55,0,0,0,178.22,206.36Z" |  | ||||||
|             style="fill: #fafafa" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M181.35,206.88v-11a1.38,1.38,0,0,1,.09-.54.68.68,0,0,1,.3-.33l1.8-1q2.27-1.31,2.26,2a5.94,5.94,0,0,1-1.05,3.53v.06c.29.09.55.57.76,1.45l.67,2.94a.3.3,0,0,1,0,.1.41.41,0,0,1,0,.11c0,.26-.2.51-.6.74l-.33.19c-.35.2-.54.18-.58-.06l-.62-3a1.13,1.13,0,0,0-.31-.63c-.11-.09-.29-.06-.53.08l-.41.24V206a1,1,0,0,1-.6.84l-.3.17C181.54,207.27,181.35,207.21,181.35,206.88Zm2.27-7.69a1.32,1.32,0,0,0,.52-.76,4.11,4.11,0,0,0,.21-1.37,2,2,0,0,0-.21-1.1.39.39,0,0,0-.56-.06l-.76.44v3.32Z" |  | ||||||
|             style="fill: #fafafa" |  | ||||||
|           ></path> |  | ||||||
|         </g> |  | ||||||
|       </g> |  | ||||||
|       <g id="freepik--Tapes--inject-70"> |  | ||||||
|         <polygon |  | ||||||
|           points="112.53 369.86 108.83 367.75 108.84 380.2 112.53 382.31 112.53 369.86" |  | ||||||
|           style="opacity: 0.2" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="112.53 366.54 108.35 364.1 108.36 376.55 112.53 378.99 112.53 366.54" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="112.53 366.54 108.35 364.1 108.36 376.55 112.53 378.99 112.53 366.54" |  | ||||||
|           style="opacity: 0.2" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="230.53 215.01 112.53 369.86 112.54 382.31 230.53 227.47 230.53 215.01" |  | ||||||
|           style="opacity: 0.25" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="230.53 211.7 112.53 366.54 112.54 378.99 230.53 224.15 230.53 211.7" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="230.53 224.13 230.53 218.48 224.68 219.38 219.81 225.77 230.53 224.13" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="215.94 243.32 205.18 244.97 200.3 251.37 211.07 249.71 215.94 243.32" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="225.69 230.52 214.93 232.17 210.05 238.57 220.82 236.92 225.69 230.52" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="206.19 256.11 195.43 257.77 190.55 264.16 201.32 262.51 206.19 256.11" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="196.44 268.91 185.67 270.56 180.8 276.96 191.56 275.31 196.44 268.91" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="186.69 281.71 175.92 283.36 171.05 289.76 181.81 288.11 186.69 281.71" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="176.94 294.5 166.17 296.16 161.29 302.55 172.06 300.9 176.94 294.5" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="167.18 307.3 156.42 308.95 151.54 315.35 162.31 313.7 167.18 307.3" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="157.43 320.1 146.67 321.75 141.79 328.15 152.56 326.5 157.43 320.1" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="147.68 332.89 136.91 334.55 132.04 340.94 142.81 339.29 147.68 332.89" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="137.93 345.69 127.16 347.34 122.29 353.74 133.05 352.09 137.93 345.69" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="128.18 358.49 117.41 360.14 112.53 366.54 123.3 364.88 128.18 358.49" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="118.41 371.29 112.53 372.19 112.53 378.99 113.53 377.68 118.41 371.29" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="112.53 283.52 230.53 298.93 230.53 311.38 112.53 295.98 112.53 283.52" |  | ||||||
|           style="opacity: 0.25" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="112.53 281.42 230.53 296.82 230.53 309.27 112.53 293.87 112.53 281.42" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="112.53 283.52 108.83 281.35 108.84 293.81 112.53 295.97 112.53 283.52" |  | ||||||
|           style="opacity: 0.2" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="112.53 281.42 108.35 278.97 108.36 291.43 112.53 293.87 112.53 281.42" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon |  | ||||||
|           points="112.53 281.42 108.35 278.97 108.36 291.43 112.53 293.87 112.53 281.42" |  | ||||||
|           style="opacity: 0.2" |  | ||||||
|         ></polygon> |  | ||||||
|         <path |  | ||||||
|           d="M117.8,284.78s.06,0,.07.09a.54.54,0,0,1,0,.22l-.17,1.15a.52.52,0,0,1-.06.2c0,.06-.07.08-.1.08l-1.34-.17-.22,1.48,1.25.16s.06,0,.08.1a.74.74,0,0,1,0,.21l-.17,1.16a.66.66,0,0,1-.06.2s-.07.08-.1.07l-1.25-.16-.34,2.35a.77.77,0,0,1-.07.2c0,.06-.07.09-.1.08l-.59-.07s0,0-.07-.1a.49.49,0,0,1,0-.21l1-7a.59.59,0,0,1,.06-.2s.07-.08.1-.08Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M118.2,287.72a7.33,7.33,0,0,1,.27-1.14,4.74,4.74,0,0,1,.41-.9,1.83,1.83,0,0,1,.53-.57A.8.8,0,0,1,120,285a.81.81,0,0,1,.55.31,1.82,1.82,0,0,1,.35.68,4.55,4.55,0,0,1,.13,1,7.67,7.67,0,0,1,0,1.16c0,.32-.09.64-.14,1s-.1.66-.15,1a7.47,7.47,0,0,1-.27,1.13,4.85,4.85,0,0,1-.41.91,2,2,0,0,1-.53.57.86.86,0,0,1-.61.16.84.84,0,0,1-.56-.31,1.88,1.88,0,0,1-.34-.68,4,4,0,0,1-.13-1,7.78,7.78,0,0,1,0-1.16c0-.3.08-.62.13-1S118.14,288,118.2,287.72Zm1.69,2.13c0-.13,0-.28.07-.43s.06-.33.08-.49,0-.33.07-.49,0-.29,0-.42a2.9,2.9,0,0,0,0-.5,1.58,1.58,0,0,0-.05-.41.71.71,0,0,0-.13-.29.34.34,0,0,0-.48-.06.74.74,0,0,0-.22.24,2.29,2.29,0,0,0-.16.38,3.33,3.33,0,0,0-.12.5,3.86,3.86,0,0,0-.07.41c0,.16,0,.32-.08.49s0,.33-.07.49,0,.3,0,.43a2.79,2.79,0,0,0,0,.93c0,.25.17.39.36.41a.47.47,0,0,0,.46-.31A2.93,2.93,0,0,0,119.89,289.85Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M123.63,285.52a1,1,0,0,1,.5.22,1.3,1.3,0,0,1,.34.51,2.92,2.92,0,0,1,.13.81,5.59,5.59,0,0,1-.07,1.11,5.42,5.42,0,0,1-.34,1.34,1.91,1.91,0,0,1-.51.77l.18,2.66v.12a.38.38,0,0,1-.06.16s0,.07-.08.07l-.61-.08a.13.13,0,0,1-.11-.12.69.69,0,0,1,0-.2l-.16-2.39-.42-.05-.34,2.32a.52.52,0,0,1-.06.2c0,.06-.07.09-.1.08l-.59-.07s0,0-.07-.1a.49.49,0,0,1,0-.21l1-7a.59.59,0,0,1,.06-.2c0-.05.07-.08.1-.08Zm-1,3.23.51.07a.37.37,0,0,0,.33-.14,1.11,1.11,0,0,0,.22-.61,1.27,1.27,0,0,0,0-.65.35.35,0,0,0-.29-.21l-.51-.07Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M124.75,293.42a.12.12,0,0,1-.07-.1.48.48,0,0,1,0-.21l1-7a.93.93,0,0,1,.07-.2c0-.05.07-.08.1-.07l1.44.18a.69.69,0,0,1,.48.27,1.37,1.37,0,0,1,.25.56,2.93,2.93,0,0,1,.08.75,7.35,7.35,0,0,1-.07.82,3.19,3.19,0,0,1-.11.54,4,4,0,0,1-.12.4c0,.11-.09.19-.13.26l-.09.15a2,2,0,0,1,.15.71,7.05,7.05,0,0,1-.07.94,6.25,6.25,0,0,1-.18.86,3.27,3.27,0,0,1-.29.73,1.32,1.32,0,0,1-.4.49.63.63,0,0,1-.51.14Zm1-1.6.74.1c.09,0,.17-.05.24-.17a1.24,1.24,0,0,0,.15-.46,1.26,1.26,0,0,0,0-.48c0-.14-.1-.21-.19-.22l-.74-.09Zm1.49-3.49a1.17,1.17,0,0,0,0-.46c0-.12-.09-.19-.18-.2l-.7-.09-.18,1.24.7.09c.09,0,.16,0,.23-.14A1.44,1.44,0,0,0,127.2,288.33Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M128.27,293.87s-.05,0-.07-.1a.49.49,0,0,1,0-.21l1-7a.59.59,0,0,1,.06-.2c0-.05.07-.08.1-.07l.59.07a.12.12,0,0,1,.07.1.48.48,0,0,1,0,.21l-1,7a.86.86,0,0,1-.07.21c0,.05-.07.08-.1.07Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M132.37,286.64a.83.83,0,0,1,.53.29,1.72,1.72,0,0,1,.35.69,3.94,3.94,0,0,1,.16,1,8.93,8.93,0,0,1-.06,1.24q0,.24-.06.42c0,.13,0,.25,0,.37s0,.23-.06.36a3.55,3.55,0,0,1-.06.4,7.41,7.41,0,0,1-.29,1.21,4.66,4.66,0,0,1-.43.92,1.94,1.94,0,0,1-.52.57.81.81,0,0,1-.59.15l-1.22-.15s0,0-.07-.1a.7.7,0,0,1,0-.21l1-7a.59.59,0,0,1,.06-.2c0-.05.07-.08.1-.07Zm.15,3.06c.11-.83,0-1.28-.42-1.32l-.46-.06-.6,4.13.48.06c.37.05.63-.34.77-1.18l.06-.42.06-.4.06-.38C132.49,290,132.5,289.86,132.52,289.7Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M136,287.1a.79.79,0,0,1,.53.29,1.75,1.75,0,0,1,.35.68,4.1,4.1,0,0,1,.16,1,8.93,8.93,0,0,1-.06,1.24c0,.16,0,.29-.06.42s0,.25,0,.37,0,.23-.05.35,0,.26-.07.41a7.67,7.67,0,0,1-.29,1.21,4.66,4.66,0,0,1-.43.92,1.94,1.94,0,0,1-.52.57.81.81,0,0,1-.59.15l-1.22-.15s0,0-.07-.1a.49.49,0,0,1,0-.21l1-7a.59.59,0,0,1,.06-.2s.07-.08.1-.07Zm.15,3.06c.11-.83,0-1.28-.42-1.33l-.46-.05-.6,4.13.48.06c.37,0,.63-.34.77-1.18l.06-.43L136,291l.06-.38C136.08,290.46,136.09,290.32,136.11,290.16Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M139.62,293.55s0,0,.07.09a.49.49,0,0,1,0,.21l-.16,1.16a.93.93,0,0,1-.07.2.14.14,0,0,1-.1.08l-2.13-.28s0,0-.07-.1a.67.67,0,0,1,0-.2l1-7a.52.52,0,0,1,.06-.2c0-.06.07-.08.1-.08l2.09.27s.06,0,.08.1a.74.74,0,0,1,0,.21l-.17,1.15a.52.52,0,0,1-.06.2c0,.06-.07.08-.1.08l-1.38-.18-.17,1.18,1.28.16a.12.12,0,0,1,.07.1.48.48,0,0,1,0,.21l-.17,1.15a.65.65,0,0,1-.06.21c0,.05-.07.08-.1.07l-1.28-.16-.18,1.21Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M142.39,295.67s-.08,0-.1-.11a.41.41,0,0,1,0-.16l-.49-3.85-.53,3.67a.77.77,0,0,1-.07.2c0,.06-.07.09-.1.08l-.59-.07s-.05,0-.07-.1a.7.7,0,0,1,0-.21l1-7a.59.59,0,0,1,.06-.2c0-.05.07-.08.1-.07l.47.06s.09,0,.11.11,0,.12,0,.16l.48,3.85.54-3.68a.59.59,0,0,1,.06-.2c0-.05.07-.08.1-.07l.59.07s.06,0,.07.1a.48.48,0,0,1,0,.21l-1,7a.65.65,0,0,1-.06.21s-.07.08-.1.07Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M146.72,296.22s-.06,0-.08-.09a.74.74,0,0,1,0-.21l.16-1.11-1.41-.18s-.06,0-.08-.1a.74.74,0,0,1,0-.21l.17-1.15a1.4,1.4,0,0,1,.12-.47l1.94-3.92a.42.42,0,0,1,.1-.15.14.14,0,0,1,.09,0l.68.09s.06,0,.07.1a.48.48,0,0,1,0,.21l-.61,4.17.39.05a.12.12,0,0,1,.07.1.48.48,0,0,1,0,.21l-.17,1.15a.48.48,0,0,1-.07.21c0,.05-.06.08-.09.07l-.39,0-.16,1.11a.52.52,0,0,1-.07.2c0,.06-.06.08-.1.08Zm.35-3.15.3-2-1,1.92Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M151.09,288.92a.79.79,0,0,1,.54.31,1.88,1.88,0,0,1,.31.7,4.59,4.59,0,0,1,.1,1A11.23,11.23,0,0,1,152,292c0,.32-.09.64-.14,1s-.1.66-.14,1a11.3,11.3,0,0,1-.26,1.11,4.09,4.09,0,0,1-.38.91,1.84,1.84,0,0,1-.49.59.81.81,0,0,1-.61.17.79.79,0,0,1-.55-.31,1.81,1.81,0,0,1-.31-.7,4.59,4.59,0,0,1-.1-1,11.23,11.23,0,0,1,.07-1.13c0-.3.08-.62.13-1s.1-.67.16-1a9,9,0,0,1,.25-1.11,4.09,4.09,0,0,1,.38-.91,1.84,1.84,0,0,1,.49-.59A.82.82,0,0,1,151.09,288.92Zm-.23,4.89c.1-.62.19-1.22.27-1.83,0-.18,0-.35,0-.5a2.55,2.55,0,0,0,0-.41.71.71,0,0,0-.11-.28.27.27,0,0,0-.21-.13.3.3,0,0,0-.24.07.7.7,0,0,0-.18.25,2.35,2.35,0,0,0-.14.38c0,.15-.07.32-.1.5q-.15.9-.27,1.83a4.77,4.77,0,0,0,0,.5,1.76,1.76,0,0,0,0,.41.66.66,0,0,0,.11.28.27.27,0,0,0,.21.13.3.3,0,0,0,.24-.07.7.7,0,0,0,.18-.25,1.68,1.68,0,0,0,.14-.38C150.8,294.16,150.83,294,150.86,293.81Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M155.51,289.6s.06,0,.07.09a.49.49,0,0,1,0,.21l-.17,1.16a.65.65,0,0,1-.06.21l-.09.16-.73,1.25a1.59,1.59,0,0,1,.46.81,3.34,3.34,0,0,1,0,1.39,3.93,3.93,0,0,1-.62,1.81,1.09,1.09,0,0,1-1.06.49.92.92,0,0,1-.55-.26,1.49,1.49,0,0,1-.35-.54,2.71,2.71,0,0,1-.16-.72,3.56,3.56,0,0,1,0-.8.69.69,0,0,1,0-.17s.05-.06.08-.06l.57.07a.17.17,0,0,1,.13.12,2.17,2.17,0,0,0,.07.24.7.7,0,0,0,.13.24.32.32,0,0,0,.26.14.43.43,0,0,0,.38-.13.84.84,0,0,0,.22-.53.86.86,0,0,0-.06-.58.47.47,0,0,0-.33-.22l-.37,0a.12.12,0,0,1-.07-.1.48.48,0,0,1,0-.21l.14-.94a.65.65,0,0,1,.06-.21l.09-.17.64-1.1-1.17-.15s-.06,0-.07-.1a.48.48,0,0,1,0-.21l.17-1.15a.4.4,0,0,1,.07-.2c0-.06.06-.08.09-.08Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M160.1,290.18s.06,0,.08.1a.74.74,0,0,1,0,.21l-.17,1.15a.58.58,0,0,1-.06.21s-.07.08-.1.07l-1.34-.17-.22,1.49,1.25.16s.06,0,.08.1a.74.74,0,0,1,0,.21l-.17,1.15a.65.65,0,0,1-.06.21c0,.05-.07.08-.1.07L158,295l-.34,2.35a.52.52,0,0,1-.07.2c0,.06-.06.08-.1.08l-.59-.08s-.05,0-.07-.09a.54.54,0,0,1,0-.22l1-7a.52.52,0,0,1,.06-.2c0-.06.07-.08.1-.08Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M160.47,293.12a8.91,8.91,0,0,1,.27-1.13,4.74,4.74,0,0,1,.41-.9,2.15,2.15,0,0,1,.53-.58.91.91,0,0,1,.62-.16.86.86,0,0,1,.55.31,2,2,0,0,1,.34.69,3.93,3.93,0,0,1,.13,1,6.63,6.63,0,0,1,0,1.16c0,.31-.09.64-.14,1s-.1.66-.14,1a8.64,8.64,0,0,1-.28,1.14,4.19,4.19,0,0,1-.41.9,1.88,1.88,0,0,1-.53.58.84.84,0,0,1-.61.15.89.89,0,0,1-.56-.3,1.93,1.93,0,0,1-.33-.69,3.9,3.9,0,0,1-.14-1,7.71,7.71,0,0,1,.06-1.16c0-.3.08-.62.13-1S160.42,293.43,160.47,293.12Zm1.69,2.13c0-.13.05-.27.08-.43s0-.32.07-.49.05-.33.07-.48,0-.3.05-.42a4.77,4.77,0,0,0,0-.51,2.42,2.42,0,0,0-.05-.41.78.78,0,0,0-.14-.29.34.34,0,0,0-.23-.13.32.32,0,0,0-.25.07.83.83,0,0,0-.21.24,1.76,1.76,0,0,0-.17.39,3.19,3.19,0,0,0-.12.49c0,.12,0,.26-.07.42s-.05.31-.08.48l-.06.49c0,.16,0,.31-.06.44a2.73,2.73,0,0,0,0,.92c0,.25.17.39.36.41s.34-.08.47-.3A3,3,0,0,0,162.16,295.25Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M165.89,290.92a1,1,0,0,1,.51.22,1.19,1.19,0,0,1,.33.51,2.64,2.64,0,0,1,.13.81,5.59,5.59,0,0,1-.07,1.11,6,6,0,0,1-.33,1.34,2,2,0,0,1-.52.77l.18,2.66a.48.48,0,0,1,0,.12.43.43,0,0,1-.06.17.1.1,0,0,1-.07.06l-.62-.08a.14.14,0,0,1-.11-.11.76.76,0,0,1,0-.21l-.16-2.39-.41,0-.34,2.33a.59.59,0,0,1-.07.2c0,.05-.06.08-.1.07l-.58-.07s-.06,0-.08-.1a.74.74,0,0,1,0-.21l1-7a.48.48,0,0,1,.07-.21s.06-.08.09-.07Zm-1,3.23.51.07a.39.39,0,0,0,.34-.14,1.12,1.12,0,0,0,.21-.61,1.08,1.08,0,0,0,0-.65.35.35,0,0,0-.29-.21l-.5-.07Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M167,298.82s-.06,0-.07-.1a.48.48,0,0,1,0-.21l1-7a.65.65,0,0,1,.07-.21s.06-.08.1-.07l1.44.18a.73.73,0,0,1,.48.27,1.37,1.37,0,0,1,.25.56,3,3,0,0,1,.07.75,5.55,5.55,0,0,1-.06.82,5.33,5.33,0,0,1-.11.55,2.54,2.54,0,0,1-.13.39,1.29,1.29,0,0,1-.12.26l-.09.15a1.8,1.8,0,0,1,.14.71,5.5,5.5,0,0,1-.06.94c-.05.3-.11.58-.18.86a3.83,3.83,0,0,1-.29.73,1.47,1.47,0,0,1-.4.5.67.67,0,0,1-.51.14Zm.95-1.6.74.1c.09,0,.17,0,.25-.16a1.37,1.37,0,0,0,.15-.47,1.25,1.25,0,0,0,0-.48c0-.13-.09-.21-.18-.22l-.74-.09Zm1.5-3.49a1.4,1.4,0,0,0,0-.46c0-.12-.09-.19-.18-.2l-.7-.09-.18,1.24.7.09a.22.22,0,0,0,.22-.14A1.14,1.14,0,0,0,169.47,293.73Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M170.55,299.27s-.06,0-.07-.1a.48.48,0,0,1,0-.21l1-7a.52.52,0,0,1,.07-.2c0-.06.06-.08.1-.08l.58.08s.06,0,.08.09a.74.74,0,0,1,0,.21l-1,7a.4.4,0,0,1-.07.2c0,.06-.06.08-.09.08Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M174.66,292a.82.82,0,0,1,.53.3,1.75,1.75,0,0,1,.35.68,4.1,4.1,0,0,1,.16,1,9,9,0,0,1-.06,1.24q0,.23-.06.42c0,.13,0,.25-.05.36s0,.24-.05.36,0,.26-.07.4a7.54,7.54,0,0,1-.29,1.22,4.94,4.94,0,0,1-.43.92,1.94,1.94,0,0,1-.52.57.86.86,0,0,1-.59.15l-1.22-.16s-.05,0-.07-.09a.5.5,0,0,1,0-.21l1-7a.52.52,0,0,1,.06-.2c0-.06.07-.08.1-.08Zm.15,3.07c.11-.84,0-1.28-.42-1.33l-.46-.06-.6,4.13.48.07c.37,0,.63-.35.77-1.18l.06-.43.06-.39.06-.39C174.78,295.4,174.79,295.26,174.81,295.11Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M178.25,292.5a.87.87,0,0,1,.53.3,1.75,1.75,0,0,1,.35.68,3.63,3.63,0,0,1,.15,1,6.71,6.71,0,0,1-.06,1.24c0,.15,0,.29-.05.42s0,.25,0,.36l-.06.36c0,.12,0,.26-.06.4a6.81,6.81,0,0,1-.3,1.22,4.38,4.38,0,0,1-.42.92,1.94,1.94,0,0,1-.52.57.93.93,0,0,1-.6.15L176,300s-.06,0-.07-.1a.48.48,0,0,1,0-.21l1-7a.77.77,0,0,1,.07-.2c0-.06.07-.08.1-.08Zm.15,3.07c.1-.84,0-1.28-.43-1.33l-.46-.06-.6,4.13.48.06c.38.05.64-.34.77-1.17,0-.15.05-.3.07-.43l.06-.39c0-.13,0-.26.05-.39S178.38,295.72,178.4,295.57Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M181.91,299s.05,0,.07.1a.49.49,0,0,1,0,.21l-.16,1.15a.77.77,0,0,1-.07.2c0,.06-.07.09-.1.08l-2.12-.27s-.06,0-.08-.1a.74.74,0,0,1,0-.21l1-7a.48.48,0,0,1,.07-.21c0-.05.06-.08.09-.07l2.09.27s.06,0,.08.09a.8.8,0,0,1,0,.22l-.17,1.15a.59.59,0,0,1-.06.2.14.14,0,0,1-.1.08l-1.38-.18-.17,1.17,1.28.17s.06,0,.07.1a.48.48,0,0,1,0,.21l-.17,1.15a.52.52,0,0,1-.06.2c0,.06-.07.08-.1.08l-1.29-.17-.17,1.22Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M184.67,301.08a.15.15,0,0,1-.11-.12.73.73,0,0,1,0-.16L184,297l-.53,3.68a.4.4,0,0,1-.07.2c0,.06-.06.08-.09.08l-.59-.08s-.06,0-.07-.1a.48.48,0,0,1,0-.21l1-7a.52.52,0,0,1,.07-.2c0-.06.06-.08.1-.08l.46.06a.14.14,0,0,1,.11.11.9.9,0,0,1,0,.16l.49,3.85.53-3.67a.4.4,0,0,1,.07-.2c0-.06.06-.08.09-.08l.59.07s.06,0,.08.1a.74.74,0,0,1,0,.21l-1,7a.4.4,0,0,1-.07.2c0,.06-.06.08-.09.08Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M189,301.63a.12.12,0,0,1-.07-.1.48.48,0,0,1,0-.21l.16-1.11-1.41-.18s-.06,0-.07-.1a.48.48,0,0,1,0-.21l.17-1.15a1.61,1.61,0,0,1,.12-.46l1.94-3.93a.42.42,0,0,1,.1-.15.11.11,0,0,1,.1,0l.67.08s.06,0,.08.1a.74.74,0,0,1,0,.21l-.6,4.18.38.05s.06,0,.07.09a.53.53,0,0,1,0,.22l-.17,1.15a.52.52,0,0,1-.06.2s-.07.08-.1.08l-.39-.05-.16,1.11a.43.43,0,0,1-.07.2c0,.05-.06.08-.09.07Zm.36-3.16.29-2-.95,1.92Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M193.37,294.33a.76.76,0,0,1,.54.31,1.83,1.83,0,0,1,.31.69,4.07,4.07,0,0,1,.1,1,8.94,8.94,0,0,1-.07,1.14c0,.31-.08.64-.13,1s-.1.66-.15.95a8.77,8.77,0,0,1-.26,1.12,4.53,4.53,0,0,1-.37.91,2,2,0,0,1-.5.59.79.79,0,0,1-.61.16.76.76,0,0,1-.55-.31,1.83,1.83,0,0,1-.3-.69,4.63,4.63,0,0,1-.11-1,9,9,0,0,1,.08-1.14c0-.3.08-.62.13-1s.1-.66.15-1a9,9,0,0,1,.25-1.11,4.53,4.53,0,0,1,.38-.91,2,2,0,0,1,.49-.59A.82.82,0,0,1,193.37,294.33Zm-.23,4.88c.11-.61.19-1.22.27-1.82,0-.18,0-.35,0-.51a1.67,1.67,0,0,0,0-.4.7.7,0,0,0-.11-.29.28.28,0,0,0-.21-.12.26.26,0,0,0-.23.06.86.86,0,0,0-.19.25,2.49,2.49,0,0,0-.14.39,4.9,4.9,0,0,0-.1.5c-.1.59-.19,1.2-.27,1.82,0,.18,0,.35,0,.5a1.73,1.73,0,0,0,0,.41.7.7,0,0,0,.11.29.28.28,0,0,0,.21.12.29.29,0,0,0,.24-.06.7.7,0,0,0,.18-.25,1.77,1.77,0,0,0,.14-.39A3.15,3.15,0,0,0,193.14,299.21Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M197.78,295s.05,0,.07.1a.7.7,0,0,1,0,.21l-.17,1.15a.65.65,0,0,1-.07.21.79.79,0,0,1-.08.16l-.73,1.26a1.52,1.52,0,0,1,.46.8,3.57,3.57,0,0,1,0,1.4,3.84,3.84,0,0,1-.62,1.8,1.13,1.13,0,0,1-1.07.5,1,1,0,0,1-.54-.26,1.48,1.48,0,0,1-.35-.55,2.54,2.54,0,0,1-.16-.72,3.07,3.07,0,0,1,0-.8.42.42,0,0,1,.05-.17s0-.06.08-.06l.57.08q.09,0,.12.12c0,.07.05.15.08.23a.85.85,0,0,0,.13.25.34.34,0,0,0,.26.13.45.45,0,0,0,.38-.12.94.94,0,0,0,.22-.54.84.84,0,0,0-.06-.57.44.44,0,0,0-.33-.22l-.37-.05s-.06,0-.08-.1a.74.74,0,0,1,0-.21l.13-.93a.81.81,0,0,1,.07-.22l.09-.16.64-1.11-1.17-.14a.12.12,0,0,1-.07-.1.48.48,0,0,1,0-.21l.17-1.16a.59.59,0,0,1,.06-.2c0-.05.07-.08.1-.07Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M202.36,295.59s.06,0,.08.09a.81.81,0,0,1,0,.22l-.17,1.15a.59.59,0,0,1-.06.2c0,.05-.07.08-.1.08l-1.34-.18-.22,1.49,1.25.16s.06,0,.08.1a.74.74,0,0,1,0,.21l-.17,1.16a.59.59,0,0,1-.06.2s-.07.08-.1.07l-1.25-.16-.34,2.35a.77.77,0,0,1-.07.2c0,.06-.06.08-.1.08l-.59-.08s0,0-.07-.09a.49.49,0,0,1,0-.21l1-7a.59.59,0,0,1,.06-.2c0-.06.07-.08.1-.08Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M202.76,298.53a7.18,7.18,0,0,1,.28-1.13,3.78,3.78,0,0,1,.41-.9,2,2,0,0,1,.52-.58.87.87,0,0,1,.62-.16.84.84,0,0,1,.55.31,1.89,1.89,0,0,1,.34.68,4.06,4.06,0,0,1,.14,1,7.85,7.85,0,0,1-.06,1.16c0,.31-.08.63-.13,1s-.1.66-.15.95A7.6,7.6,0,0,1,205,302a3.94,3.94,0,0,1-.41.9,1.85,1.85,0,0,1-.52.58.88.88,0,0,1-1.17-.15,1.86,1.86,0,0,1-.34-.69,4.52,4.52,0,0,1-.14-1,7.91,7.91,0,0,1,.06-1.17c0-.29.08-.61.13-.95S202.71,298.84,202.76,298.53Zm1.7,2.13c0-.13,0-.27.07-.43s.05-.32.08-.49l.06-.49c0-.15,0-.29.05-.42a3,3,0,0,0,0-.5,1.64,1.64,0,0,0-.05-.41.71.71,0,0,0-.13-.29.32.32,0,0,0-.23-.13.36.36,0,0,0-.26.07.63.63,0,0,0-.21.24,2.7,2.7,0,0,0-.17.38c0,.15-.08.32-.11.5s-.05.26-.08.42,0,.31-.07.48-.05.33-.07.49,0,.3-.05.44a3,3,0,0,0,0,.92c.06.25.18.39.37.41a.47.47,0,0,0,.46-.31A2.83,2.83,0,0,0,204.46,300.66Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M208.17,296.33a.91.91,0,0,1,.5.22,1.13,1.13,0,0,1,.33.5,2.62,2.62,0,0,1,.14.81,6.52,6.52,0,0,1-.07,1.12,5.54,5.54,0,0,1-.34,1.34,2,2,0,0,1-.51.77l.18,2.65v.12a.43.43,0,0,1-.06.17c0,.05-.05.06-.08.06l-.61-.08c-.06,0-.1,0-.11-.11a.75.75,0,0,1,0-.2l-.16-2.39-.42-.06-.34,2.33a.52.52,0,0,1-.06.2c0,.06-.07.08-.1.08l-.59-.08s-.05,0-.07-.09a.79.79,0,0,1,0-.22l1-7a.52.52,0,0,1,.06-.2c0-.06.07-.08.1-.08Zm-1,3.23.51.06a.37.37,0,0,0,.33-.13,1.68,1.68,0,0,0,.19-1.26.38.38,0,0,0-.29-.22l-.51-.06Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M209.29,304.22s-.06,0-.07-.09a.48.48,0,0,1,0-.21l1-7a.77.77,0,0,1,.07-.2c0-.06.06-.08.1-.08l1.44.19a.68.68,0,0,1,.48.26,1.41,1.41,0,0,1,.25.57,2.52,2.52,0,0,1,.07.75,5.55,5.55,0,0,1-.06.82,4.63,4.63,0,0,1-.11.54,2.35,2.35,0,0,1-.13.4,2.17,2.17,0,0,1-.12.26l-.09.14a1.85,1.85,0,0,1,.14.72,5.39,5.39,0,0,1-.06.93,6.09,6.09,0,0,1-.18.87,3.27,3.27,0,0,1-.29.73,1.53,1.53,0,0,1-.4.49.67.67,0,0,1-.51.14Zm1-1.59.75.09c.08,0,.16,0,.24-.16a1.31,1.31,0,0,0,.15-.46,1.5,1.5,0,0,0,0-.48c0-.14-.1-.21-.19-.22l-.74-.1Zm1.5-3.5a1.17,1.17,0,0,0,0-.46c0-.12-.09-.18-.18-.19l-.7-.09-.18,1.24.7.09c.09,0,.16,0,.23-.14A1.43,1.43,0,0,0,211.74,299.13Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M212.83,304.68s-.06,0-.08-.1a.74.74,0,0,1,0-.21l1-7a.43.43,0,0,1,.07-.2c0-.05.06-.08.09-.07l.59.07s.06,0,.07.1a.48.48,0,0,1,0,.21l-1,7a.52.52,0,0,1-.07.2c0,.06-.06.09-.1.08Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M216.92,297.45a.81.81,0,0,1,.53.29,1.89,1.89,0,0,1,.35.68,4.13,4.13,0,0,1,.15,1,6.68,6.68,0,0,1-.06,1.24c0,.15,0,.29,0,.42l-.06.37c0,.11,0,.23-.05.35s0,.26-.06.41a7.64,7.64,0,0,1-.3,1.21,4.15,4.15,0,0,1-.42.92,2,2,0,0,1-.53.57.8.8,0,0,1-.59.15l-1.21-.15a.12.12,0,0,1-.07-.1.48.48,0,0,1,0-.21l1-7a.59.59,0,0,1,.07-.2c0-.05.06-.08.1-.07Zm.15,3.06c.1-.83,0-1.28-.43-1.33l-.46-.06-.6,4.14.48.06c.38.05.64-.35.77-1.18,0-.15,0-.29.07-.43l.06-.39c0-.12,0-.25,0-.38S217.05,300.66,217.07,300.51Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M220.51,297.91a.81.81,0,0,1,.54.29,2.06,2.06,0,0,1,.35.68,4.69,4.69,0,0,1,.15,1,6.68,6.68,0,0,1-.06,1.24l-.06.42c0,.13,0,.25-.05.36s0,.24,0,.36l-.06.4a8.71,8.71,0,0,1-.3,1.22,4.15,4.15,0,0,1-.42.92,2,2,0,0,1-.53.57.81.81,0,0,1-.59.15l-1.21-.16s-.06,0-.08-.09a.74.74,0,0,1,0-.21l1-7a.4.4,0,0,1,.07-.2c0-.06.06-.08.1-.08Zm.16,3.06c.1-.83,0-1.28-.43-1.33l-.46-.06-.6,4.14.48.06c.38,0,.63-.35.77-1.18,0-.15,0-.29.07-.43s0-.26.05-.39l.06-.38C220.63,301.27,220.65,301.12,220.67,301Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M224.18,304.36s0,0,.07.09a.49.49,0,0,1,0,.21l-.16,1.16a.93.93,0,0,1-.07.2c0,.05-.06.08-.1.07l-2.13-.27s0,0-.07-.09a.74.74,0,0,1,0-.21l1-7a.4.4,0,0,1,.07-.2c0-.06.06-.08.09-.08l2.09.27s.06,0,.08.1a.74.74,0,0,1,0,.21l-.17,1.15a.52.52,0,0,1-.06.2c0,.06-.07.08-.1.08l-1.38-.18-.17,1.18,1.28.16a.12.12,0,0,1,.07.1.48.48,0,0,1,0,.21l-.17,1.15a.52.52,0,0,1-.06.2c0,.06-.07.08-.1.08l-1.29-.16-.17,1.21Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M226.94,306.48c-.05,0-.08,0-.11-.11a.69.69,0,0,1,0-.16l-.49-3.85-.54,3.67a.52.52,0,0,1-.06.2c0,.06-.07.08-.1.08l-.59-.08s-.06,0-.07-.09a.48.48,0,0,1,0-.21l1-7a.52.52,0,0,1,.06-.2c0-.06.07-.08.1-.08l.47.06c.05,0,.08.05.1.12a.41.41,0,0,1,0,.16l.49,3.85.53-3.68a.77.77,0,0,1,.07-.2.14.14,0,0,1,.1-.08l.59.08s0,0,.07.1a.48.48,0,0,1,0,.21l-1,7a.52.52,0,0,1-.06.2c0,.06-.07.08-.1.08Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|       </g> |  | ||||||
|     </g> |  | ||||||
|     <g id="freepik--error-403--inject-70"> |  | ||||||
|       <g id="freepik--404--inject-70"> |  | ||||||
|         <path |  | ||||||
|           d="M142.21,105.27a1.09,1.09,0,0,0-.17-.13l-5.26-3V77.19a1.71,1.71,0,0,0-.41-1.27.64.64,0,0,0-.17-.13l-5.62-3.24a.75.75,0,0,0-.82,0L122,77.11a3.55,3.55,0,0,0-1.07.89,7.56,7.56,0,0,0-.85,1.65L104.56,118.6a10.66,10.66,0,0,0-.67,3.81v8.45a1.67,1.67,0,0,0,.42,1.27.7.7,0,0,0,.17.13l5.62,3.25a.75.75,0,0,0,.81-.06l10.67-6.16v1.63a1.69,1.69,0,0,0,.42,1.27l.16.13,5.63,3.25a.79.79,0,0,0,.82-.06l6.77-3.91a2.64,2.64,0,0,0,1-1.21,4.14,4.14,0,0,0,.41-1.75v-8.12l4.45-2.57a2.63,2.63,0,0,0,1-1.21,4,4,0,0,0,.41-1.75v-8.44A1.7,1.7,0,0,0,142.21,105.27Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M126.47,81.24l0,.1a7.51,7.51,0,0,0-.79,1.55l-15.47,39a9.49,9.49,0,0,0-.46,1.6l-5.66-3.27a10.25,10.25,0,0,1,.45-1.58L120,79.65a7.74,7.74,0,0,1,.86-1.65,0,0,0,0,1,0,0Z" |  | ||||||
|           style="opacity: 0.15" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M110,135.47c-.63-.37-5.32-3.08-5.55-3.2l-.17-.14a1.7,1.7,0,0,1-.42-1.28v-8.43a11.37,11.37,0,0,1,.22-2.22l5.62,3.25a11.3,11.3,0,0,0-.21,2.22v8.44a1.73,1.73,0,0,0,.41,1.27Z" |  | ||||||
|           style="opacity: 0.30000000000000004" |  | ||||||
|         ></path> |  | ||||||
|         <polygon |  | ||||||
|           points="127.47 98.5 127.47 113.15 122.73 110.42 127.47 98.5" |  | ||||||
|           style="opacity: 0.30000000000000004" |  | ||||||
|         ></polygon> |  | ||||||
|         <polygon points="127.47 113.15 119.92 117.51 122.73 110.42 127.47 113.15" style="opacity: 0.4"></polygon> |  | ||||||
|         <path |  | ||||||
|           d="M127.62,135.44l.1.08-5.55-3.2a.43.43,0,0,1-.17-.13,1.67,1.67,0,0,1-.42-1.27v-1.63l5.63-3.25v8.12A1.74,1.74,0,0,0,127.62,135.44Z" |  | ||||||
|           style="opacity: 0.30000000000000004" |  | ||||||
|         ></path> |  | ||||||
|         <path d="M142,105.11a.78.78,0,0,0-.74.09l-4.45,2.57v-5.66Z" style="opacity: 0.15"></path> |  | ||||||
|         <path |  | ||||||
|           d="M136.16,75.77a.79.79,0,0,0-.78.07l-7.81,4.51a3.76,3.76,0,0,0-1,.89L120.89,78a3.72,3.72,0,0,1,1-.88l7.82-4.51a.75.75,0,0,1,.82,0Z" |  | ||||||
|           style="fill: #fff; opacity: 0.4" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M128.61,135.51a.77.77,0,0,1-1-.07,1.74,1.74,0,0,1-.41-1.28V126l-16.3,9.41a.74.74,0,0,1-1-.07,1.74,1.74,0,0,1-.41-1.28v-8.44a10.45,10.45,0,0,1,.67-3.81l15.47-39a7.24,7.24,0,0,1,.85-1.64,3.51,3.51,0,0,1,1.06-.89l7.81-4.51a.75.75,0,0,1,1,.07,1.71,1.71,0,0,1,.41,1.27v30.58l4.45-2.57a.76.76,0,0,1,1,.07,1.7,1.7,0,0,1,.41,1.28V115a4,4,0,0,1-.41,1.75,2.63,2.63,0,0,1-1,1.21l-4.45,2.57v8.12a4.14,4.14,0,0,1-.41,1.75,2.64,2.64,0,0,1-1,1.21Zm-1.14-22.36V98.5l-7.55,19Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M181.49,70a34.85,34.85,0,0,0-1.06-7.63,11.8,11.8,0,0,0-2.74-5.31A6.76,6.76,0,0,0,176.28,56l-5.64-3.25a6.94,6.94,0,0,0-3.21-.91,12.68,12.68,0,0,0-6.67,2.1,24.42,24.42,0,0,0-6.67,5.6,32.84,32.84,0,0,0-4.63,7.38,38.69,38.69,0,0,0-2.75,8.47,55.19,55.19,0,0,0-1.06,8.85q-.1,3.5-.1,7.23c0,2.5,0,4.81.1,7a35.47,35.47,0,0,0,1.06,7.63,11.81,11.81,0,0,0,2.75,5.31,6.12,6.12,0,0,0,1.4,1.1c.94.56,5.18,3,5.72,3.31a7.11,7.11,0,0,0,3.13.86,12.68,12.68,0,0,0,6.67-2.1,24.46,24.46,0,0,0,6.68-5.6,33.57,33.57,0,0,0,4.63-7.38,38.67,38.67,0,0,0,2.74-8.47,54.08,54.08,0,0,0,1.06-8.85q.1-3.33.1-7.07T181.49,70Zm-20.44,28.3a22.2,22.2,0,0,1-.2-2.6q-.25-6.63,0-13.38a26.75,26.75,0,0,1,.36-3.88,17.86,17.86,0,0,1,.93-3.44,11.62,11.62,0,0,1,1.66-2.91,8.47,8.47,0,0,1,2.25-2q.16,1.17.24,2.58.21,6.48,0,13.38a29.35,29.35,0,0,1-.33,3.85,15.61,15.61,0,0,1-.93,3.45,11.91,11.91,0,0,1-1.69,2.92A8.75,8.75,0,0,1,161.05,98.32Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M156.43,115.65c-.93-.53-4.7-2.7-5.57-3.22a6.65,6.65,0,0,1-1.4-1.1,11.81,11.81,0,0,1-2.75-5.31,35.47,35.47,0,0,1-1.06-7.63c-.06-2.14-.1-4.45-.1-7s0-4.91.1-7.23a55.06,55.06,0,0,1,1.06-8.85,38.81,38.81,0,0,1,1.75-6.06l5.62,3.25a39,39,0,0,0-1.74,6,53.12,53.12,0,0,0-1.06,8.86q-.1,3.48-.11,7.23c0,2.5,0,4.81.11,7a34.34,34.34,0,0,0,1.06,7.63,11.71,11.71,0,0,0,2.74,5.3A6.54,6.54,0,0,0,156.43,115.65Z" |  | ||||||
|           style="opacity: 0.15" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M176.06,55.85a7.13,7.13,0,0,0-3-.79q-2.79-.14-6.68,2.1a24.57,24.57,0,0,0-6.67,5.61,33.21,33.21,0,0,0-4.63,7.36c-.19.41-.36.81-.53,1.23l-.47,1.19h0l-5.62-3.25c.13-.36.27-.71.41-1.06s.38-.9.59-1.35a33.3,33.3,0,0,1,4.62-7.38,24.76,24.76,0,0,1,6.68-5.6,12.59,12.59,0,0,1,6.67-2.1,6.9,6.9,0,0,1,3.21.91Z" |  | ||||||
|           style="fill: #fff; opacity: 0.4" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M171.92,89.32a29.32,29.32,0,0,1-.34,3.86,15.52,15.52,0,0,1-.92,3.44A12,12,0,0,1,170,98l-5.62-3.25a12.61,12.61,0,0,0,.63-1.34,15.77,15.77,0,0,0,.94-3.45,29.35,29.35,0,0,0,.33-3.85q.21-6.89,0-13.38c0-.94-.13-1.8-.24-2.59l.33-.21a4.35,4.35,0,0,1,2.59-.78,2.34,2.34,0,0,1,1.66,1,6.11,6.11,0,0,1,.9,2.38,26.61,26.61,0,0,1,.39,3.45Q172.12,82.43,171.92,89.32Z" |  | ||||||
|           style="opacity: 0.30000000000000004" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M170,98a10.51,10.51,0,0,1-1,1.58,8.86,8.86,0,0,1-2.59,2.21,4.38,4.38,0,0,1-2.58.77,2.33,2.33,0,0,1-1.68-1,5.76,5.76,0,0,1-.93-2.37c-.06-.28-.1-.57-.14-.87a8.6,8.6,0,0,0,2.29-2,11.4,11.4,0,0,0,1-1.58Z" |  | ||||||
|           style="opacity: 0.4" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M166.38,57.16q3.88-2.25,6.68-2.1a6.71,6.71,0,0,1,4.63,2,11.8,11.8,0,0,1,2.74,5.31A34.85,34.85,0,0,1,181.49,70q.1,3.36.1,7.11t-.1,7.07a54.08,54.08,0,0,1-1.06,8.85,38.67,38.67,0,0,1-2.74,8.47,33.57,33.57,0,0,1-4.63,7.38,24.46,24.46,0,0,1-6.68,5.6,12.68,12.68,0,0,1-6.67,2.1,6.68,6.68,0,0,1-4.63-2,11.71,11.71,0,0,1-2.74-5.3,34.94,34.94,0,0,1-1.06-7.63c-.07-2.14-.1-4.45-.1-7s0-4.9.1-7.23a54,54,0,0,1,1.06-8.85,38.93,38.93,0,0,1,2.74-8.48,33.5,33.5,0,0,1,4.63-7.37A24.57,24.57,0,0,1,166.38,57.16Zm5.54,32.16q.21-6.88,0-13.38a26.64,26.64,0,0,0-.39-3.44,6.17,6.17,0,0,0-.9-2.38,2.31,2.31,0,0,0-1.66-1,4.44,4.44,0,0,0-2.59.78,9,9,0,0,0-2.58,2.21A11.62,11.62,0,0,0,162.14,75a17.86,17.86,0,0,0-.93,3.44,26.75,26.75,0,0,0-.36,3.88q-.25,6.75,0,13.38a21.32,21.32,0,0,0,.34,3.46,5.52,5.52,0,0,0,.93,2.37,2.31,2.31,0,0,0,1.68,1,4.38,4.38,0,0,0,2.58-.77A9,9,0,0,0,169,99.55a11.88,11.88,0,0,0,1.68-2.92,15.76,15.76,0,0,0,.93-3.45A31.14,31.14,0,0,0,171.92,89.32Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M219.68,56a6.27,6.27,0,0,0-1.16-.85,6.56,6.56,0,0,0-.76-.35,6,6,0,0,1,.58.25l-4.27-2.48h0l5.3-11.28c.21-.44.43-1,.66-1.57a4.82,4.82,0,0,0,.36-1.77V29.59a1.68,1.68,0,0,0-.41-1.26.91.91,0,0,0-.24-.16h0L214.25,25a.81.81,0,0,0-.79.07L189,39.14a2.31,2.31,0,0,0-.83,1,1.49,1.49,0,0,0-.14.24,4.17,4.17,0,0,0-.41,1.74V50.4a1.66,1.66,0,0,0,.41,1.25,1.46,1.46,0,0,0,.21.16c.19.09,4.54,2.62,5.41,3.12,0,0-.05,0-.06-.06h0a.75.75,0,0,0,1,.07l3.61-2.09L197,55.57a17.85,17.85,0,0,0-.71,1.67,3.17,3.17,0,0,0-.14.4c0,.13-.08.26-.11.4a.11.11,0,0,1,0,.05,1.9,1.9,0,0,0,0,.25s0,0,0,.08a3.1,3.1,0,0,0-.05.6v6.76a1.73,1.73,0,0,0,.4,1.26,1.43,1.43,0,0,0,.22.15L202,70.34l-.08-.06a.75.75,0,0,0,.94,0l4.23-2.45h0a7.94,7.94,0,0,1-1.52,3.72,12.92,12.92,0,0,1-4.06,3.6,5.83,5.83,0,0,1-3.13,1.07,5.76,5.76,0,0,1-.66-.1h0l-2.44-1.41a1,1,0,0,0-.34-.11,2,2,0,0,0-1.23.36l-6.44,3.72a2.18,2.18,0,0,0-.79,1,.49.49,0,0,0,0,.11h0a4.15,4.15,0,0,0-.22.65,2.88,2.88,0,0,0-.07.65,12.08,12.08,0,0,0,1.09,5.06,7.11,7.11,0,0,0,3,3.28c.82.46,4.08,2.38,5.34,3.09-.18-.11-.34-.24-.5-.36a6,6,0,0,0,.72.48,7.9,7.9,0,0,0,4.77.78A17.12,17.12,0,0,0,207.06,91a29.39,29.39,0,0,0,15.12-26.58C222.18,60.32,221.35,57.52,219.68,56Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M188.18,40.22a.64.64,0,0,0,0-.07l-.13.25a4,4,0,0,0-.41,1.74v8.32a1.63,1.63,0,0,0,.41,1.26.7.7,0,0,0,.2.15L193.68,55a.12.12,0,0,0-.06-.06h0a1.65,1.65,0,0,1-.41-1.26V45.34a3.87,3.87,0,0,1,.41-1.72,3,3,0,0,1,.28-.46c-.06.09-.13.17-.19.28Z" |  | ||||||
|           style="opacity: 0.15" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M201.46,62.06l-5.56-3.21c0,.06,0,.11,0,.17v6.76a1.73,1.73,0,0,0,.4,1.26,1.43,1.43,0,0,0,.22.15c.21.11,4.83,2.78,5.46,3.15l-.07-.07,0,0a1.65,1.65,0,0,1-.41-1.24V62.23S201.46,62.12,201.46,62.06Z" |  | ||||||
|           style="opacity: 0.15" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M201.8,60.45c.24-.61.48-1.16.72-1.67l5.41-11.54-9.72,5.62L197,55.57c-.24.5-.48,1-.71,1.67a3,3,0,0,0-.14.39c0,.14-.08.26-.11.4v.06a2,2,0,0,1,0,.24.19.19,0,0,1,0,.08,2.25,2.25,0,0,0,0,.44l5.56,3.21A5.05,5.05,0,0,1,201.8,60.45Z" |  | ||||||
|           style="opacity: 0.30000000000000004" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M186.45,79.66s0,.07,0,.11h0a3.41,3.41,0,0,0-.22.66,3,3,0,0,0-.08.64,12.13,12.13,0,0,0,1.1,5.07,7,7,0,0,0,3,3.27l5.33,3.1a.45.45,0,0,1-.1-.09,7.07,7.07,0,0,1-2.66-3.06,12,12,0,0,1-1.1-5.07,3.33,3.33,0,0,1,.33-1.41,3,3,0,0,1,.27-.44l-5.57-3.2A2.77,2.77,0,0,0,186.45,79.66Z" |  | ||||||
|           style="opacity: 0.15" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M197.71,76.16h0l-2.44-1.42a1.13,1.13,0,0,0-.34-.1,2.08,2.08,0,0,0-1.23.35l-6.44,3.73a1.76,1.76,0,0,0-.52.53l5.57,3.2a1.9,1.9,0,0,1,.53-.53l6.43-3.71c.71-.41,1.26-.48,1.63-.19l-3.17-1.85Z" |  | ||||||
|           style="opacity: 0.30000000000000004" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M203.92,79.47a5.75,5.75,0,0,0,3.15-1.07,12.88,12.88,0,0,0,4.05-3.6,8.13,8.13,0,0,0,1.62-4.94c0-1.82-.55-2.86-1.62-3.08a6,6,0,0,0-4.05,1.1,7.85,7.85,0,0,1-1.52,3.71,12.88,12.88,0,0,1-4.05,3.6,5.71,5.71,0,0,1-3.14,1.06,4.25,4.25,0,0,1-.65-.09L200.88,78l1.26.89A3.75,3.75,0,0,0,203.92,79.47Z" |  | ||||||
|           style="opacity: 0.4" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M214.07,52.55s3.08,1.8,4.27,2.48a.46.46,0,0,0-.14-.05.34.34,0,0,0-.15-.07,7.72,7.72,0,0,0-4.86-.48Z" |  | ||||||
|           style="fill: #fff; opacity: 0.4" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M216.76,26.52l-2.52-1.47a.81.81,0,0,0-.79.07L189,39.21a2.36,2.36,0,0,0-.84.94.64.64,0,0,1,0,.07l5.55,3.22c.06-.11.13-.19.19-.28a3,3,0,0,1,.19-.3,1.79,1.79,0,0,1,.49-.43L219,28.34a.82.82,0,0,1,.71-.11Z" |  | ||||||
|           style="fill: #fff; opacity: 0.4" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M219,28.26a.75.75,0,0,1,1,.07,1.68,1.68,0,0,1,.41,1.26v8.34A4.82,4.82,0,0,1,220,39.7c-.23.61-.45,1.13-.66,1.57l-5.3,11.28-.88,1.88a7.58,7.58,0,0,1,5.33.71,6.63,6.63,0,0,1,1.16.85c1.67,1.53,2.5,4.33,2.5,8.42A29.39,29.39,0,0,1,207.06,91a17.12,17.12,0,0,1-6.51,2.42,7.9,7.9,0,0,1-4.77-.78,7.12,7.12,0,0,1-3-3.27,12.2,12.2,0,0,1-1.1-5.07,3.3,3.3,0,0,1,.33-1.41,2.07,2.07,0,0,1,.8-1l6.43-3.72c.72-.41,1.26-.48,1.64-.2s.79.58,1.25.89a3.68,3.68,0,0,0,1.78.58,5.86,5.86,0,0,0,3.14-1.06,13.09,13.09,0,0,0,4.06-3.61,8,8,0,0,0,1.61-4.93c0-1.84-.53-2.86-1.61-3.08a6.09,6.09,0,0,0-4.06,1.08l-4.23,2.45a.75.75,0,0,1-1-.07,1.69,1.69,0,0,1-.4-1.26V62.23a5,5,0,0,1,.35-1.78c.24-.61.48-1.16.72-1.67l5.41-11.54-13.33,7.7a.75.75,0,0,1-1-.07,1.69,1.69,0,0,1-.41-1.26V45.28a4.06,4.06,0,0,1,.41-1.73,2.61,2.61,0,0,1,1-1.19Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|       </g> |  | ||||||
|     </g> |  | ||||||
|     <g id="freepik--Character--inject-70"> |  | ||||||
|       <g id="freepik--character--inject-70"> |  | ||||||
|         <path d="M414.41,218.19l7.08-.31,4.58,8.68s-2.85,1.48-13.05,1.6Z" style="fill: #f28f8f"></path> |  | ||||||
|         <path |  | ||||||
|           d="M369.6,197.3c2.7,1.27,4.17,2.74,7.07,5.1,3.58,2.92,15.93,11.31,18.58,12a170.44,170.44,0,0,0,21.36,3.44s-1.15,7,.34,10.45c-6.34.28-22.5.82-28.14-.51-6-1.42-12.66-4.8-17.78-7.77S367.05,199.82,369.6,197.3Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <g style="opacity: 0.7000000000000001"> |  | ||||||
|           <path |  | ||||||
|             d="M369.6,197.3c2.7,1.27,4.17,2.74,7.07,5.1,3.58,2.92,15.93,11.31,18.58,12a170.44,170.44,0,0,0,21.36,3.44s-1.15,7,.34,10.45c-6.34.28-22.5.82-28.14-.51-6-1.42-12.66-4.8-17.78-7.77S367.05,199.82,369.6,197.3Z" |  | ||||||
|             style="fill: #fff" |  | ||||||
|           ></path> |  | ||||||
|         </g> |  | ||||||
|         <path |  | ||||||
|           d="M371,220.06c5.12,3,11.74,6.35,17.78,7.77,4.08,1,13.68.95,21.08.76a118.81,118.81,0,0,1-19-3.06,73.51,73.51,0,0,1-11.77-6.2c-3.33-2.37-3.53-6.62-5.23-12.77-2.26-8.16-4.25-9.26-4.25-9.26C367.05,199.82,365.92,217.09,371,220.06Z" |  | ||||||
|           style="opacity: 0.1" |  | ||||||
|         ></path> |  | ||||||
|         <path d="M409.89,228.59a14.48,14.48,0,0,1,.31-8.69s-2.06,2-1.62,8.72Z" style="fill: currentColor"></path> |  | ||||||
|         <path d="M409.89,228.59a14.48,14.48,0,0,1,.31-8.69s-2.06,2-1.62,8.72Z" style="opacity: 0.1"></path> |  | ||||||
|         <path |  | ||||||
|           d="M424.39,226.71c6-.21,8.23-3.25,9.07-8.52s.69-12.16.76-14-.47-2.46-1.2-2.56c-.27,0-1.43.25-1.56,2.2-.24,3.56-.33,5.75-1,5.72s-.57-2.66-.51-6.25c0-2.42,0-4.46-1.4-4.46s-1.79,1.44-1.86,4.71,0,5.7-.86,5.77c-.7,0-.56-3.43-.72-5.67s-.15-3.58-1.55-3.55-1.61,1.83-1.56,4a86.09,86.09,0,0,1-.23,9c-.39,1.29-1.73-1.89-2.71-3.2-1.61-2.15-3.58-1.17-2.78.79a38.83,38.83,0,0,1,2.18,7.4C418.88,220.58,419.89,226.73,424.39,226.71Z" |  | ||||||
|           style="fill: #ffa8a7" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M424.36,215.82s3.62,3.77,2.32,7.8a5.35,5.35,0,0,0,.65-5.4A4.09,4.09,0,0,0,424.36,215.82Z" |  | ||||||
|           style="fill: #f28f8f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M345.39,404.83c-.13,1.14-.28,4.34-6.07,5.13s-9.44-1.12-11-3.9-1.19-5.06-1.44-7.64-2.37-3.95-3-5.28c-.9-1.95.42-5,.42-5Z" |  | ||||||
|           style="fill: #263238" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M387.63,395.77a3.49,3.49,0,0,1-.38,2.8,12.16,12.16,0,0,1-9.28,2.48,22.39,22.39,0,0,1-9.81-3.85,12.92,12.92,0,0,0-7.58-2.18c-2.79-.1-4.82-.72-5-1.45-.37-1.28-.37-2.1.23-2.06Z" |  | ||||||
|           style="fill: #263238" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M345,402.2a31.89,31.89,0,0,0-2.66-3.17,28.64,28.64,0,0,1-6-15.36c0-.31-.06-.91-.37-1.1s-.63.08-1,.22h0v0a6,6,0,0,1-1.79.47,33.38,33.38,0,0,1-4.83-.19c-.4.05-.52,1.29-.49,2.62-.73-.46-1-1.38-1.62-1.91-.36-.29-.51-.3-.51-.77,0-.31,0-.59,0-.9-.52-.15-1,1.87-1.4,3.41-.5,1.78-1.12,3.79-.42,5.6a15.72,15.72,0,0,0,1.63,2.8,11.62,11.62,0,0,1,2.1,5.12c.08.81,0,1.64.13,2.45a7.16,7.16,0,0,0,5.06,5.87c3.52,1.11,8.82.93,11.93-1.53C345.85,405,345.48,403.15,345,402.2Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M385.29,392c-.77-.24-1.53-.52-2.28-.82a41.85,41.85,0,0,1-6.07-3c-.85-.52-1.69-1.06-2.51-1.63s-1.65-1.27-2.47-1.93a8.81,8.81,0,0,1-1.18-1.26,13,13,0,0,1-1.74-2.82,1,1,0,0,0-.43-.57.84.84,0,0,0-.82.17,4,4,0,0,1-.64.43l-.68.28a7.85,7.85,0,0,1-2.28.56c-2.94.26-3-.33-3.16.62a7.93,7.93,0,0,0,0,1.06c-1.55-.25-2.77-.76-2.84-1.34l-.18-1.88c-2.31-.32-2.08,2.38-2.36,5.34-.23,2.54-.82,4.73-.12,6.58,2.33,2,6.46,1.54,8.81,1.93,3.32.55,4.88,3,9.5,4.61,7.44,2.58,12.15-.4,13.54-1.69C388.28,395,388.46,393.05,385.29,392Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M329.2,250.14c-.93,9-1.91,22.55-2.29,33.12-.7,19.86-.43,44.69-.43,44.69a68.59,68.59,0,0,0-2.14,12.73c-.47,12.69-.38,44.1-.38,44.1s5.26,5.3,13.13,1.14c0,0,7-42.87,8.92-55.38,1.87-11.93,5.5-38,5.5-38l1.64,36.05a52.37,52.37,0,0,0-1.23,16.26c.42,5.81,3.74,37.44,3.74,37.44,3,2.84,11.84,1.3,13.77-1,0,0,3.09-45.34,3.43-51.47.74-13.26,1-63.83,0-71.5S329.2,250.14,329.2,250.14Z" |  | ||||||
|           style="fill: #263238" |  | ||||||
|         ></path> |  | ||||||
|         <path d="M351.51,292.56l2.31-15.29a30.68,30.68,0,0,0,11-4.64s-1.8,4.08-8.82,7l-2.28,14.23-.55,34.75Z"></path> |  | ||||||
|         <path |  | ||||||
|           d="M340,155.33s-.21,0-.54.11a2.48,2.48,0,0,0-1.33-2.8,2.67,2.67,0,0,0-3.45,1.41l3.76,1.73a5.24,5.24,0,0,0-2.86,2.44c-1,2.12.33,6.64,1.7,12.22a79,79,0,0,0,3,10.34c.63,1.63,1.77,1.68,1.77,1.68v-5.57l-.24-4.61s3-4.05,3.29-7.37c.41-4.26-.48-6-.48-6Z" |  | ||||||
|           style="fill: #263238" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M342,171.54c-1.11,1-2-1.53-2.95-2.51s-4-2.3-5.5.91,1.39,7.71,3.68,8.77c3.34,1.55,4.84-1.82,4.84-1.82v13.93c3.52,6.35,11.29,6.14,14.89,7a12.33,12.33,0,0,0-.14-6.25l0-4.54a16.7,16.7,0,0,0,4.6.25c3-.48,4.67-3,5.58-6.28,1.47-5.29,1.77-14.18-.27-24.45-3.4-2.63-14.92-2.21-22.06,2.32C345.19,168,343.14,170.57,342,171.54Z" |  | ||||||
|           style="fill: #ffa8a7" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M356.82,187.06s-6.79-1.34-9.17-2.6a7.88,7.88,0,0,1-3.29-3.23,10.64,10.64,0,0,0,1.88,3.82c1.74,2.21,10.59,3.82,10.59,3.82Z" |  | ||||||
|           style="fill: #f28f8f" |  | ||||||
|         ></path> |  | ||||||
|         <path d="M353.73,169.64a1.45,1.45,0,1,1-1.45-1.45A1.45,1.45,0,0,1,353.73,169.64Z" style="fill: #263238"></path> |  | ||||||
|         <path d="M365.24,168.58a1.45,1.45,0,1,1-1.45-1.45A1.45,1.45,0,0,1,365.24,168.58Z" style="fill: #263238"></path> |  | ||||||
|         <path |  | ||||||
|           d="M351.77,165.78l-3,1.59a1.79,1.79,0,0,1,.75-2.37A1.67,1.67,0,0,1,351.77,165.78Z" |  | ||||||
|           style="fill: #263238" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M354.48,178.6l5.09,1.32a2.57,2.57,0,0,1-3.15,2A2.75,2.75,0,0,1,354.48,178.6Z" |  | ||||||
|           style="fill: #b16668" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M355,179.67a3.05,3.05,0,0,0-.52.05,2.73,2.73,0,0,0,2,2.17,2.41,2.41,0,0,0,1.28,0A2.77,2.77,0,0,0,355,179.67Z" |  | ||||||
|           style="fill: #f28f8f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M366.44,166.06l-3.12-1.48a1.66,1.66,0,0,1,2.25-.86A1.82,1.82,0,0,1,366.44,166.06Z" |  | ||||||
|           style="fill: #263238" |  | ||||||
|         ></path> |  | ||||||
|         <polygon points="358.23 167.93 359.14 177.24 363.79 175.15 358.23 167.93" style="fill: #f28f8f"></polygon> |  | ||||||
|         <path |  | ||||||
|           d="M336.08,190.82c-6.18,2.21-10.77,4.37-15.06,8.05,0,0,4.44,19.27,7.22,29.88,2.52,9.67.16,29.37.16,29.37s3.89,5.88,26,5.24C366.9,263,373,259,373,259s1.06-21.73.58-39.9c-.38-14.62-1.44-18.15-3.93-21.81-1.8-1.22-11.75-4.9-11.75-4.9a26.09,26.09,0,0,0-.86,5.45C353.36,192.18,336.08,190.82,336.08,190.82Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M336.08,190.82c-6.18,2.21-10.77,4.37-15.06,8.05,0,0,4.44,19.27,7.22,29.88,2.52,9.67.16,29.37.16,29.37s3.89,5.88,26,5.24C366.9,263,373,259,373,259s1.06-21.73.58-39.9c-.38-14.62-1.44-18.15-3.93-21.81-1.8-1.22-11.75-4.9-11.75-4.9a26.09,26.09,0,0,0-.86,5.45C353.36,192.18,336.08,190.82,336.08,190.82Z" |  | ||||||
|           style="fill: #fff; opacity: 0.30000000000000004" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M333.15,240.67c-.26-6.51-1.67-18.85-1.57-28.2l-4.41-6.69-2.57,8.31c1.23,5.1,2.56,10.54,3.64,14.66,2.52,9.67.16,29.37.16,29.37s3.89,5.88,26,5.24l.4,0A37.07,37.07,0,0,1,342.93,260C336.06,256.6,333.41,247.19,333.15,240.67Z" |  | ||||||
|           style="opacity: 0.1" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M342.1,184.93V186c.2,1,2.25,3.45,7.41,5.77a17.37,17.37,0,0,1,7.48,6.06s-1.76-2.71-3.93-1.28-4.37,5-5.49,5-4.86-3.57-7.79-6.63c-2.45-2.58-3.7-4.13-3.7-4.13S340.09,185,342.1,184.93Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path d="M357,197.85c1.57-3.76,4.4-.55,4.58-.53.82.05-1.79-6.86-4.73-8.76v3Z" style="fill: currentColor"></path> |  | ||||||
|         <path |  | ||||||
|           d="M342.1,184.93V186c.2,1,2.25,3.45,7.41,5.77a17.37,17.37,0,0,1,7.48,6.06s-1.76-2.71-3.93-1.28-4.37,5-5.49,5-4.86-3.57-7.79-6.63c-2.45-2.58-3.7-4.13-3.7-4.13S340.09,185,342.1,184.93Z" |  | ||||||
|           style="fill: #fff; opacity: 0.65" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M357,197.85c1.57-3.76,4.4-.55,4.58-.53.82.05-1.79-6.86-4.73-8.76v3Z" |  | ||||||
|           style="fill: #fff; opacity: 0.65" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M361.11,262.77c.26-13.86.62-49.46-4.12-64.92,0,0,4.47,32.91,2.05,65.19Q360.12,262.92,361.11,262.77Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M361.11,262.77c.26-13.86.62-49.46-4.12-64.92,0,0,4.47,32.91,2.05,65.19Q360.12,262.92,361.11,262.77Z" |  | ||||||
|           style="opacity: 0.1" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M338.56,214.48a38.54,38.54,0,0,0,14.09-1.7l.22,2.72a35,35,0,0,1-14,1.46Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path d="M338.56,214.48a38.54,38.54,0,0,0,14.09-1.7l.22,2.72a35,35,0,0,1-14,1.46Z" style="opacity: 0.1"></path> |  | ||||||
|         <g id="freepik--Shield--inject-70"> |  | ||||||
|           <path |  | ||||||
|             d="M373.17,208.11a.2.2,0,0,0-.07-.2h0c-.05,0-.38-.23-.43-.26h0c-.05,0-.12,0-.22.06a3.15,3.15,0,0,1-3.12.34,2.24,2.24,0,0,1-.35-.34v0h0a.32.32,0,0,0-.09-.08l-.44-.27h0c-.1-.05-.2,0-.27.14-.93,2.11-2.84,4.22-4.08,4.72a.7.7,0,0,0-.25.17.53.53,0,0,0-.15.35c-.09,2.75,1.27,7.19,4.07,8.76a5.58,5.58,0,0,0,.52.32C372.32,217.85,373.06,211.37,373.17,208.11Z" |  | ||||||
|             style="fill: #ebebeb" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M367.74,221.45c-2.8-1.57-4.16-6-4.07-8.76a.55.55,0,0,1,.06-.22l.43.28a.46.46,0,0,0-.05.21C364,215.56,365.23,219.68,367.74,221.45Z" |  | ||||||
|             style="fill: #e0e0e0" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M373.17,208.11c-.11,3.26-.85,9.74-4.91,13.66-2.86-1.53-4.24-6-4.15-8.81a.53.53,0,0,1,.15-.35.74.74,0,0,1,.25-.17c1.24-.5,3.15-2.61,4.08-4.72.07-.15.16-.19.26-.14h0a.32.32,0,0,1,.09.08h0v0a3,3,0,0,0,3.91.28.25.25,0,0,1,.22-.07h0A.2.2,0,0,1,373.17,208.11Z" |  | ||||||
|             style="fill: #fafafa" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M368.85,207.58c-.1-.05-.19,0-.26.14-.93,2.11-2.84,4.22-4.08,4.72a.74.74,0,0,0-.25.17.53.53,0,0,0-.15.35c-.09,2.77,1.29,7.28,4.15,8.81A30.26,30.26,0,0,0,368.85,207.58Z" |  | ||||||
|             style="fill: #f0f0f0" |  | ||||||
|           ></path> |  | ||||||
|         </g> |  | ||||||
|         <path d="M346.57,160.89s9.32,4.54,19.32.61c10.27-4.05,1.27-6.92,1.27-6.92Z" style="fill: #263238"></path> |  | ||||||
|         <path |  | ||||||
|           d="M367.42,141c-7.75-1.72-16.22-2.63-26.39,1.54s-12.73,10.4-12.73,10.4,9.86,3.38,18.19,1.55S367.42,141,367.42,141Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M334.13,158.62s-5.45-4.43-5.83-5.73a34.25,34.25,0,0,0,11.82-1.45c6.68-2,13.93-8.7,21.41-10.25s10.4,2,10.4,2a35.42,35.42,0,0,1-4.74,8.65s-2.61,5.09-11.41,6.75S334.13,158.62,334.13,158.62Z" |  | ||||||
|           style="fill: #37474f" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M334.13,158.62a14.94,14.94,0,0,0,.42,1.74,8.37,8.37,0,0,0,.81,1.47c3.12.61,10.62,1.1,20.51-1.26,6.2-1.49,9.06-3.21,10.24-4.45a3.36,3.36,0,0,0,1.2-2.9l-.12-1.37s-2.06,2.73-12.2,5.26A70.36,70.36,0,0,1,334.13,158.62Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M334.13,158.62a14.94,14.94,0,0,0,.42,1.74,8.37,8.37,0,0,0,.81,1.47c3.12.61,10.62,1.1,20.51-1.26,6.2-1.49,9.06-3.21,10.24-4.45a3.36,3.36,0,0,0,1.2-2.9l-.12-1.37s-2.06,2.73-12.2,5.26A70.36,70.36,0,0,1,334.13,158.62Z" |  | ||||||
|           style="opacity: 0.05" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M339.53,295.16c-1-1.46-3.31-2.78-4.17-3.64-1.52-1.54-3.74-4.79-3.41-5.39s1.26.18,3.2.17c3,0,3.82-1.18,3.79-2.28,0-.86-1.83-.7-4-1.18-1.91-.61-4.2-2.76-5.45-4.45s-2.26-6.1-2.26-6.1-6.49.09-11,3.16c0,0,1.29,6.7,2.77,11.45,1.65,5.33,5.39,11.21,11.08,12.53a13.83,13.83,0,0,0,7.16-.36,5.29,5.29,0,0,0,1.9-.94A2,2,0,0,0,339.53,295.16Z" |  | ||||||
|           style="fill: #ffa8a7" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M321,198.87s-1-.2-2.68,3.66a61.94,61.94,0,0,0-3.27,11.53c-.67,3.22-3.87,20.13-3.87,27.4s2.17,21.88,5,34.33c3.48.35,9.46-.55,11.46-2.83-1.31-12.42-2.41-18.81-2.11-28.58,2-14.5,7.87-29.69,8.12-31.38C334.18,209.29,328.32,197.63,321,198.87Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M321,198.87s-1-.2-2.68,3.66a61.94,61.94,0,0,0-3.27,11.53c-.67,3.22-3.87,20.13-3.87,27.4s2.17,21.88,5,34.33c3.48.35,9.46-.55,11.46-2.83-1.31-12.42-2.41-18.81-2.11-28.58,2-14.5,7.87-29.69,8.12-31.38C334.18,209.29,328.32,197.63,321,198.87Z" |  | ||||||
|           style="fill: #fff; opacity: 0.65" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M316.27,260c-1.74-8.5-4.59-25.14-2.64-38.23-1.12,6.43-2.43,15-2.43,19.69,0,7.27,2.17,21.88,5,34.33a20.33,20.33,0,0,0,4.16-.08C319.11,271.6,317.34,265.24,316.27,260Z" |  | ||||||
|           style="opacity: 0.1" |  | ||||||
|         ></path> |  | ||||||
|         <path d="M314.94,269.69c2.84.18,7.89-.62,10-2,0,0-3.68,1.63-10.19.7Z" style="fill: currentColor"></path> |  | ||||||
|         <path d="M314.94,269.69c2.84.18,7.89-.62,10-2,0,0-3.68,1.63-10.19.7Z" style="opacity: 0.1"></path> |  | ||||||
|         <g id="freepik--shield--inject-70"> |  | ||||||
|           <path |  | ||||||
|             d="M364.79,145.63c0-.08,0-.13,0-.15h0l-.32-.2h0s-.1,0-.17,0a2.37,2.37,0,0,1-2.33.25,1.6,1.6,0,0,1-.26-.26h0a.19.19,0,0,0-.07-.06l-.32-.2h0c-.07,0-.14,0-.19.11a7.61,7.61,0,0,1-3.05,3.52.5.5,0,0,0-.19.13.41.41,0,0,0-.11.26c-.07,2,.95,5.37,3,6.54a3,3,0,0,0,.38.24C364.16,152.9,364.71,148.07,364.79,145.63Z" |  | ||||||
|             style="fill: #ebebeb" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M360.74,155.59c-2.1-1.17-3.11-4.49-3-6.54a.42.42,0,0,1,0-.16l.33.2a.29.29,0,0,0,0,.16C358,151.19,358.86,154.27,360.74,155.59Z" |  | ||||||
|             style="fill: #e0e0e0" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M364.79,145.63c-.08,2.44-.63,7.27-3.67,10.2-2.13-1.14-3.16-4.51-3.09-6.58a.36.36,0,0,1,.11-.26.59.59,0,0,1,.18-.13,7.5,7.5,0,0,0,3.05-3.52c.05-.11.13-.15.2-.11h0a.19.19,0,0,1,.07.06h0a2.19,2.19,0,0,0,2.92.21c.07-.05.12-.06.16,0h0S364.8,145.55,364.79,145.63Z" |  | ||||||
|             style="fill: #fafafa" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M361.57,145.23c-.07,0-.15,0-.2.11a7.5,7.5,0,0,1-3.05,3.52.59.59,0,0,0-.18.13.36.36,0,0,0-.11.26c-.07,2.07,1,5.44,3.09,6.58A22.54,22.54,0,0,0,361.57,145.23Z" |  | ||||||
|             style="fill: #f0f0f0" |  | ||||||
|           ></path> |  | ||||||
|         </g> |  | ||||||
|       </g> |  | ||||||
|     </g> |  | ||||||
|     <g id="freepik--speech-bubble--inject-70"> |  | ||||||
|       <g id="freepik--speech-bubble--inject-70"> |  | ||||||
|         <g id="freepik--speech-bubble--inject-70"> |  | ||||||
|           <path |  | ||||||
|             d="M349.86,130l-5.46-12.44,4.39-12.67V97.08l-13.44,7.76v7.76l5.78,12.18a.87.87,0,0,0,.39.35h0Z" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M349.86,130l-5.46-12.44,4.39-12.67V97.08l-13.44,7.76v7.76l5.78,12.18a.87.87,0,0,0,.39.35h0Z" |  | ||||||
|             style="opacity: 0.2" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M390.07,55.14a8.93,8.93,0,0,0-4-7l-3.28-1.89a8.88,8.88,0,0,0-8.06,0L297.61,90.86a8.9,8.9,0,0,0-4,7V128.6a8.93,8.93,0,0,0,4,7l3.28,1.89a8.88,8.88,0,0,0,8.06,0l34.84-20,5.77,12.17a.86.86,0,0,0,1.55-.15l6.1-19.77L386,92.88a8.91,8.91,0,0,0,4-7Z" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M293.58,128.6a8.93,8.93,0,0,0,4,7l3.28,1.89a9,9,0,0,0,7.37.33c-1.89.71-3.34-.36-3.34-2.65V104.38a8.2,8.2,0,0,1,1.18-4l-11.34-6.55a8.26,8.26,0,0,0-1.18,4Z" |  | ||||||
|             style="opacity: 0.2" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M389.94,54c-.47-1.71-2-2.25-3.89-1.18L309,97.41a7.84,7.84,0,0,0-2.84,3l-11.33-6.54a8,8,0,0,1,2.83-3l77.08-44.6a9,9,0,0,1,8.07,0l3.29,1.9A8.93,8.93,0,0,1,389.94,54Z" |  | ||||||
|             style="fill: #fff; opacity: 0.5" |  | ||||||
|           ></path> |  | ||||||
|         </g> |  | ||||||
|         <path |  | ||||||
|           d="M310.48,123.13V106.88a2.14,2.14,0,0,1,.15-.88,1.11,1.11,0,0,1,.47-.51l4.61-2.67c.17-.09.29-.06.37.1a2.33,2.33,0,0,1,.12.91v.8a3.6,3.6,0,0,1-.12,1.05.84.84,0,0,1-.37.52l-2.61,1.51v3.77l2.46-1.42c.17-.1.29-.07.37.09a2.44,2.44,0,0,1,.11.92v.8a3.74,3.74,0,0,1-.11,1,.87.87,0,0,1-.37.52l-2.46,1.42v6.76a1.64,1.64,0,0,1-1,1.39l-.67.38C310.81,123.77,310.48,123.68,310.48,123.13Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M317.25,111q0-9.22,4.39-11.77,2.14-1.23,3.26.37c.74,1.06,1.12,3.18,1.12,6.34a21.71,21.71,0,0,1-1.12,7.64,7.75,7.75,0,0,1-3.26,4.13Q317.26,120.21,317.25,111Zm5.38,2.24a6.69,6.69,0,0,0,.55-2.11,27.55,27.55,0,0,0,.19-3.66,22.45,22.45,0,0,0-.19-3.41,2.52,2.52,0,0,0-.55-1.48c-.25-.2-.57-.18-1,0a2.53,2.53,0,0,0-1,1.08,7,7,0,0,0-.57,2.12,27.42,27.42,0,0,0-.19,3.64,22.69,22.69,0,0,0,.19,3.42,2.51,2.51,0,0,0,.57,1.48.83.83,0,0,0,1,0A2.63,2.63,0,0,0,322.63,113.2Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M327.56,113.27V97a2,2,0,0,1,.16-.88,1.11,1.11,0,0,1,.51-.54L331,94a2.29,2.29,0,0,1,2.48-.26c.63.43.94,1.55.94,3.37a9,9,0,0,1-1.59,5.28v.11a1.13,1.13,0,0,1,.67.64,4.44,4.44,0,0,1,.45,1.29l1,4.38.05.28c0,.46-.34.89-1,1.29l-.58.34c-.59.34-.93.31-1-.11l-.89-4.39a1.08,1.08,0,0,0-.34-.6c-.13-.08-.33,0-.61.12l-.4.23v5.83a1.67,1.67,0,0,1-1,1.41l-.57.33C327.89,113.9,327.56,113.82,327.56,113.27Zm3.52-11.63a1.69,1.69,0,0,0,.62-.93,5.19,5.19,0,0,0,.26-1.8,2.64,2.64,0,0,0-.26-1.44.47.47,0,0,0-.68-.11l-.88.51v4.31Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M336.35,108.72a1.09,1.09,0,0,1-.15-.7V92a2.09,2.09,0,0,1,.15-.85,1.11,1.11,0,0,1,.47-.51l3-1.73c2.35-1.36,3.52-.58,3.52,2.32a8.92,8.92,0,0,1-1.51,5.13l0,.09a1.28,1.28,0,0,1,1.34.73,5,5,0,0,1,.49,2.48,9.46,9.46,0,0,1-1,4.24,7,7,0,0,1-2.84,3l-3.05,1.77C336.61,108.82,336.45,108.82,336.35,108.72Zm3.49-12.47a1.85,1.85,0,0,0,.79-1,5.05,5.05,0,0,0,.26-1.82,2.79,2.79,0,0,0-.24-1.44q-.24-.34-.78,0l-1.19.69v4.25Zm.12,7.51a2.12,2.12,0,0,0,.91-1.06,5.23,5.23,0,0,0,.29-2,2.65,2.65,0,0,0-.28-1.52c-.19-.23-.5-.22-.92,0l-1.28.73v4.52Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M345.15,103.11V86.6a1.62,1.62,0,0,1,1-1.41l.71-.41c.63-.37.95-.26.95.3v16.51a1.63,1.63,0,0,1-.95,1.41l-.71.4C345.47,103.78,345.15,103.68,345.15,103.11Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M349.78,101a1,1,0,0,1-.16-.7v-16a2,2,0,0,1,.16-.88,1,1,0,0,1,.46-.51l3.19-1.84q2.18-1.26,3.21.39c.68,1.1,1,3.17,1,6.19a22.19,22.19,0,0,1-1,7.38,7.47,7.47,0,0,1-3.21,4.1l-3.19,1.83C350,101.07,349.87,101.08,349.78,101Zm3.56-5.19a3.08,3.08,0,0,0,1.28-2,20.41,20.41,0,0,0,.38-4.59,14.66,14.66,0,0,0-.38-4.15c-.26-.7-.68-.89-1.28-.54l-1.07.61V96.4Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M359.44,95.39a1.11,1.11,0,0,1-.15-.7v-16a2.14,2.14,0,0,1,.15-.88,1.11,1.11,0,0,1,.47-.51l3.19-1.84q2.17-1.26,3.2.39t1,6.19a22,22,0,0,1-1,7.38,7.41,7.41,0,0,1-3.2,4.1l-3.19,1.83C359.7,95.48,359.54,95.49,359.44,95.39Zm3.57-5.2a3.07,3.07,0,0,0,1.28-2,20.48,20.48,0,0,0,.38-4.59,14.66,14.66,0,0,0-.38-4.15c-.26-.71-.69-.89-1.28-.55l-1.07.62v11.3Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M369.11,89.81a1.11,1.11,0,0,1-.15-.7v-16a2.12,2.12,0,0,1,.15-.87,1.18,1.18,0,0,1,.47-.52l4.94-2.85a.23.23,0,0,1,.37.09,2.39,2.39,0,0,1,.12.92v.8a3.64,3.64,0,0,1-.12,1,.87.87,0,0,1-.37.52L371.57,74v3.74l2.62-1.51c.17-.09.29-.06.37.1a2.3,2.3,0,0,1,.12.91V78a3.6,3.6,0,0,1-.12,1.05.84.84,0,0,1-.37.52l-2.62,1.51v4.18l3-1.71c.17-.1.29-.07.36.1a2.63,2.63,0,0,1,.11.92v.8a4,4,0,0,1-.11,1,.82.82,0,0,1-.36.52l-5,2.86C369.37,89.9,369.21,89.91,369.11,89.81Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M376.53,85V68.48a1.61,1.61,0,0,1,1-1.38l.43-.26a1,1,0,0,1,.54-.16c.13,0,.24.14.33.38l3,6.67a13.89,13.89,0,0,1,.57,1.69l.07-.1c-.09-.84-.14-1.49-.14-2V65.13a1.62,1.62,0,0,1,1-1.38l.41-.23c.64-.38,1-.29,1,.26V80.29a1.64,1.64,0,0,1-1,1.39l-.32.18a1.06,1.06,0,0,1-.56.18c-.14,0-.26-.14-.35-.38l-3.2-6.92a10.16,10.16,0,0,1-.45-1.39l-.08.12a14.88,14.88,0,0,1,.13,1.68v8.49a1.62,1.62,0,0,1-1,1.39l-.4.23C376.86,85.63,376.53,85.54,376.53,85Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|       </g> |  | ||||||
|     </g> |  | ||||||
|     <g id="freepik--Plant--inject-70"> |  | ||||||
|       <g id="freepik--Pot--inject-70"> |  | ||||||
|         <g id="freepik--pot--inject-70"> |  | ||||||
|           <path |  | ||||||
|             d="M124.7,425.24c8.41-8.69,13.36-44,5.15-50.91H88.08c-8.2,6.88-3.27,42.21,5.15,50.9l.23.24.29.28a8.57,8.57,0,0,0,.76.69l.2.16.63.48a10,10,0,0,0,1.09.7c6.92,4.05,18.15,4.05,25.07,0h0a10,10,0,0,0,1.09-.7c.21-.15.4-.3.6-.46l.24-.19c.27-.22.51-.44.74-.66l.33-.33Z" |  | ||||||
|             style="fill: #455a64" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M91.71,371.55c-9.53,5.57-9.53,14.59,0,20.15s25,5.56,34.51,0,9.53-14.58,0-20.15S101.24,366,91.71,371.55Z" |  | ||||||
|             style="fill: #455a64" |  | ||||||
|           ></path> |  | ||||||
|           <g style="opacity: 0.1"> |  | ||||||
|             <path |  | ||||||
|               d="M91.71,371.55c-9.53,5.57-9.53,14.59,0,20.15s25,5.56,34.51,0,9.53-14.58,0-20.15S101.24,366,91.71,371.55Z" |  | ||||||
|               style="fill: #fff" |  | ||||||
|             ></path> |  | ||||||
|           </g> |  | ||||||
|           <path |  | ||||||
|             d="M96.29,374.23c-7,4.08-7,10.71,0,14.79s18.35,4.09,25.35,0,7-10.71,0-14.79S103.29,370.14,96.29,374.23Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M121.63,381.25c-7-4.09-18.34-4.09-25.34,0a11.69,11.69,0,0,0-4.19,3.89A11.76,11.76,0,0,0,96.29,389c7,4.09,18.35,4.09,25.34,0a11.72,11.72,0,0,0,4.2-3.88A11.65,11.65,0,0,0,121.63,381.25Z" |  | ||||||
|             style="fill: #f5f5f5" |  | ||||||
|           ></path> |  | ||||||
|         </g> |  | ||||||
|         <g id="freepik--Plants--inject-70"> |  | ||||||
|           <path |  | ||||||
|             d="M85.81,305.77l16.7,11.42-15.79-6a28.78,28.78,0,0,0,3.12,12.14s10.43,5.06,16.1,10.4l-13.89-4.37a15.32,15.32,0,0,0,.43,7.26c.09.32.19.65.29,1,.74,2.22,1.79,6.43,3.56,11.4h0a73.25,73.25,0,0,0,5.74,12.56,51.3,51.3,0,0,0,3.82,5.64l.26.34q3.87-2.58,8-5.05c1.6-4.1,3.37-14.06,3.69-22.14,1.21-30.93-23.23-46.89-42.31-51.47C75.59,288.91,82.57,296.5,85.81,305.77Z" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M85.81,305.77l16.7,11.42-15.79-6a28.78,28.78,0,0,0,3.12,12.14s10.43,5.06,16.1,10.4l-13.89-4.37a15.32,15.32,0,0,0,.43,7.26c.09.32.19.65.29,1,.74,2.22,1.79,6.43,3.56,11.4h0a73.25,73.25,0,0,0,5.74,12.56,51.3,51.3,0,0,0,3.82,5.64l.26.34q3.87-2.58,8-5.05c1.6-4.1,3.37-14.06,3.69-22.14,1.21-30.93-23.23-46.89-42.31-51.47C75.59,288.91,82.57,296.5,85.81,305.77Z" |  | ||||||
|             style="opacity: 0.30000000000000004" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M99.13,306.12a22.94,22.94,0,0,1,4.34,5.23,48.28,48.28,0,0,1,3.06,6.1,62.65,62.65,0,0,1,3.74,13.08,57.68,57.68,0,0,1-1.47,26.89h0a.44.44,0,0,0,.85.26h0a58.35,58.35,0,0,0,1.06-27.23,62.82,62.82,0,0,0-4-13.09,47.87,47.87,0,0,0-3.16-6.07A23.37,23.37,0,0,0,99.13,306.12Z" |  | ||||||
|             style="fill: #fafafa" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M157.52,321.57l0,0c-.38.49-6.29,5.64-15.36,21.07l-18.39,4.62,15,1.35-6.88,12-15.7,3.88,12.44,1.54s-3,12.18-11.61,17.55c-4.78,3-7.15,3.48-8.67,2.15-1.06-.94-1.52-6.71-2.58-11.84s-1.45-13.52,3-23.83a31.46,31.46,0,0,1,4.78-7.64C124.72,329,146.58,321.83,157.52,321.57Z" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M157.52,321.57l0,0c-.38.49-6.29,5.64-15.36,21.07l-18.39,4.62,15,1.35-6.88,12-15.7,3.88,12.44,1.54s-3,12.18-11.61,17.55c-4.78,3-7.15,3.48-8.67,2.15-1.06-.94-1.52-6.71-2.58-11.84s-1.45-13.52,3-23.83a31.46,31.46,0,0,1,4.78-7.64C124.72,329,146.58,321.83,157.52,321.57Z" |  | ||||||
|             style="opacity: 0.15" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M112.17,355.34a0,0,0,0,0,0,0v0A48.67,48.67,0,0,0,109,368.81h0a145.8,145.8,0,0,0,.22,17.45,2.92,2.92,0,0,1-.91-.51c-1.06-.94-1.52-6.71-2.58-11.84s-1.45-13.52,3-23.83a31.46,31.46,0,0,1,4.78-7.64c11.2-13.49,33.06-20.63,44-20.89-16.68,3.39-34.29,15.26-42.7,28.59A34.19,34.19,0,0,0,112.17,355.34Z" |  | ||||||
|             style="opacity: 0.1" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M140.91,327.48c-8.17,4-15.85,9.28-21.77,16.31a43.5,43.5,0,0,0-7.21,11.67,41.81,41.81,0,0,0-3,13.34,0,0,0,0,0,.09,0,53.43,53.43,0,0,1,3.72-13,50.07,50.07,0,0,1,6.94-11.55,57.58,57.58,0,0,1,9.76-9.41,75.9,75.9,0,0,1,11.5-7.28,0,0,0,1,0,0-.08Z" |  | ||||||
|             style="fill: #fafafa" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M60.05,333.25h0a33.68,33.68,0,0,1,4,0,64.21,64.21,0,0,1,15.67,2.9c1.89.59,3.78,1.26,5.66,2,.93.39,1.86.8,2.78,1.23a45,45,0,0,1,12.34,8.3,28.44,28.44,0,0,1,4.39,5.5c.16.26.33.52.48.78h0c.39.68.73,1.36,1.07,2A38.81,38.81,0,0,1,111,374.83c.09,4.62-1.19,10-2,10.89a2.23,2.23,0,0,1-.38.32c-1.27.91-3.39.54-7.42-1.43-8.07-3.94-11.76-14.86-11.76-14.86l10.78-2.45-14.12-2-6.17-8.54,10.34-2.47L76,352.87a209.33,209.33,0,0,0-15.88-19.6l0,0Z" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M64.1,333.22a64.21,64.21,0,0,1,15.67,2.9c1.89.59,3.78,1.26,5.66,2,.93.39,1.86.8,2.78,1.23a45,45,0,0,1,12.34,8.3,28.44,28.44,0,0,1,4.39,5.5c.16.26.33.52.48.78h0c.39.68.73,1.36,1.07,2A38.81,38.81,0,0,1,111,374.83c.09,4.62-1.19,10-2,10.89a2.23,2.23,0,0,1-.38.32,2.42,2.42,0,0,1-.85.37c.57-7.2-4-25.13-9.68-32.29-6-7.45-19.73-18-38-20.85l0,0A33,33,0,0,1,64.1,333.22Z" |  | ||||||
|             style="opacity: 0.05" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M107.81,386.41a61.14,61.14,0,0,0-1.91-15.75A50.94,50.94,0,0,0,99.83,356a36,36,0,0,0-5.13-6.15,52.73,52.73,0,0,0-6.14-5.12,59.51,59.51,0,0,0-14.07-7.4,0,0,0,0,0-.06,0,.06.06,0,0,0,0,.06,78.8,78.8,0,0,1,13.58,8,66.22,66.22,0,0,1,6,5,35.22,35.22,0,0,1,5.15,5.9,50.3,50.3,0,0,1,6.23,14.42,61.24,61.24,0,0,1,2.25,15.64,0,0,0,0,0,0,0A0,0,0,0,0,107.81,386.41Z" |  | ||||||
|             style="fill: #fafafa" |  | ||||||
|           ></path> |  | ||||||
|         </g> |  | ||||||
|       </g> |  | ||||||
|     </g> |  | ||||||
|   </svg> |  | ||||||
| </template> |  | ||||||
|  |  | ||||||
| <script lang="ts" setup></script> |  | ||||||
| <style scoped></style> |  | ||||||
| @@ -1,504 +0,0 @@ | |||||||
| <template> |  | ||||||
|   <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500"> |  | ||||||
|     <g id="freepik--Floor--inject-37"> |  | ||||||
|       <ellipse |  | ||||||
|         id="freepik--floor--inject-37" |  | ||||||
|         cx="249.03" |  | ||||||
|         cy="368.25" |  | ||||||
|         rx="228.44" |  | ||||||
|         ry="118.95" |  | ||||||
|         style="fill: #f5f5f5" |  | ||||||
|       ></ellipse> |  | ||||||
|     </g> |  | ||||||
|     <g id="freepik--Shadows--inject-37"> |  | ||||||
|       <ellipse |  | ||||||
|         id="freepik--Shadow--inject-37" |  | ||||||
|         cx="395.38" |  | ||||||
|         cy="348.61" |  | ||||||
|         rx="60.93" |  | ||||||
|         ry="35.18" |  | ||||||
|         style="fill: #e6e6e6" |  | ||||||
|       ></ellipse> |  | ||||||
|       <g id="freepik--shadow--inject-37"> |  | ||||||
|         <path |  | ||||||
|           id="freepik--shadow--inject-37" |  | ||||||
|           d="M150,327.73c23.31,13.46,24.26,35.68.94,49.14s-62.05,13.06-85.37-.4-23.31-35.28,0-48.74S126.67,314.27,150,327.73Z" |  | ||||||
|           style="fill: #e6e6e6" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           id="freepik--shadow--inject-37" |  | ||||||
|           d="M340.14,400.26l-76.52-44.18a9.57,9.57,0,0,0-8.66,0l-76.52,44.18c-2.39,1.38-2.39,3.62,0,5l34.85,20.12-32.55,18.79c-6.61,3.81-17.37,3.81-24,0l-51.2-29.56c-2.82-1.63-4.38-3.68-4.38-5.76s1.56-4.14,4.38-5.77l45.37-26.2a2,2,0,1,0-2-3.46L103.56,399.6c-4.11,2.38-6.38,5.66-6.38,9.24s2.27,6.85,6.38,9.23l51.2,29.56a30.56,30.56,0,0,0,28,0l34.55-19.94L255,449.44a9.57,9.57,0,0,0,8.66,0l76.52-44.18C342.53,403.88,342.53,401.64,340.14,400.26Z" |  | ||||||
|           style="fill: #e6e6e6" |  | ||||||
|         ></path> |  | ||||||
|       </g> |  | ||||||
|     </g> |  | ||||||
|     <g id="freepik--character-2--inject-37"> |  | ||||||
|       <g id="freepik--Character--inject-37"> |  | ||||||
|         <g id="freepik--Bottom--inject-37"> |  | ||||||
|           <path |  | ||||||
|             d="M427.58,332.09s2.78-41.18,2-56.36c-.65-12-2.28-17-2.62-19.71,0,0-2.95-28-3.19-51.89-.12-11.48-1.18-19.64-7.47-33.28l-40.43,9.67c-.82,6.06-3.6,46.36-4.26,82.19-.57,31.37.32,58.83.32,58.83l0,1.65c0,1.84-.4,3.12-1.58,6.06a35.32,35.32,0,0,1-6.26,10.36c-.83.9-6.6,5.94-7.36,7-2.48,2.89,2.66,4.52,6.47,4,4-.54,10.26-2.07,12-4.51,1.18-1.64,2.07-7.35,3.28-9,4.09-5.58,5.77-8,5.8-9.76.06-3.22-1.05-4.49-1.45-6.31.33-3.8,8.54-35.05,8.68-46.12.07-5.27-.29-12.53-.29-12.53l6.36-36.52c2.46,9.12,6.78,31.76,8.24,40.45,1.77,10.62,6.4,37.88,9.14,54.14,1.05,6.27,1.54,9.44,2,12.35l.11,1.24c.09,1.58,1.24,18.48,1.86,22,1.3,7.39,7.87,6.46,8.92.48.9-5.08-.22-20.84-.25-22.77Z" |  | ||||||
|             style="fill: #ffa8a7" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M427.58,332.09c1.86,0,.64,7.21,1.12,11.82.51,4.95,2.13,8.57,2.6,12.62a16.48,16.48,0,0,1-1.55,10.39c-1.29,3-7.79,7-10.26,2.79s-3-9.08-2.71-13.7,0-7.72.09-11.35c.09-3.2-2.26-11.37.15-11.83l.11,1.24c.87,1.73,9.65,2.07,10.53-.27Z" |  | ||||||
|             style="fill: #37474f" |  | ||||||
|           ></path> |  | ||||||
|           <path d="M384.7,331.27c.57,2.31,0,8.65,0,8.65s-1,2.19-4.57,3.64l-1.6-8.82Z" style="fill: #263238"></path> |  | ||||||
|           <polygon points="380.11 343.56 372.25 340.98 370.35 334 379.19 338.47 380.11 343.56"></polygon> |  | ||||||
|           <path |  | ||||||
|             d="M371.93,323.19l0-1.65c-1.07.52-3.42,9.13-6.6,15-2.9,5.39-8.65,8.39-10.52,10.74-2.5,3.13,2.36,7.18,10.15,5.51,3.87-.83,9.73-3.3,11.32-5.91s2.12-7.41,3.42-9.33,4.39-4.13,5-6.31a12,12,0,0,0,0-6c-.61-2-1.15-4.39-1.83-4.17l0,1.51c-.52,1.06-2.41,2.3-6.34,2.52C374.61,325.19,372.79,324.9,371.93,323.19Z" |  | ||||||
|             style="fill: #37474f" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M375.05,180s-2.67,29.67-3.53,55.94-.09,60.17-.09,60.17,2.71,1.94,8.68,2.21,8-1.72,8-1.72,3.65-11.91,4.22-20.29a85.71,85.71,0,0,0,0-13.63l5.33-35.06s6.76,34.52,7.53,38.69,7.24,41.06,7.24,41.06,2.54,2.34,9.06,2.22c5.77-.11,7.44-2.18,7.44-2.18s1.39-22.62,1.07-32.28c-.27-8.52-2.22-15.3-2.61-20.83s-.61-37-1-49S425,183,414.73,168.56Z" |  | ||||||
|             style="fill: #455a64" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M397.7,227.65l-4.44-22s-7.73-2-11.34-6.74c0,0,1,5.24,9,8.59l4.72,21.88L394,252Z" |  | ||||||
|             style="fill: #37474f" |  | ||||||
|           ></path> |  | ||||||
|         </g> |  | ||||||
|         <g id="freepik--Top--inject-37"> |  | ||||||
|           <path |  | ||||||
|             d="M318.56,174.53a19.1,19.1,0,0,0,8.51-.63,16.74,16.74,0,0,1-3.37-2.23,2.33,2.33,0,0,1-.4-3.22c.37-.4,1.29.53,3.37,1.12,2.66.75,4.59.91,7.15,2.39a4.69,4.69,0,0,0,3.2.56c6.24-1.17,20.79-8,27.46-11.56,1.36-5.55,3.72-13.71,6.63-23.89,2.69-9.38,7-13.48,13.88-13.33L384,144.11s-3.28,14.07-7.34,25.56c-.71,2-3.56,4.33-8.78,6.27-6.76,2.51-14.92,4.88-24.89,7.61A77.29,77.29,0,0,1,330.65,186c-10.54.9-14.58-2-16-4.08C310.61,176.18,313,173.42,318.56,174.53Z" |  | ||||||
|             style="fill: #ffa8a7" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M402.72,123.59l9.62.74a22.36,22.36,0,0,0,7.24,21.54l-4.29,17.28c.14,2.14,3.68,9.34,7.11,17.08-6.45,8.64-38.09,11.59-48.41,4,1.59-8.14,2.78-14.32,3.1-17.41l-.52-11.17c-12.94-10.61,2.67-26.78,8.42-31.92l7.22-.32Z" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M443.23,209.68a5.39,5.39,0,0,1-2.06-4.64c.17-1.61.54-3.63,1.21-4.41s4.87-6.49,6.73-3.17c2,3.62,1.59,5.09,1.59,5.09Z" |  | ||||||
|             style="fill: #f28f8f" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M430.27,286a25.84,25.84,0,0,1-12.75-3.86L367.59,253.3c-7.71-4.45-14-15.32-14-24.23V187.18a8,8,0,0,0-12-6.9L324.11,190.4a2,2,0,1,1-2-3.46l17.53-10.13a12,12,0,0,1,18,10.37v41.89c0,7.5,5.5,17,12,20.77l49.93,28.82c6.39,3.69,12.32,4.33,16.68,1.82s6.77-8,6.77-15.35V211.65c0-9.06,5.79-19.5,13.18-23.77l12.19-7a2,2,0,1,1,2,3.46l-12.19,7c-6.06,3.5-11.18,12.79-11.18,20.3v53.48c0,8.86-3.12,15.54-8.77,18.81A15.68,15.68,0,0,1,430.27,286Z" |  | ||||||
|             style="fill: #37474f" |  | ||||||
|           ></path> |  | ||||||
|           <g id="freepik--Plug--inject-37"> |  | ||||||
|             <path |  | ||||||
|               d="M344,193.29v3.27c0,5.23-3.67,11.6-8.21,14.21l-30.28,17.49-30.79-17.78V183.82L304.58,170c4.75-2.19,12.27-1.85,16.81.76l14.38,8.31C340.3,181.69,344,188.06,344,193.29Z" |  | ||||||
|               style="fill: #37474f" |  | ||||||
|             ></path> |  | ||||||
|             <path |  | ||||||
|               d="M304.58,170c4.75-2.19,12.27-1.85,16.81.76l14.38,8.31c4.53,2.61,4.35,6.51-.4,8.71l-29.89,13.8-30.8-17.77Z" |  | ||||||
|               style="fill: #455a64" |  | ||||||
|             ></path> |  | ||||||
|             <path |  | ||||||
|               d="M308.39,195.18a9.07,9.07,0,0,1,4.1,7.1v21.93l-7,4-30.79-17.78V183.82l7.8-3.6Z" |  | ||||||
|               style="opacity: 0.15" |  | ||||||
|             ></path> |  | ||||||
|             <path |  | ||||||
|               d="M272.07,179.23a2.85,2.85,0,0,1,2.88.28L305.23,197a9.06,9.06,0,0,1,4.1,7.11v26.08a2.85,2.85,0,0,1-1.2,2.64c-.7.39-3.17,1.82-3.86,2.23a2.87,2.87,0,0,1-2.89-.28l-30.29-17.49a9.07,9.07,0,0,1-4.1-7.1V184.11a2.89,2.89,0,0,1,1.19-2.65Z" |  | ||||||
|               style="fill: #37474f" |  | ||||||
|             ></path> |  | ||||||
|             <path |  | ||||||
|               d="M301.38,199.22l-30.29-17.48c-2.26-1.31-4.1-.25-4.1,2.37v26.08a9.07,9.07,0,0,0,4.1,7.1l30.29,17.49c2.26,1.31,4.1.25,4.1-2.37V206.33A9.09,9.09,0,0,0,301.38,199.22Z" |  | ||||||
|               style="fill: #455a64" |  | ||||||
|             ></path> |  | ||||||
|             <path |  | ||||||
|               d="M265.51,229.58v4.51c0,1.83.63,3.1,1.67,3.7l2.72,1.57A4,4,0,0,0,274,239l25-14.46V206.74l-2.72-1.57-25.05,14.46A12.69,12.69,0,0,0,265.51,229.58ZM276.84,224A4,4,0,0,1,277,225a8.5,8.5,0,0,1-3.85,6.67,3.62,3.62,0,0,1-1,.4,4.11,4.11,0,0,1-.14-1,8.51,8.51,0,0,1,3.85-6.67A4.74,4.74,0,0,1,276.84,224Z" |  | ||||||
|               style="fill: currentColor" |  | ||||||
|             ></path> |  | ||||||
|             <path |  | ||||||
|               d="M269.76,239.26a1,1,0,0,0,.17.12h0l-.1-.06-2.63-1.53c-1.05-.58-1.67-1.85-1.67-3.69v-4.51a11.64,11.64,0,0,1,1.69-5.67l2.72,1.57a11.8,11.8,0,0,0-1.68,5.67v4.51a4.59,4.59,0,0,0,1.05,3.22A2.45,2.45,0,0,0,269.76,239.26Z" |  | ||||||
|               style="opacity: 0.2" |  | ||||||
|             ></path> |  | ||||||
|             <path |  | ||||||
|               d="M299,206.74,274,221.2a11.72,11.72,0,0,0-4.06,4.28l-2.72-1.57a11.78,11.78,0,0,1,4.05-4.28l25.05-14.46Z" |  | ||||||
|               style="fill: #fff; opacity: 0.5" |  | ||||||
|             ></path> |  | ||||||
|             <path d="M270,239.45l-.07,0,0,0S270,239.45,270,239.45Z" style="fill: #fff; opacity: 0.5"></path> |  | ||||||
|             <path d="M270,239.43l0,0,0,0Z" style="opacity: 0.2"></path> |  | ||||||
|             <path |  | ||||||
|               d="M277,225a4.27,4.27,0,0,0-.14-1.07h0c1.65-.45,2.86.58,2.86,2.64a8.52,8.52,0,0,1-3.84,6.67c-1.78,1-3.3.49-3.72-1.17a3.27,3.27,0,0,0,1-.4A8.53,8.53,0,0,0,277,225Z" |  | ||||||
|               style="opacity: 0.2" |  | ||||||
|             ></path> |  | ||||||
|             <path |  | ||||||
|               d="M242.42,216.24v4.52c0,1.82.63,3.1,1.67,3.69l2.72,1.58a4,4,0,0,0,4.08-.38l25-14.47V193.41l-2.72-1.58-25,14.46A12.72,12.72,0,0,0,242.42,216.24Zm11.33-5.61a4.33,4.33,0,0,1,.14,1.07,8.51,8.51,0,0,1-3.85,6.67,4.6,4.6,0,0,1-1,.4,3.81,3.81,0,0,1-.14-1.05,8.52,8.52,0,0,1,3.84-6.67A3.91,3.91,0,0,1,253.75,210.63Z" |  | ||||||
|               style="fill: currentColor" |  | ||||||
|             ></path> |  | ||||||
|             <path |  | ||||||
|               d="M246.93,226.1l-.05,0-.07,0-2.72-1.59c-1.05-.59-1.67-1.86-1.67-3.7v-4.51a9.88,9.88,0,0,1,.45-2.84,13.48,13.48,0,0,1,1.23-2.82h0l2.72,1.56h0a12.69,12.69,0,0,0-.69,1.38,10.89,10.89,0,0,0-1,4.28v4.51a4.61,4.61,0,0,0,1,3.22A2.8,2.8,0,0,0,246.93,226.1Z" |  | ||||||
|               style="opacity: 0.2" |  | ||||||
|             ></path> |  | ||||||
|             <path |  | ||||||
|               d="M275.92,193.41l-25,14.46a11.64,11.64,0,0,0-4.06,4.28l-2.72-1.56a11.77,11.77,0,0,1,4-4.3l25-14.46Z" |  | ||||||
|               style="fill: #fff; opacity: 0.5" |  | ||||||
|             ></path> |  | ||||||
|             <path d="M247,226.12l-.07,0,.05,0Z" style="fill: #fff; opacity: 0.5"></path> |  | ||||||
|             <path |  | ||||||
|               d="M253.88,211.69a4.21,4.21,0,0,0-.13-1.06h0c1.64-.46,2.86.58,2.86,2.64a8.52,8.52,0,0,1-3.84,6.67c-1.79,1-3.3.49-3.72-1.18a3.12,3.12,0,0,0,1-.4A8.5,8.5,0,0,0,253.88,211.69Z" |  | ||||||
|               style="opacity: 0.2" |  | ||||||
|             ></path> |  | ||||||
|           </g> |  | ||||||
|           <path |  | ||||||
|             d="M250,199.55a1.49,1.49,0,0,1-1.45-1.13l-4-15.68a1.5,1.5,0,0,1,2.91-.75l4,15.69a1.48,1.48,0,0,1-1.08,1.82A1.57,1.57,0,0,1,250,199.55Z" |  | ||||||
|             style="fill: #e0e0e0" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M238.74,206.09a1.5,1.5,0,0,1-.93-.32L222.92,194a1.5,1.5,0,1,1,1.86-2.35l14.89,11.76a1.51,1.51,0,0,1,.25,2.11A1.48,1.48,0,0,1,238.74,206.09Z" |  | ||||||
|             style="fill: #e0e0e0" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M218.22,220.45a1.5,1.5,0,0,1-.11-3l17.41-1.35a1.49,1.49,0,0,1,1.61,1.38,1.51,1.51,0,0,1-1.38,1.61l-17.41,1.35Z" |  | ||||||
|             style="fill: #e0e0e0" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M456.84,193.36a98.58,98.58,0,0,0-1.64-11,148.11,148.11,0,0,0-9.06-24.81c-1.67-3.19-5.44-7.84-8.11-11.77-3.78-5.55-6.44-8.66-9.31-12.43-6.32-8.27-9-8.75-16.38-9-1,2.63-3.28,13.41,4.11,22.12l15.84,16.7c.9,1.45,10.58,18,12.19,24.11a4.52,4.52,0,0,1-.38,3.23,39,39,0,0,0-2.77,8.76c-.47,2.12-1.73,3.8-1.3,4.13a2.84,2.84,0,0,0,3.51-.28,15.05,15.05,0,0,0,2.73-4.12,2.15,2.15,0,0,1,2.29,2.19c.09,1.23-.47,2.94-.9,5.07-.08.42-.18.9-.37,2.06a13.42,13.42,0,0,0-.28,2.38c2,.37,4.09-.85,7.45-4C457.49,203.76,457.69,199.9,456.84,193.36Z" |  | ||||||
|             style="fill: #ffa8a7" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M404.44,118.73c.06-2,6.56-6.68,9.85-11.66,3-4.62,7.31-17.32-2.79-21.38,0,0,2.18-6.09-1.78-9.68s-9.29-1.37-10.13.13a9,9,0,0,0-8.46-6.64,7.87,7.87,0,0,0-8.28,6.17,7.59,7.59,0,0,0-9.21,2.58c-3.71,5.11,1.21,9.79,1.21,9.79A4.25,4.25,0,0,0,373,92c.29,2.16,2.36,2.69,2.6,3.77a1.06,1.06,0,0,1-1.81.94,2.18,2.18,0,0,0,2.56,1.73c2.33-.13,4.41-3.3,4.41-3.3Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M383.24,85.05c-3,1.3-5.83,5.87-5.79,18.65,0,10.83,3.36,13.57,5,14.38s4.95.39,8.14-.1v6.23s-5.77,7.16-.6,10.72c13.32-2.33,14.34-11.07,14.34-11.07l.24-13.58s1.83,1.92,5-.9c2.66-2.33,3.62-6.32,1.62-8.52s-4.56-2.37-6.88.08c0,0-4.25.28-10.64-3.73S385,89.13,383.24,85.05Z" |  | ||||||
|             style="fill: #ffa8a7" |  | ||||||
|           ></path> |  | ||||||
|           <path d="M390.91,110.48a1.56,1.56,0,0,1-1.48,1.66,1.61,1.61,0,1,1,1.48-1.66Z" style="fill: #b16668"></path> |  | ||||||
|           <path d="M382.68,100a1.44,1.44,0,1,1-1.5-1.45A1.47,1.47,0,0,1,382.68,100Z" style="fill: #263238"></path> |  | ||||||
|           <path |  | ||||||
|             d="M393.75,100.66a1.56,1.56,0,0,1-1.48,1.66,1.59,1.59,0,0,1-1.6-1.56,1.54,1.54,0,1,1,3.08-.1Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M381.68,94.27l-3.05,1.79a1.7,1.7,0,0,0,2.4.65A1.83,1.83,0,0,0,381.68,94.27Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M404.37,99.18l0,6a2.82,2.82,0,0,1-2.89-2.92A3.1,3.1,0,0,1,404.37,99.18Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <polygon points="386.62 98.57 386.01 107.21 381.45 106.14 386.62 98.57" style="fill: #f28f8f"></polygon> |  | ||||||
|           <path |  | ||||||
|             d="M390.63,118c3.35-.39,10.27-2.31,11.4-5.13a7.35,7.35,0,0,1-2.48,3.57c-2.09,1.8-8.93,3.66-8.93,3.66Z" |  | ||||||
|             style="fill: #f28f8f" |  | ||||||
|           ></path> |  | ||||||
|         </g> |  | ||||||
|         <g id="freepik--question-marks--inject-37"> |  | ||||||
|           <path |  | ||||||
|             d="M430.9,51.18a13.78,13.78,0,0,1,3.55,2,10.75,10.75,0,0,1,2.65,2.79,8.68,8.68,0,0,1,1.3,3.44,7.65,7.65,0,0,1-.47,3.87,7.9,7.9,0,0,1-1.59,2.66,9.5,9.5,0,0,1-2.13,1.68,14.81,14.81,0,0,1-2.4,1.1l-2.36.85a11.94,11.94,0,0,0-2,.94A3.57,3.57,0,0,0,426,71.85a1.76,1.76,0,0,1-.66.64,1,1,0,0,1-.86.05l-3.12-1.17a1.18,1.18,0,0,1-.67-.63,1,1,0,0,1,0-.89,7.71,7.71,0,0,1,1.74-2.56,10.91,10.91,0,0,1,2.25-1.63,15.6,15.6,0,0,1,2.46-1.06c.84-.28,1.62-.55,2.35-.83a10.4,10.4,0,0,0,1.89-.92,2.79,2.79,0,0,0,1.12-1.38,3.29,3.29,0,0,0-.34-3.06,6,6,0,0,0-3.11-2.31,5.73,5.73,0,0,0-6.43,1.55,2.59,2.59,0,0,1-.69.52,1.15,1.15,0,0,1-.84-.06l-3.32-1.25a.93.93,0,0,1-.54-.49.85.85,0,0,1,0-.75,6.67,6.67,0,0,1,2-2.6,10.71,10.71,0,0,1,3.27-1.86,13,13,0,0,1,4.07-.74A11.48,11.48,0,0,1,430.9,51.18Zm-7.12,23.9a1.1,1.1,0,0,1,.65.62,1.13,1.13,0,0,1,0,.9l-1.36,3.61a1.1,1.1,0,0,1-.62.65,1.13,1.13,0,0,1-.9,0l-3.53-1.33a1.1,1.1,0,0,1-.65-.62,1.13,1.13,0,0,1,0-.9l1.36-3.61a1.15,1.15,0,0,1,.62-.66,1.17,1.17,0,0,1,.9,0Z" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M432.63,94.28a1.1,1.1,0,0,1,0,1.57l-2.5,2.64a1.08,1.08,0,0,1-.78.34,1.11,1.11,0,0,1-.8-.3L426,96.08a1.08,1.08,0,0,1-.34-.78,1.07,1.07,0,0,1,.3-.8l2.51-2.63a1.12,1.12,0,0,1,1.57,0Zm15-18.13a13.34,13.34,0,0,1,2.37,3,10.44,10.44,0,0,1,1.27,3.4A8.25,8.25,0,0,1,451.1,86a8,8,0,0,1-4.19,4.91,8.77,8.77,0,0,1-2.46.68,14.86,14.86,0,0,1-2.49.07l-2.36-.13a12.13,12.13,0,0,0-2.11.07,3.4,3.4,0,0,0-1.72.7,1.56,1.56,0,0,1-.81.31.94.94,0,0,1-.77-.27l-2.27-2.16a1.15,1.15,0,0,1-.36-.79.92.92,0,0,1,.32-.79A7.27,7.27,0,0,1,434.32,87a10.23,10.23,0,0,1,2.55-.59,15.29,15.29,0,0,1,2.53,0q1.25.11,2.34.15a9.53,9.53,0,0,0,2-.11,2.61,2.61,0,0,0,1.49-.78,3.13,3.13,0,0,0,.82-2.78,5.62,5.62,0,0,0-1.85-3.15,5.42,5.42,0,0,0-6.16-1,2.3,2.3,0,0,1-.78.19,1,1,0,0,1-.71-.36l-2.42-2.31a.92.92,0,0,1-.3-.61.88.88,0,0,1,.26-.67,6.45,6.45,0,0,1,2.68-1.53,10.2,10.2,0,0,1,3.52-.41,12.17,12.17,0,0,1,3.81.86A10.6,10.6,0,0,1,447.59,76.15Z" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></path> |  | ||||||
|           <g style="opacity: 0.6000000000000001"> |  | ||||||
|             <path |  | ||||||
|               d="M432.63,94.28a1.1,1.1,0,0,1,0,1.57l-2.5,2.64a1.08,1.08,0,0,1-.78.34,1.11,1.11,0,0,1-.8-.3L426,96.08a1.08,1.08,0,0,1-.34-.78,1.07,1.07,0,0,1,.3-.8l2.51-2.63a1.12,1.12,0,0,1,1.57,0Zm15-18.13a13.34,13.34,0,0,1,2.37,3,10.44,10.44,0,0,1,1.27,3.4A8.25,8.25,0,0,1,451.1,86a8,8,0,0,1-4.19,4.91,8.77,8.77,0,0,1-2.46.68,14.86,14.86,0,0,1-2.49.07l-2.36-.13a12.13,12.13,0,0,0-2.11.07,3.4,3.4,0,0,0-1.72.7,1.56,1.56,0,0,1-.81.31.94.94,0,0,1-.77-.27l-2.27-2.16a1.15,1.15,0,0,1-.36-.79.92.92,0,0,1,.32-.79A7.27,7.27,0,0,1,434.32,87a10.23,10.23,0,0,1,2.55-.59,15.29,15.29,0,0,1,2.53,0q1.25.11,2.34.15a9.53,9.53,0,0,0,2-.11,2.61,2.61,0,0,0,1.49-.78,3.13,3.13,0,0,0,.82-2.78,5.62,5.62,0,0,0-1.85-3.15,5.42,5.42,0,0,0-6.16-1,2.3,2.3,0,0,1-.78.19,1,1,0,0,1-.71-.36l-2.42-2.31a.92.92,0,0,1-.3-.61.88.88,0,0,1,.26-.67,6.45,6.45,0,0,1,2.68-1.53,10.2,10.2,0,0,1,3.52-.41,12.17,12.17,0,0,1,3.81.86A10.6,10.6,0,0,1,447.59,76.15Z" |  | ||||||
|               style="fill: #fff" |  | ||||||
|             ></path> |  | ||||||
|           </g> |  | ||||||
|         </g> |  | ||||||
|       </g> |  | ||||||
|     </g> |  | ||||||
|     <g id="freepik--character-1--inject-37"> |  | ||||||
|       <g id="freepik--character--inject-37"> |  | ||||||
|         <g id="freepik--bottom--inject-37"> |  | ||||||
|           <path d="M76.81,345.71c3.17,1.93,7.38,2,11.35.61l3-21-14-3.58Z" style="fill: #ffa8a7"></path> |  | ||||||
|           <path |  | ||||||
|             d="M99.4,365.81c.35.36.14,3-.29,3.59s-2.84,2.59-7.28,2.67c-4.23.07-8-.7-10.36-2.41s-3.49-3.5-3.6-5.92.29-4.71-.75-6.62-2.29-3.51-2.61-4.45a12,12,0,0,1,0-5.17Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M89.13,345.44a11.56,11.56,0,0,0,.38,2.7,24.77,24.77,0,0,0,2.29,5.42,22.77,22.77,0,0,0,1.63,2.57c1.19,1.59,2.71,2.92,4,4.45a8.61,8.61,0,0,1,2.33,5.32c0,3.32-3.65,4.25-6.44,4.59a20.33,20.33,0,0,1-9-.93,8.26,8.26,0,0,1-5.69-6.92c-.11-.93,0-1.86-.06-2.79a12.93,12.93,0,0,0-2.26-5.93,17,17,0,0,1-1.8-3.26c-.76-2.09.06-4.36.72-6.37.57-1.73,1-3.82,1.64-3.62,0,.35,0,1.13,0,1.13.18.39.62.67.73,1.13a8.59,8.59,0,0,0,.43,1.39,3.6,3.6,0,0,0,1.38,1.7c.11-1.25.22-2.5.32-3.74a1.31,1.31,0,0,1,1.43-1.49,23.59,23.59,0,0,1,7.11-.21,1.36,1.36,0,0,1,.93.47,1.44,1.44,0,0,1,.11.85A32.79,32.79,0,0,0,89.13,345.44Z" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M89.13,345.44a11.56,11.56,0,0,0,.38,2.7,24.77,24.77,0,0,0,2.29,5.42,22.77,22.77,0,0,0,1.63,2.57c1.19,1.59,2.71,2.92,4,4.45a8.61,8.61,0,0,1,2.33,5.32c0,3.32-3.65,4.25-6.44,4.59a20.33,20.33,0,0,1-9-.93,8.26,8.26,0,0,1-5.69-6.92c-.11-.93,0-1.86-.06-2.79a12.93,12.93,0,0,0-2.26-5.93,17,17,0,0,1-1.8-3.26c-.76-2.09.06-4.36.72-6.37.57-1.73,1-3.82,1.64-3.62,0,.35,0,1.13,0,1.13.18.39.62.67.73,1.13a8.59,8.59,0,0,0,.43,1.39,3.6,3.6,0,0,0,1.38,1.7c.11-1.25.22-2.5.32-3.74a1.31,1.31,0,0,1,1.43-1.49,23.59,23.59,0,0,1,7.11-.21,1.36,1.36,0,0,1,.93.47,1.44,1.44,0,0,1,.11.85A32.79,32.79,0,0,0,89.13,345.44Z" |  | ||||||
|             style="opacity: 0.2" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M92.21,354.28c-1.18-1-3.94-1.15-5.46-1.07a9.22,9.22,0,0,0-4.37,1.27,1,1,0,0,1-1.25-.17h0a.92.92,0,0,1,.16-1.4,9.45,9.45,0,0,1,4.93-1.53C90,351.32,91,352,91,352S92.64,353.2,92.21,354.28Z" |  | ||||||
|             style="fill: #455a64" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M94.86,357.82c-1.5-1-4.54-1-6.06-.95a8.6,8.6,0,0,0-4.25,1.36,1,1,0,0,1-1.26-.17h0a.91.91,0,0,1,.17-1.4,9.55,9.55,0,0,1,5-1.66c3.73-.07,4.66.75,4.66.75A3.07,3.07,0,0,1,94.86,357.82Z" |  | ||||||
|             style="fill: #455a64" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M84.93,347.75a9.27,9.27,0,0,1,4.65.64c.63.41,1,1.46.57,1.7A8.66,8.66,0,0,0,86,349.3a12.24,12.24,0,0,0-4.07.89c-.33.12-.71.3-1,.46a.87.87,0,0,1-1.2-.44h0a.84.84,0,0,1,.38-1A11.93,11.93,0,0,1,84.93,347.75Z" |  | ||||||
|             style="fill: #455a64" |  | ||||||
|           ></path> |  | ||||||
|           <path d="M116.27,337.82c2.44,6.11,6.26,4.23,12.08.71l.88-20.86-14.81-1.37Z" style="fill: #ffa8a7"></path> |  | ||||||
|           <path |  | ||||||
|             d="M150.69,352.53a4,4,0,0,1-.32,2.93c-.46.84-5.09,3.14-11.14,2.4a25.22,25.22,0,0,1-12.32-5.06c-2.23-1.66-4.62-2.07-7.62-2.41s-5.25-1.38-5.84-2.82.31-3.82.31-3.82Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M127.13,333.3a11.94,11.94,0,0,0,1.61-.46,1.31,1.31,0,0,1,.91,0c.38.17.5.63.59,1a13.86,13.86,0,0,0,.52,2.67,6.54,6.54,0,0,0,1.6,1.88,27.83,27.83,0,0,0,4.69,3.39c1.93,1.18,3.83,2.11,5.82,3.14s4.78,1.77,6.36,3c2.29,1.74,2.38,5.79-.42,7.23-2.41,1.25-8.65,2.41-15,.23-3.47-1.19-7.17-5.16-11.77-5.77-2.93-.38-6.83-.84-8.6-3.17-.64-1-.08-3.9.44-7.29.47-3,.9-7.8,1.87-7.48l.07.92L117,334a10.07,10.07,0,0,0,.82.78,14.84,14.84,0,0,0,1,1.06,3,3,0,0,0,1.69.71,1.56,1.56,0,0,0,.85-.19c.5-.28.57-.94,1-1.35A4.88,4.88,0,0,1,124,333.9a9.61,9.61,0,0,1,2.66-.54A3.65,3.65,0,0,0,127.13,333.3Z" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M127.13,333.3a11.94,11.94,0,0,0,1.61-.46,1.31,1.31,0,0,1,.91,0c.38.17.5.63.59,1a13.86,13.86,0,0,0,.52,2.67,6.54,6.54,0,0,0,1.6,1.88,27.83,27.83,0,0,0,4.69,3.39c1.93,1.18,3.83,2.11,5.82,3.14s4.78,1.77,6.36,3c2.29,1.74,2.38,5.79-.42,7.23-2.41,1.25-8.65,2.41-15,.23-3.47-1.19-7.17-5.16-11.77-5.77-2.93-.38-6.83-.84-8.6-3.17-.64-1-.08-3.9.44-7.29.47-3,.9-7.8,1.87-7.48l.07.92L117,334a10.07,10.07,0,0,0,.82.78,14.84,14.84,0,0,0,1,1.06,3,3,0,0,0,1.69.71,1.56,1.56,0,0,0,.85-.19c.5-.28.57-.94,1-1.35A4.88,4.88,0,0,1,124,333.9a9.61,9.61,0,0,1,2.66-.54A3.65,3.65,0,0,0,127.13,333.3Z" |  | ||||||
|             style="opacity: 0.2" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M134.4,340a2.76,2.76,0,0,0-2.1-1.57c-1.32-.32-3.73.54-5.26,1.67a1.1,1.1,0,0,0,.06,1.82h0a1.12,1.12,0,0,0,1.26-.07A8.32,8.32,0,0,1,134.4,340Z" |  | ||||||
|             style="fill: #455a64" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M138.41,342.57a3.15,3.15,0,0,0-2.5-1.46,9.76,9.76,0,0,0-5.76,1.81,1.07,1.07,0,0,0,0,1.76h0a1.07,1.07,0,0,0,1.22-.08A8.42,8.42,0,0,1,138.41,342.57Z" |  | ||||||
|             style="fill: #455a64" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M142.87,344.91a3.51,3.51,0,0,0-2.6-1.34,9.46,9.46,0,0,0-5.53,1.84,1.07,1.07,0,0,0,.06,1.76h0a1,1,0,0,0,1.21-.07A8,8,0,0,1,142.87,344.91Z" |  | ||||||
|             style="fill: #455a64" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M76.42,289.41c.45-10.07,2.59-15.31,2.89-18.1,0,0,.82-55.4,2.17-72.21l49.6-2.11c.73,18,1.39,66.36,1,72.76-.37,6.13-2.86,59.3-2.86,59.3-7,2.19-14.47-1-14.47-1s-4.16-30.25-4.84-36.92a85.23,85.23,0,0,1,.46-18l-3.17-43.07s-3.83,33.4-5.72,46C99.32,290.47,90,335.14,90,335.14c-6.7,1.67-13.22-1.22-13.22-1.22S75.76,304,76.42,289.41Z" |  | ||||||
|             style="fill: #455a64" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M107.21,230.1l.94-5.94c2.89-.43,10.21-5,14.54-9a34.5,34.5,0,0,1-12.16,11.21l-.15,46.78Z" |  | ||||||
|             style="fill: #37474f" |  | ||||||
|           ></path> |  | ||||||
|         </g> |  | ||||||
|         <g id="freepik--top--inject-37"> |  | ||||||
|           <path |  | ||||||
|             d="M127.55,167.81c-3.37-7.69-9.17-20.64-9.17-20.64l-1.47-21a56.64,56.64,0,0,1,6.41.57c3.12.49,8.07,3.47,10.33,9.09,1.69,4.17,10.47,29.61,10.47,29.61l15.3-8.06c3.92-2.49,5.31-6.62,7.81-9s5-2.74,7.77-4.65,3.86-3.44,4.56-1.53-2.4,4.84-3,5.57-3.61,2.29.23,2.49,11.61-3.54,13.47-4.18,1.7,1.57.73,2.94-1.07,5.39-2.69,7.64c-1.72,2.4-2.65,3.43-6.34,4.86-3.43,1.32-10.54,1.66-14.2,3.77s-12.52,10.12-18.43,14.23c-7.93,5.52-12.39,5.88-15.5,1.48S128.74,170.52,127.55,167.81Z" |  | ||||||
|             style="fill: #ffa8a7" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M114.84,125.72c5.2-.4,11.33-.08,14.72,3,2.71,2.47,3.73,4,6.75,12.54,2,5.73,6.28,18.93,6.28,18.93a27.32,27.32,0,0,0-15,9.19l-9.75-21.91Z" |  | ||||||
|             style="fill: #e0e0e0" |  | ||||||
|           ></path> |  | ||||||
|           <path d="M144.12,165.39a13.09,13.09,0,0,0-6.47,5s.37-4,6-6.39Z" style="fill: #f28f8f"></path> |  | ||||||
|           <path |  | ||||||
|             d="M102.39,124.78a24.57,24.57,0,0,0-7.31.8c-4.57,1.21-12.76,3.51-12.76,3.51-2.6,1.35-3.61,5.85-4.2,8.44-1.88,8.29,3,27,3.75,34.29S81,201.44,81,201.44c5.59,6.48,35.88,10.78,50.63,0,0,0,.64-51.27-.81-58.63-2.2-11.14-5.47-16.43-17-17.1Z" |  | ||||||
|             style="fill: #f5f5f5" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M108.86,97.28l-3.29,1.81a2,2,0,0,1,.77-2.62A1.83,1.83,0,0,1,108.86,97.28Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <path d="M123.17,98.6l-3-2.31a1.82,1.82,0,0,1,2.61-.4A2,2,0,0,1,123.17,98.6Z" style="fill: #263238"></path> |  | ||||||
|           <path |  | ||||||
|             d="M93.74,86.81S90.2,87.3,88.9,90c-1.12,2.32-.72,7.92.79,14a56.45,56.45,0,0,0,3.8,11.46,4.7,4.7,0,0,0,2.7,2.17L96,110.37l-.26-5s3.23-4.42,3.59-8c.46-4.66-.52-6.57-.52-6.57Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M99.45,93.81A13.53,13.53,0,0,0,113,107.29c7.46,0,13.06-6.15,13-13.62s-5.66-13.45-13.13-13.42A13.52,13.52,0,0,0,99.45,93.81Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M96,104.52c-1.22,1.06-2.21-1.67-3.23-2.74s-4.37-2.51-6,1,1.46,8.6,4,9.58A3.65,3.65,0,0,0,95.08,111v16c3.85,6.94,10.64,6.72,14.27,6.33s4.42-4.16,1.77-7.2l0-5a28.29,28.29,0,0,0,6.1.29c3.32-.52,5-3,6-6.63,1.6-5.79,2.25-15.51,0-26.74-3.72-2.88-16.62-2.4-24.43,2.55C99.4,100.67,97.16,103.47,96,104.52Z" |  | ||||||
|             style="fill: #ffa8a7" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M123.88,82.49a24.39,24.39,0,0,0,.67-6.37c0-.84-.21-1.86-1-2.18s-1.57.26-2.25.72c-2.88,1.94-6.46,2.49-9.93,2.68-6,.33-15.17-.06-18.22,6.51-.85,1.82-1,3.74.68,5a11.5,11.5,0,0,0,5,1.86c3,.53,6,1.19,9.08,1.6s6.74.81,9.79-.13c2.57-.79,5.18-1.47,7.09-3.51a9.78,9.78,0,0,0,2.62-6.54c0-.34-.07-.77-.41-.86a.78.78,0,0,0-.49.1Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M111.09,121.24s-7.42-1.47-10-2.84a8.57,8.57,0,0,1-3.6-3.54,11.65,11.65,0,0,0,2,4.18c1.91,2.42,11.58,4.17,11.58,4.17Z" |  | ||||||
|             style="fill: #f28f8f" |  | ||||||
|           ></path> |  | ||||||
|           <path d="M109.6,102.19a1.67,1.67,0,1,1-1.67-1.72A1.7,1.7,0,0,1,109.6,102.19Z" style="fill: #263238"></path> |  | ||||||
|           <path |  | ||||||
|             d="M112,113.74a1.6,1.6,0,0,1-1.56,1.63,1.61,1.61,0,0,1-1.58-1.63,1.59,1.59,0,0,1,1.56-1.62A1.61,1.61,0,0,1,112,113.74Z" |  | ||||||
|             style="fill: #b16668" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M107.5,96.94l-3.44,2.17a2.13,2.13,0,0,1,.66-2.88A2,2,0,0,1,107.5,96.94Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M119.64,94.82l3.62,1.62a1.9,1.9,0,0,1-2.56,1A2.09,2.09,0,0,1,119.64,94.82Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M121.55,101.69a1.61,1.61,0,1,1-1.62-1.67A1.65,1.65,0,0,1,121.55,101.69Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <polygon points="113.37 98.87 113.97 109.99 119.24 108.59 113.37 98.87" style="fill: #f28f8f"></polygon> |  | ||||||
|           <path |  | ||||||
|             d="M20,144.67c1.73.93,8.78,5.89,12.61,6.32,1.62.18,2.06-.08,2-.5-.08-.58-1.11-1.45-1.36-1.92-.43-.82-3-4.22-2-6s1.87-.08,4.25,2.25,4.82,3.14,6.91,5.85,2.79,7,6.25,10.11l13.78,9.41s6.42-29.79,9.24-33.3c3-3.69,15.87,4.35,13.17,16.08S76,185.06,71.72,189.05c-2.76,2.59-8.57.15-15.82-6.3C50.17,177.65,42.32,170,39,167.29s-10.22-4.17-13.39-6c-3.41-2-4.16-3.17-5.47-5.82-1.23-2.49-.68-6.48-1.41-8S18.24,143.74,20,144.67Z" |  | ||||||
|             style="fill: #ffa8a7" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M82.32,129.09c4.42,2.76,4.64,6.78,4.86,11.38a47.57,47.57,0,0,1-2.52,15.84c-1.87,5.79-4.84,16.36-4.84,16.36s-11.54.27-17.48-4.86c0,0,2.71-11.4,4.62-20S71.19,130.06,82.32,129.09Z" |  | ||||||
|             style="fill: #e0e0e0" |  | ||||||
|           ></path> |  | ||||||
|           <path d="M62.39,170.21c3.15,1.75,5,5.51,5.57,7a11,11,0,0,0-5.24-8.53Z" style="fill: #f28f8f"></path> |  | ||||||
|         </g> |  | ||||||
|         <g id="freepik--Outlet--inject-37"> |  | ||||||
|           <polygon |  | ||||||
|             points="182.11 386.34 259.29 430.9 259.29 447.32 182.11 402.76 182.11 386.34" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></polygon> |  | ||||||
|           <polygon |  | ||||||
|             points="182.11 386.34 259.29 430.9 259.29 447.32 182.11 402.76 182.11 386.34" |  | ||||||
|             style="opacity: 0.35000000000000003" |  | ||||||
|           ></polygon> |  | ||||||
|           <polygon |  | ||||||
|             points="336.47 386.34 259.29 430.9 259.29 447.32 336.47 402.76 336.47 386.34" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></polygon> |  | ||||||
|           <polygon |  | ||||||
|             points="336.47 386.34 259.29 430.9 259.29 447.32 336.47 402.76 336.47 386.34" |  | ||||||
|             style="opacity: 0.2" |  | ||||||
|           ></polygon> |  | ||||||
|           <polygon |  | ||||||
|             points="336.47 386.34 259.29 341.79 182.11 386.34 259.29 430.9 336.47 386.34" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></polygon> |  | ||||||
|           <polygon |  | ||||||
|             points="336.47 386.34 259.29 341.79 182.11 386.34 259.29 430.9 336.47 386.34" |  | ||||||
|             style="opacity: 0.15" |  | ||||||
|           ></polygon> |  | ||||||
|           <polygon |  | ||||||
|             points="259.29 430.9 259.29 426.21 190.23 386.34 182.11 386.34 259.29 430.9" |  | ||||||
|             style="opacity: 0.1" |  | ||||||
|           ></polygon> |  | ||||||
|           <polygon |  | ||||||
|             points="259.29 341.79 259.29 346.48 328.35 386.34 336.47 386.34 259.29 341.79" |  | ||||||
|             style="opacity: 0.1" |  | ||||||
|           ></polygon> |  | ||||||
|           <polygon |  | ||||||
|             points="336.47 386.34 328.35 386.34 259.29 426.21 259.29 430.9 336.47 386.34" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></polygon> |  | ||||||
|           <polygon |  | ||||||
|             points="259.29 341.79 259.29 346.48 190.23 386.34 182.11 386.34 259.29 341.79" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></polygon> |  | ||||||
|           <path |  | ||||||
|             d="M259.57,367l33.16,19.14c2.48,1.44,2.48,3.76,0,5.19L268,405.65a9.89,9.89,0,0,1-9,0l-33.16-19.14c-2.48-1.44-2.48-3.76,0-5.19L250.58,367A9.89,9.89,0,0,1,259.57,367Z" |  | ||||||
|             style="fill: #37474f" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M268,405.65l23.91-13.81-32.34-18.67a10,10,0,0,0-9,0L226.66,387,259,405.65A9.89,9.89,0,0,0,268,405.65Z" |  | ||||||
|             style="fill: #455a64" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M239.54,386.37,254.05,378a1.94,1.94,0,0,1,1.74,0l1.78,1c.48.27.48.72,0,1l-14.51,8.37a1.92,1.92,0,0,1-1.73,0l-1.78-1A.53.53,0,0,1,239.54,386.37Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M261.21,398.9l14.51-8.37a1.92,1.92,0,0,1,1.73,0l1.79,1c.48.27.48.72,0,1l-14.51,8.37a1.92,1.92,0,0,1-1.73,0l-1.78-1A.53.53,0,0,1,261.21,398.9Z" |  | ||||||
|             style="fill: #263238" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M225.76,418.77a9.64,9.64,0,0,0-4.38-7.57,3.05,3.05,0,0,0-3.09-.3L216.4,412a3.06,3.06,0,0,0-1.28,2.82,9.69,9.69,0,0,0,4.37,7.58,3.07,3.07,0,0,0,3.1.3l1.88-1.13A3.08,3.08,0,0,0,225.76,418.77Z" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M219.49,412.33a9.64,9.64,0,0,1,4.38,7.57c0,2.79-2,3.92-4.38,2.53a9.69,9.69,0,0,1-4.37-7.58C215.12,412.07,217.08,410.94,219.49,412.33Z" |  | ||||||
|             style="opacity: 0.1" |  | ||||||
|           ></path> |  | ||||||
|         </g> |  | ||||||
|         <g id="freepik--Cable--inject-37"> |  | ||||||
|           <path |  | ||||||
|             d="M168.76,444.27a28.55,28.55,0,0,1-14-3.39l-51.2-29.56c-4.11-2.38-6.38-5.66-6.38-9.24s2.27-6.85,6.38-9.23l59.32-34.25c6.5-3.75,12-13.26,12-20.77V150.1a2,2,0,0,1,4,0V337.83c0,9.06-6.14,19.71-14,24.24l-59.32,34.25c-2.82,1.63-4.38,3.67-4.38,5.76s1.56,4.14,4.38,5.77l51.2,29.56c6.61,3.82,17.37,3.82,24,0l37.75-21.78a2,2,0,1,1,2,3.46l-37.75,21.79A28.5,28.5,0,0,1,168.76,444.27Z" |  | ||||||
|             style="fill: #37474f" |  | ||||||
|           ></path> |  | ||||||
|         </g> |  | ||||||
|         <g id="freepik--exclamation-marks--inject-37"> |  | ||||||
|           <path |  | ||||||
|             d="M78.92,78.31a1,1,0,0,1,.16-.79,1,1,0,0,1,.68-.45l4.86-.94a1,1,0,0,1,.8.16,1.09,1.09,0,0,1,.45.68l.75,3.9a1,1,0,0,1-.17.79,1,1,0,0,1-.67.46l-4.87.93a1,1,0,0,1-.79-.16,1,1,0,0,1-.45-.68ZM74.86,57.25A1.06,1.06,0,0,1,75.7,56l4.87-.94a1,1,0,0,1,.79.17,1,1,0,0,1,.45.67L85,72.57a1,1,0,0,1-.17.79,1,1,0,0,1-.67.45l-4.87.94a1,1,0,0,1-.79-.17,1,1,0,0,1-.45-.67Z" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></path> |  | ||||||
|           <path |  | ||||||
|             d="M70.8,94.63a1.06,1.06,0,0,1,.08-1.5l3.69-3.31a1,1,0,0,1,.77-.26,1,1,0,0,1,.73.34l2.65,3a1.06,1.06,0,0,1-.08,1.5L75,97.67a1,1,0,0,1-.77.26,1,1,0,0,1-.73-.34Zm-14.31-16a1.07,1.07,0,0,1-.27-.77,1,1,0,0,1,.35-.73l3.69-3.31a1,1,0,0,1,.77-.27,1,1,0,0,1,.73.35L73.08,86.56a1,1,0,0,1,.26.77,1,1,0,0,1-.34.73l-3.7,3.31a1,1,0,0,1-.76.26,1,1,0,0,1-.74-.34Z" |  | ||||||
|             style="fill: currentColor" |  | ||||||
|           ></path> |  | ||||||
|           <g style="opacity: 0.6000000000000001"> |  | ||||||
|             <path |  | ||||||
|               d="M70.8,94.63a1.06,1.06,0,0,1,.08-1.5l3.69-3.31a1,1,0,0,1,.77-.26,1,1,0,0,1,.73.34l2.65,3a1.06,1.06,0,0,1-.08,1.5L75,97.67a1,1,0,0,1-.77.26,1,1,0,0,1-.73-.34Zm-14.31-16a1.07,1.07,0,0,1-.27-.77,1,1,0,0,1,.35-.73l3.69-3.31a1,1,0,0,1,.77-.27,1,1,0,0,1,.73.35L73.08,86.56a1,1,0,0,1,.26.77,1,1,0,0,1-.34.73l-3.7,3.31a1,1,0,0,1-.76.26,1,1,0,0,1-.74-.34Z" |  | ||||||
|               style="fill: #fff" |  | ||||||
|             ></path> |  | ||||||
|           </g> |  | ||||||
|         </g> |  | ||||||
|       </g> |  | ||||||
|     </g> |  | ||||||
|     <g id="freepik--error-404--inject-37"> |  | ||||||
|       <g id="freepik--Text--inject-37"> |  | ||||||
|         <path |  | ||||||
|           d="M166,48a7.12,7.12,0,0,1,4.77,1.45,5.24,5.24,0,0,1,1.7,4.23,5.34,5.34,0,0,1-1.7,4.26A7.07,7.07,0,0,1,166,59.44H162v5.65a.66.66,0,0,1-.2.49.67.67,0,0,1-.48.2h-2.05a.68.68,0,0,1-.69-.69V48.71a.68.68,0,0,1,.69-.68ZM162,56.27h3.93a4.11,4.11,0,0,0,2.31-.57,2.19,2.19,0,0,0,.86-2,2.14,2.14,0,0,0-.86-2,4.29,4.29,0,0,0-2.31-.54H162Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M174.76,55.84a3.58,3.58,0,0,1,.47-1.14,4.24,4.24,0,0,1,1-1.14,5.61,5.61,0,0,1,1.65-.88,6.82,6.82,0,0,1,2.27-.34,7.36,7.36,0,0,1,2.33.34,5.13,5.13,0,0,1,1.79,1,4.38,4.38,0,0,1,1.15,1.66,6.13,6.13,0,0,1,.41,2.3v7.45a.67.67,0,0,1-.21.49.66.66,0,0,1-.48.2h-1.92a.68.68,0,0,1-.69-.69v-.83A4.13,4.13,0,0,1,181,65.51a5.48,5.48,0,0,1-2.55.52,6.15,6.15,0,0,1-2-.29,4,4,0,0,1-1.45-.82,3.74,3.74,0,0,1-.9-1.26,3.91,3.91,0,0,1-.31-1.58,3.3,3.3,0,0,1,1.24-2.74A7.21,7.21,0,0,1,178.44,58l4.13-.71a1.62,1.62,0,0,0-.68-1.47,3.22,3.22,0,0,0-1.7-.43,2.24,2.24,0,0,0-1,.18,2.81,2.81,0,0,0-.68.48,1.6,1.6,0,0,1-.42.28,1.16,1.16,0,0,1-.42.08h-2.36a.6.6,0,0,1-.43-.16A.39.39,0,0,1,174.76,55.84ZM179,63a4.55,4.55,0,0,0,1.53-.24,3.46,3.46,0,0,0,1.13-.65,2.68,2.68,0,0,0,.68-.91,2.42,2.42,0,0,0,.23-1V59.9l-3.45.6a3.67,3.67,0,0,0-1.49.52,1.09,1.09,0,0,0-.46.93.83.83,0,0,0,.55.79A3.14,3.14,0,0,0,179,63Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M195,68.31a3.89,3.89,0,0,0,1.09-.16,2.94,2.94,0,0,0,1-.52,3,3,0,0,0,.75-.9,2.75,2.75,0,0,0,.29-1.28v-.94a4.37,4.37,0,0,1-.53.49,4.06,4.06,0,0,1-.8.5,5.54,5.54,0,0,1-1.09.38,6.1,6.1,0,0,1-1.41.15,5.2,5.2,0,0,1-2.29-.49,5.36,5.36,0,0,1-1.75-1.32,6.17,6.17,0,0,1-1.14-1.9,6.9,6.9,0,0,1-.47-2.25c0-.25,0-.55,0-.88s0-.64,0-.89a6.9,6.9,0,0,1,.47-2.25,6.29,6.29,0,0,1,1.14-1.9A5.36,5.36,0,0,1,192,52.83a5.2,5.2,0,0,1,2.29-.49,6.1,6.1,0,0,1,1.41.15,5.54,5.54,0,0,1,1.09.38,4.06,4.06,0,0,1,.8.5,4.37,4.37,0,0,1,.53.49v-.58a.7.7,0,0,1,.68-.69h1.93a.72.72,0,0,1,.69.69V65.17a6,6,0,0,1-1.72,4.63A6.74,6.74,0,0,1,195,71.36a8,8,0,0,1-2.4-.35,6.51,6.51,0,0,1-1.91-.91,4.84,4.84,0,0,1-1.3-1.29,3,3,0,0,1-.53-1.49.57.57,0,0,1,.19-.48.71.71,0,0,1,.49-.2h1.73a.85.85,0,0,1,.61.24c.17.16.31.31.43.44a2.39,2.39,0,0,0,.9.71A4.21,4.21,0,0,0,195,68.31ZM192,58.48a6.74,6.74,0,0,0,0,1.42,3.37,3.37,0,0,0,1,2.37,3.15,3.15,0,0,0,2.1.72,3.07,3.07,0,0,0,2.09-.74,3,3,0,0,0,1-2.1,8.31,8.31,0,0,0,.05-1,8.5,8.5,0,0,0-.05-1,3,3,0,0,0-3.07-2.84,3.15,3.15,0,0,0-2.1.72A3.37,3.37,0,0,0,192,58.48Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M204.27,59.19a8.14,8.14,0,0,1,.44-2.68A6.32,6.32,0,0,1,206,54.33a5.82,5.82,0,0,1,2-1.46,6.58,6.58,0,0,1,5.15,0,6.06,6.06,0,0,1,2,1.39,6.35,6.35,0,0,1,1.26,2.06,7.06,7.06,0,0,1,.44,2.47v1.14a.62.62,0,0,1-.2.48.64.64,0,0,1-.48.21h-8.47a2.11,2.11,0,0,0,.24,1,2.24,2.24,0,0,0,.65.75,2.84,2.84,0,0,0,.94.46,3.93,3.93,0,0,0,1.09.15,4.25,4.25,0,0,0,1.31-.17,3,3,0,0,0,.84-.41,2.34,2.34,0,0,1,.46-.28,1.26,1.26,0,0,1,.48-.08h2a.71.71,0,0,1,.49.2.55.55,0,0,1,.19.49,2.19,2.19,0,0,1-.39.91,4.55,4.55,0,0,1-1.1,1.09,7.19,7.19,0,0,1-1.82.91,7.53,7.53,0,0,1-2.49.38,6.49,6.49,0,0,1-2.58-.49,5.44,5.44,0,0,1-2-1.41A6.19,6.19,0,0,1,204.71,62,8.38,8.38,0,0,1,204.27,59.19Zm6.22-3.81a3.19,3.19,0,0,0-1.26.22,2.56,2.56,0,0,0-.87.56,2.38,2.38,0,0,0-.55.76,2.59,2.59,0,0,0-.24.8h5.73a4.2,4.2,0,0,0-.19-.8,2,2,0,0,0-.46-.76,2.29,2.29,0,0,0-.83-.56A3.39,3.39,0,0,0,210.49,55.38Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M237.64,65.09a.68.68,0,0,1-.68.69H235a.66.66,0,0,1-.48-.2.67.67,0,0,1-.21-.49V58.65a3.82,3.82,0,0,0-.71-2.43,2.58,2.58,0,0,0-2.18-.91,2.61,2.61,0,0,0-2.11.91,3.62,3.62,0,0,0-.78,2.43v6.44a.66.66,0,0,1-.2.49.67.67,0,0,1-.48.2H226a.67.67,0,0,1-.48-.2.66.66,0,0,1-.2-.49V53.28a.62.62,0,0,1,.2-.48.64.64,0,0,1,.48-.21h1.93a.64.64,0,0,1,.48.21.62.62,0,0,1,.2.48v.58a5.77,5.77,0,0,1,1.55-1.09,4.71,4.71,0,0,1,2.1-.43,6.14,6.14,0,0,1,2.59.48,4.44,4.44,0,0,1,1.67,1.29,4.87,4.87,0,0,1,.9,1.89,9.35,9.35,0,0,1,.27,2.27Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M246.82,52.34a6.94,6.94,0,0,1,2.52.43A6.19,6.19,0,0,1,251.29,54a5.94,5.94,0,0,1,1.32,1.78,5.72,5.72,0,0,1,.57,2.18,4.51,4.51,0,0,1,0,.58v1.41a4.45,4.45,0,0,1,0,.57,6.4,6.4,0,0,1-.58,2.18,5.55,5.55,0,0,1-1.31,1.76,6.16,6.16,0,0,1-1.95,1.18,7.6,7.6,0,0,1-5,0,6.1,6.1,0,0,1-2-1.18,5.52,5.52,0,0,1-1.3-1.76,6.41,6.41,0,0,1-.59-2.18q0-.23,0-.57c0-.23,0-.46,0-.7s0-.47,0-.71,0-.43,0-.58a6.11,6.11,0,0,1,.57-2.18A5.94,5.94,0,0,1,242.34,54a6.13,6.13,0,0,1,2-1.19A6.94,6.94,0,0,1,246.82,52.34Zm3.07,5.7a3.38,3.38,0,0,0-.37-1.3,2.52,2.52,0,0,0-.72-.82,2.41,2.41,0,0,0-.94-.42,4.55,4.55,0,0,0-1-.12,4.48,4.48,0,0,0-1,.12,2.41,2.41,0,0,0-.94.42,2.31,2.31,0,0,0-.72.82,3.21,3.21,0,0,0-.37,1.3c0,.14,0,.31,0,.51s0,.42,0,.64,0,.43,0,.64a4.81,4.81,0,0,0,0,.5,3.17,3.17,0,0,0,.37,1.3,2.44,2.44,0,0,0,.72.83,2.74,2.74,0,0,0,.94.42,5.1,5.1,0,0,0,1,.11,5.17,5.17,0,0,0,1-.11,2.74,2.74,0,0,0,.94-.42,2.67,2.67,0,0,0,.72-.83,3.33,3.33,0,0,0,.37-1.3c0-.12,0-.29,0-.5V58.55C249.91,58.35,249.9,58.18,249.89,58Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M260.38,61a1.83,1.83,0,0,0,.42,1.26,2.06,2.06,0,0,0,1.56.47h1.55a.65.65,0,0,1,.48.2.66.66,0,0,1,.2.48v1.67a.68.68,0,0,1-.68.69H262a5.27,5.27,0,0,1-3.66-1.16,4.47,4.47,0,0,1-1.28-3.53V55.64h-1.68a.7.7,0,0,1-.68-.69V53.28a.7.7,0,0,1,.68-.69h1.68V48.46a.68.68,0,0,1,.68-.68h1.93a.65.65,0,0,1,.48.2.66.66,0,0,1,.2.48v4.13h3.27a.72.72,0,0,1,.69.69V55a.72.72,0,0,1-.69.69h-3.27Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M277,52.59h3.52a.67.67,0,0,1,.49.21.66.66,0,0,1,.2.48V55a.66.66,0,0,1-.2.48.67.67,0,0,1-.49.21H277v9.45a.68.68,0,0,1-.68.69h-1.93a.66.66,0,0,1-.48-.2.67.67,0,0,1-.21-.49V55.64H272a.63.63,0,0,1-.48-.21.62.62,0,0,1-.2-.48V53.28a.62.62,0,0,1,.2-.48.63.63,0,0,1,.48-.21h1.67V51.45a5.24,5.24,0,0,1,.36-2.06,3.41,3.41,0,0,1,1-1.39,4.2,4.2,0,0,1,1.59-.76,8.68,8.68,0,0,1,2.06-.22h2.06a.65.65,0,0,1,.48.2.66.66,0,0,1,.2.48v1.67a.68.68,0,0,1-.68.69H279a2.58,2.58,0,0,0-1.47.34,1.47,1.47,0,0,0-.51,1.31Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M289,52.34a6.94,6.94,0,0,1,2.52.43A6.19,6.19,0,0,1,293.43,54a5.94,5.94,0,0,1,1.32,1.78,5.72,5.72,0,0,1,.57,2.18,4.51,4.51,0,0,1,0,.58v1.41a4.45,4.45,0,0,1,0,.57,6.4,6.4,0,0,1-.58,2.18,5.55,5.55,0,0,1-1.31,1.76,6.16,6.16,0,0,1-1.95,1.18A6.94,6.94,0,0,1,289,66a7,7,0,0,1-2.53-.43,6.16,6.16,0,0,1-1.95-1.18,5.52,5.52,0,0,1-1.3-1.76,6.19,6.19,0,0,1-.59-2.18c0-.15,0-.34,0-.57s0-.46,0-.7,0-.47,0-.71,0-.43,0-.58a5.72,5.72,0,0,1,.57-2.18A5.94,5.94,0,0,1,284.48,54a6.19,6.19,0,0,1,1.95-1.19A7,7,0,0,1,289,52.34ZM292,58a3.38,3.38,0,0,0-.36-1.3,2.43,2.43,0,0,0-.73-.82,2.37,2.37,0,0,0-.93-.42,4.55,4.55,0,0,0-1-.12,4.42,4.42,0,0,0-1,.12,2.41,2.41,0,0,0-.94.42,2.31,2.31,0,0,0-.72.82,3.21,3.21,0,0,0-.37,1.3c0,.14,0,.31,0,.51s0,.42,0,.64,0,.43,0,.64a4.81,4.81,0,0,0,0,.5,3.17,3.17,0,0,0,.37,1.3,2.44,2.44,0,0,0,.72.83,2.74,2.74,0,0,0,.94.42,5,5,0,0,0,1,.11,5.17,5.17,0,0,0,1-.11,2.7,2.7,0,0,0,.93-.42,2.57,2.57,0,0,0,.73-.83,3.33,3.33,0,0,0,.36-1.3,3.25,3.25,0,0,0,0-.5V58.55A3.68,3.68,0,0,0,292,58Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M298.11,53.28a.7.7,0,0,1,.68-.69h1.93a.72.72,0,0,1,.69.69v6.44a4.14,4.14,0,0,0,.64,2.43,2.42,2.42,0,0,0,2.12.92,2.44,2.44,0,0,0,2.05-.92,3.82,3.82,0,0,0,.71-2.43V53.28a.72.72,0,0,1,.69-.69h1.92a.67.67,0,0,1,.49.21.66.66,0,0,1,.2.48V65.09a.68.68,0,0,1-.69.69h-1.92a.66.66,0,0,1-.48-.2.67.67,0,0,1-.21-.49v-.58a6.22,6.22,0,0,1-1.44,1,4.23,4.23,0,0,1-2.08.47,6,6,0,0,1-2.56-.48,4.19,4.19,0,0,1-1.62-1.29,5,5,0,0,1-.87-1.89,9.87,9.87,0,0,1-.25-2.27Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M326.1,65.09a.68.68,0,0,1-.68.69h-1.93a.66.66,0,0,1-.48-.2.67.67,0,0,1-.21-.49V58.65a3.82,3.82,0,0,0-.71-2.43,2.58,2.58,0,0,0-2.18-.91,2.61,2.61,0,0,0-2.11.91,3.62,3.62,0,0,0-.78,2.43v6.44a.66.66,0,0,1-.2.49.67.67,0,0,1-.48.2h-1.93a.67.67,0,0,1-.48-.2.66.66,0,0,1-.2-.49V53.28a.62.62,0,0,1,.2-.48.64.64,0,0,1,.48-.21h1.93a.64.64,0,0,1,.48.21.62.62,0,0,1,.2.48v.58a5.77,5.77,0,0,1,1.55-1.09,4.71,4.71,0,0,1,2.1-.43,6.14,6.14,0,0,1,2.59.48,4.44,4.44,0,0,1,1.67,1.29,4.87,4.87,0,0,1,.9,1.89,9.35,9.35,0,0,1,.27,2.27Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M334.54,52.34a6,6,0,0,1,1.41.15,5.54,5.54,0,0,1,1.09.38,4.06,4.06,0,0,1,.8.5,3.73,3.73,0,0,1,.53.49v-5.4a.68.68,0,0,1,.69-.68H341a.62.62,0,0,1,.48.2.63.63,0,0,1,.21.48V65.09a.67.67,0,0,1-.21.49.66.66,0,0,1-.48.2h-1.92a.68.68,0,0,1-.69-.69v-.58a3.73,3.73,0,0,1-.53.49,4.06,4.06,0,0,1-.8.5,5.54,5.54,0,0,1-1.09.38,6,6,0,0,1-1.41.15,5.2,5.2,0,0,1-2.29-.49,5.36,5.36,0,0,1-1.75-1.32,6.37,6.37,0,0,1-1.14-1.9,6.9,6.9,0,0,1-.47-2.25c0-.25,0-.55,0-.88s0-.64,0-.89a6.9,6.9,0,0,1,.47-2.25,6.49,6.49,0,0,1,1.14-1.9,5.36,5.36,0,0,1,1.75-1.32A5.2,5.2,0,0,1,334.54,52.34Zm-2.36,6.14a6.74,6.74,0,0,0,0,1.42,3.41,3.41,0,0,0,1,2.37,3.17,3.17,0,0,0,2.1.72,3.11,3.11,0,0,0,2.1-.74,3,3,0,0,0,1-2.1,8.31,8.31,0,0,0,.05-1,8.5,8.5,0,0,0-.05-1,3,3,0,0,0-3.07-2.84,3.17,3.17,0,0,0-2.1.72A3.41,3.41,0,0,0,332.18,58.48Z" |  | ||||||
|           style="fill: #455a64" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M196.44,90.76a.59.59,0,0,1,.44.19.6.6,0,0,1,.18.44v2.46a.6.6,0,0,1-.18.44.59.59,0,0,1-.44.19h-11a.58.58,0,0,1-.44-.19.61.61,0,0,1-.19-.44v-15a.61.61,0,0,1,.19-.44.58.58,0,0,1,.44-.19h10.83a.65.65,0,0,1,.63.63V81.3a.61.61,0,0,1-.19.45.6.6,0,0,1-.44.18h-7.16v2.51h6.65a.58.58,0,0,1,.44.19.61.61,0,0,1,.19.44v2.46a.61.61,0,0,1-.19.44.58.58,0,0,1-.44.19h-6.65v2.6Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M206.66,78.21a10.39,10.39,0,0,1,2.74.33,6,6,0,0,1,2.06,1,4.3,4.3,0,0,1,1.3,1.67,5.73,5.73,0,0,1,.45,2.35,5.37,5.37,0,0,1-.72,2.9,4.61,4.61,0,0,1-2,1.75l2.88,5.53a.56.56,0,0,1,.07.26.51.51,0,0,1-.51.51h-3.16a.87.87,0,0,1-.66-.21,2,2,0,0,1-.32-.42l-2.58-5H204v5a.6.6,0,0,1-.18.44.59.59,0,0,1-.44.19h-3a.59.59,0,0,1-.44-.19.6.6,0,0,1-.18-.44v-15a.6.6,0,0,1,.18-.44.59.59,0,0,1,.44-.19Zm-2.63,7h2.63a3.18,3.18,0,0,0,1.62-.37,1.43,1.43,0,0,0,.63-1.35,1.41,1.41,0,0,0-.63-1.34,3.18,3.18,0,0,0-1.62-.37H204Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M222.81,78.21a10.39,10.39,0,0,1,2.74.33,6,6,0,0,1,2.06,1,4.21,4.21,0,0,1,1.3,1.67,5.73,5.73,0,0,1,.45,2.35,5.37,5.37,0,0,1-.72,2.9,4.61,4.61,0,0,1-2,1.75l2.88,5.53a.56.56,0,0,1,.07.26.51.51,0,0,1-.51.51h-3.16a.87.87,0,0,1-.66-.21,2,2,0,0,1-.32-.42l-2.58-5h-2.13v5a.61.61,0,0,1-.19.44.59.59,0,0,1-.44.19h-3.05a.59.59,0,0,1-.44-.19.6.6,0,0,1-.18-.44v-15a.6.6,0,0,1,.18-.44.59.59,0,0,1,.44-.19Zm-2.62,7h2.62a3.18,3.18,0,0,0,1.62-.37,1.43,1.43,0,0,0,.63-1.35,1.41,1.41,0,0,0-.63-1.34,3.18,3.18,0,0,0-1.62-.37h-2.62Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M231.5,84.28a7.14,7.14,0,0,1,.57-2.45,5.8,5.8,0,0,1,1.42-2,6.62,6.62,0,0,1,2.23-1.35,9.4,9.4,0,0,1,6.05,0A6.72,6.72,0,0,1,244,79.83a5.77,5.77,0,0,1,1.41,2,6.71,6.71,0,0,1,.57,2.45c0,.66.05,1.36.05,2.09s0,1.41-.05,2a6.81,6.81,0,0,1-.57,2.46,6.1,6.1,0,0,1-1.41,2,6.54,6.54,0,0,1-2.25,1.34,9.58,9.58,0,0,1-6.05,0,6.45,6.45,0,0,1-2.23-1.34,6.13,6.13,0,0,1-1.42-2,7.25,7.25,0,0,1-.57-2.46c0-.63,0-1.31,0-2S231.47,84.94,231.5,84.28Zm10.2,4c0-.28,0-.59.05-.93s0-.69,0-1.05,0-.7,0-1,0-.63-.05-.9a3.57,3.57,0,0,0-.24-1.06,2.47,2.47,0,0,0-.56-.85,2.62,2.62,0,0,0-.89-.57,3.47,3.47,0,0,0-1.26-.21,3.37,3.37,0,0,0-1.25.21,2.57,2.57,0,0,0-.9.57,2.62,2.62,0,0,0-.56.85,3.57,3.57,0,0,0-.24,1.06q0,.4-.06.9c0,.33,0,.68,0,1s0,.71,0,1.05,0,.65.06.93a3.13,3.13,0,0,0,.8,1.93,2.79,2.79,0,0,0,2.15.76,2.75,2.75,0,0,0,2.14-.76A3.26,3.26,0,0,0,241.7,88.3Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M255.65,78.21a10.45,10.45,0,0,1,2.74.33,5.91,5.91,0,0,1,2.05,1,4.32,4.32,0,0,1,1.31,1.67,5.73,5.73,0,0,1,.45,2.35,5.37,5.37,0,0,1-.72,2.9,4.58,4.58,0,0,1-2.05,1.75l2.88,5.53a.59.59,0,0,1,.08.26.5.5,0,0,1-.16.36.49.49,0,0,1-.36.15h-3.16a.87.87,0,0,1-.66-.21,1.89,1.89,0,0,1-.31-.42l-2.58-5H253v5a.65.65,0,0,1-.63.63h-3a.65.65,0,0,1-.63-.63v-15a.65.65,0,0,1,.63-.63Zm-2.63,7h2.63a3.14,3.14,0,0,0,1.61-.37,1.41,1.41,0,0,0,.64-1.35,1.4,1.4,0,0,0-.64-1.34,3.14,3.14,0,0,0-1.61-.37H253Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M277.47,94.48a.61.61,0,0,1-.45-.19.6.6,0,0,1-.18-.44V91.48h-7.32a.6.6,0,0,1-.44-.18.61.61,0,0,1-.19-.45V88.39a1.63,1.63,0,0,1,.3-1l6.95-8.76a1.38,1.38,0,0,1,.38-.34,1.26,1.26,0,0,1,.48-.08h3.51a.58.58,0,0,1,.44.19.61.61,0,0,1,.19.44v8.92h2a.63.63,0,0,1,.44.19.6.6,0,0,1,.18.44v2.46a.64.64,0,0,1-.18.45.62.62,0,0,1-.44.18h-2v2.37a.61.61,0,0,1-.19.44.58.58,0,0,1-.44.19ZM277,87.76V83.49l-3.39,4.27Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M292.5,78a8,8,0,0,1,3,.51,6,6,0,0,1,2.08,1.37,5.62,5.62,0,0,1,1.23,2,8.82,8.82,0,0,1,.48,2.41c0,.66,0,1.36,0,2.09s0,1.41,0,2a8.82,8.82,0,0,1-.48,2.41,5.46,5.46,0,0,1-1.23,2,6,6,0,0,1-2.08,1.37,9.08,9.08,0,0,1-6,0,6,6,0,0,1-2.08-1.37,5.46,5.46,0,0,1-1.23-2,8.82,8.82,0,0,1-.48-2.41c0-.63,0-1.31,0-2s0-1.43,0-2.09a8.82,8.82,0,0,1,.48-2.41,5.62,5.62,0,0,1,1.23-2,6,6,0,0,1,2.08-1.37A8,8,0,0,1,292.5,78ZM295,88.3c.06-1.32.06-2.62,0-3.91a5.58,5.58,0,0,0-.18-1.06,2.31,2.31,0,0,0-.4-.85,2,2,0,0,0-.75-.57,2.8,2.8,0,0,0-1.16-.21,2.83,2.83,0,0,0-1.16.21,2,2,0,0,0-.75.57,2.49,2.49,0,0,0-.41.85,4.35,4.35,0,0,0-.17,1.06,36.43,36.43,0,0,0,0,3.91,5.75,5.75,0,0,0,.15,1.07,2.42,2.42,0,0,0,.42.85,2,2,0,0,0,.76.56,2.83,2.83,0,0,0,1.16.21,2.8,2.8,0,0,0,1.16-.21,2,2,0,0,0,.76-.56,2.42,2.42,0,0,0,.42-.85A5.75,5.75,0,0,0,295,88.3Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|         <path |  | ||||||
|           d="M309.79,94.48a.65.65,0,0,1-.63-.63V91.48h-7.32a.6.6,0,0,1-.44-.18.65.65,0,0,1-.19-.45V88.39a1.57,1.57,0,0,1,.31-1l6.94-8.76a1.27,1.27,0,0,1,.39-.34,1.17,1.17,0,0,1,.47-.08h3.51a.65.65,0,0,1,.63.63v8.92h2a.65.65,0,0,1,.63.63v2.46a.65.65,0,0,1-.19.45.6.6,0,0,1-.44.18h-2v2.37a.65.65,0,0,1-.63.63Zm-.51-6.72V83.49l-3.39,4.27Z" |  | ||||||
|           style="fill: currentColor" |  | ||||||
|         ></path> |  | ||||||
|       </g> |  | ||||||
|     </g> |  | ||||||
|   </svg> |  | ||||||
| </template> |  | ||||||
|  |  | ||||||
| <script lang="ts" setup></script> |  | ||||||
| <style scoped></style> |  | ||||||