Commit 78fb99ad authored by xinzhedeai's avatar xinzhedeai

crm 初始化 推广信息管理 自动分配是否是内蒙字段添加

parents
Pipeline #396 canceled with stages
# https://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
insert_final_newline = false
trim_trailing_whitespace = false
ENV = 'production'
# 如果使用 Nginx 代理后端接口,那么此处需要改为 '/',文件查看 Docker 部署篇,Nginx 配置
# 接口地址,注意协议,如果你没有配置 ssl,需要将 https 改为 http
VUE_APP_BASE_API = 'http://oa.gemho.cn:8001'
#VUE_APP_BASE_API = 'http://192.168.3.254:8001'
# 如果接口是 http 形式, wss 需要改为 ws
#VUE_APP_WS_API = 'wss://el-admin.vip'
build/*.js
src/assets
public
dist
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint',
sourceType: 'module'
},
env: {
browser: true,
node: true,
es6: true,
},
extends: ['plugin:vue/recommended', 'eslint:recommended'],
// add your custom rules here
//it is base on https://github.com/vuejs/eslint-config-vue
rules: {
"vue/max-attributes-per-line": [2, {
"singleline": 10,
"multiline": {
"max": 1,
"allowFirstLine": false
}
}],
"vue/singleline-html-element-content-newline": "off",
"vue/multiline-html-element-content-newline":"off",
"vue/name-property-casing": ["error", "PascalCase"],
"vue/no-v-html": "off",
'accessor-pairs': 2,
'arrow-spacing': [2, {
'before': true,
'after': true
}],
'block-spacing': [2, 'always'],
'brace-style': [2, '1tbs', {
'allowSingleLine': true
}],
'camelcase': [0, {
'properties': 'always'
}],
'comma-dangle': [2, 'never'],
'comma-spacing': [2, {
'before': false,
'after': true
}],
'comma-style': [2, 'last'],
'constructor-super': 2,
'curly': [2, 'multi-line'],
'dot-location': [2, 'property'],
'eol-last': 2,
'eqeqeq': ["error", "always", {"null": "ignore"}],
'generator-star-spacing': [2, {
'before': true,
'after': true
}],
'handle-callback-err': [2, '^(err|error)$'],
'indent': [2, 2, {
'SwitchCase': 1
}],
'jsx-quotes': [2, 'prefer-single'],
'key-spacing': [2, {
'beforeColon': false,
'afterColon': true
}],
'keyword-spacing': [2, {
'before': true,
'after': true
}],
'new-cap': [2, {
'newIsCap': true,
'capIsNew': false
}],
'new-parens': 2,
'no-array-constructor': 2,
'no-caller': 2,
'no-console': 'off',
'no-class-assign': 2,
'no-cond-assign': 2,
'no-const-assign': 2,
'no-control-regex': 0,
'no-delete-var': 2,
'no-dupe-args': 2,
'no-dupe-class-members': 2,
'no-dupe-keys': 2,
'no-duplicate-case': 2,
'no-empty-character-class': 2,
'no-empty-pattern': 2,
'no-eval': 2,
'no-ex-assign': 2,
'no-extend-native': 2,
'no-extra-bind': 2,
'no-extra-boolean-cast': 2,
'no-extra-parens': [2, 'functions'],
'no-fallthrough': 2,
'no-floating-decimal': 2,
'no-func-assign': 2,
'no-implied-eval': 2,
'no-inner-declarations': [2, 'functions'],
'no-invalid-regexp': 2,
'no-irregular-whitespace': 2,
'no-iterator': 2,
'no-label-var': 2,
'no-labels': [2, {
'allowLoop': false,
'allowSwitch': false
}],
'no-lone-blocks': 2,
'no-mixed-spaces-and-tabs': 2,
'no-multi-spaces': 2,
'no-multi-str': 2,
'no-multiple-empty-lines': [2, {
'max': 1
}],
'no-native-reassign': 2,
'no-negated-in-lhs': 2,
'no-new-object': 2,
'no-new-require': 2,
'no-new-symbol': 2,
'no-new-wrappers': 2,
'no-obj-calls': 2,
'no-octal': 2,
'no-octal-escape': 2,
'no-path-concat': 2,
'no-proto': 2,
'no-redeclare': 2,
'no-regex-spaces': 2,
'no-return-assign': [2, 'except-parens'],
'no-self-assign': 2,
'no-self-compare': 2,
'no-sequences': 2,
'no-shadow-restricted-names': 2,
'no-spaced-func': 2,
'no-sparse-arrays': 2,
'no-this-before-super': 2,
'no-throw-literal': 2,
'no-trailing-spaces': 2,
'no-undef': 2,
'no-undef-init': 2,
'no-unexpected-multiline': 2,
'no-unmodified-loop-condition': 2,
'no-unneeded-ternary': [2, {
'defaultAssignment': false
}],
'no-unreachable': 2,
'no-unsafe-finally': 2,
'no-unused-vars': [2, {
'vars': 'all',
'args': 'none'
}],
'no-useless-call': 2,
'no-useless-computed-key': 2,
'no-useless-constructor': 2,
'no-useless-escape': 0,
'no-whitespace-before-property': 2,
'no-with': 2,
'one-var': [2, {
'initialized': 'never'
}],
'operator-linebreak': [2, 'after', {
'overrides': {
'?': 'before',
':': 'before'
}
}],
'padded-blocks': [2, 'never'],
'quotes': [2, 'single', {
'avoidEscape': true,
'allowTemplateLiterals': true
}],
'semi': [2, 'never'],
'semi-spacing': [2, {
'before': false,
'after': true
}],
'space-before-blocks': [2, 'always'],
'space-before-function-paren': [2, 'never'],
'space-in-parens': [2, 'never'],
'space-infix-ops': 2,
'space-unary-ops': [2, {
'words': true,
'nonwords': false
}],
'spaced-comment': [2, 'always', {
'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
}],
'template-curly-spacing': [2, 'never'],
'use-isnan': 2,
'valid-typeof': 2,
'wrap-iife': [2, 'any'],
'yield-star-spacing': [2, 'both'],
'yoda': [2, 'never'],
'prefer-const': 2,
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'object-curly-spacing': [2, 'always', {
objectsInObjects: false
}],
'array-bracket-spacing': [2, 'never']
}
}
.DS_Store
node_modules/
dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
**/*.log
tests/**/coverage/
tests/e2e/reports
selenium-debug.log
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.local
*.env.development
*dist.rar
package-lock.json
yarn.lock
language: node_js
node_js: 10
script: npm run test
notifications:
email: false
This diff is collapsed.
# ELADMIN-WEB
ELADMIN 前端源码
#### 项目源码
| | 后端源码 | 前端源码 |
|--- |--- | --- |
| github | https://github.com/elunez/eladmin | https://github.com/elunez/eladmin-web |
| 码云 | https://gitee.com/elunez/eladmin | https://gitee.com/elunez/eladmin-web |
#### 开发文档
[https://el-admin.vip](https://el-admin.vip)
#### 体验地址
[https://el-admin.vip/demo](https://el-admin.vip/demo)
#### 前端模板
初始模板基于: [https://github.com/PanJiaChen/vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
模板文档: [https://panjiachen.github.io/vue-element-admin-site/zh/guide/](https://panjiachen.github.io/vue-element-admin-site/zh/guide/)
#### Build Setup
``` bash
# 配置镜像加速
https://www.ydyno.com/archives/1219.html
# 安装依赖
npm install
# 启动服务 localhost:8013
npm run dev
# 构建生产环境
npm run build:prod
```
#### 常见问题
1、linux 系统在安装依赖的时候会出现 node-sass 无法安装的问题
解决方案:
```
1. 单独安装:npm install --unsafe-perm node-sass
2. 直接使用:npm install --unsafe-perm
```
2、加速node-sass安装
https://www.ydyno.com/archives/1219.html
#### 特别鸣谢
- 感谢 [JetBrains](https://www.jetbrains.com/) 提供的非商业开源软件开发授权
- 感谢 [PanJiaChen](https://github.com/PanJiaChen/vue-element-admin) 大佬提供的前端模板
- 感谢 [Moxun](https://github.com/moxun1639) 大佬提供的前端 Crud 通用组件
- 感谢 [zhy6599](https://gitee.com/zhy6599) 大佬提供的后端运维管理相关功能
- 感谢 [j.yao.SUSE](https://github.com/everhopingandwaiting) 大佬提供的匿名接口与Redis限流等功能
- 感谢 [d15801543974](https://github.com/d15801543974) 大佬提供的基于注解的通用查询方式
#### 反馈交流
- QQ交流群:一群:891137268、二群:947578238、三群:659622532
\ No newline at end of file
const plugins = ['@vue/babel-plugin-transform-vue-jsx']
// 生产环境移除console
if (process.env.NODE_ENV === 'production') {
plugins.push('transform-remove-console')
}
module.exports = {
plugins: plugins,
presets: [
'@vue/app'
]
}
module.exports = {
moduleFileExtensions: ['js', 'jsx', 'json', 'vue'],
transform: {
'^.+\\.vue$': 'vue-jest',
'.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$':
'jest-transform-stub',
'^.+\\.jsx?$': 'babel-jest'
},
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1'
},
snapshotSerializers: ['jest-serializer-vue'],
testMatch: [
'**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'
],
collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'],
coverageDirectory: '<rootDir>/tests/unit/coverage',
// 'collectCoverage': true,
'coverageReporters': [
'lcov',
'text-summary'
],
testURL: 'http://localhost/'
}
{
"name": "eladmin-web",
"version": "2.6.0",
"description": "EL-ADMIN 前端源码",
"author": "Zheng Jie",
"license": "Apache-2.0",
"scripts": {
"dev": "vue-cli-service serve",
"build": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",
"lint": "eslint --ext .js,.vue src",
"test:unit": "jest --clearCache && vue-cli-service test:unit",
"svgo": "svgo -f src/assets/icons/svg --config=src/assets/icons/svgo.yml",
"new": "plop"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"src/**/*.{js,vue}": [
"eslint --fix",
"git add"
]
},
"repository": {
"type": "git",
"url": "https://github.com/elunez/eladmin-web.git"
},
"bugs": {
"url": "https://github.com/elunez/eladmin/issues"
},
"dependencies": {
"@riophae/vue-treeselect": "^0.4.0",
"axios": "^0.21.1",
"clipboard": "2.0.4",
"codemirror": "^5.49.2",
"connect": "3.6.6",
"core-js": "^2.6.12",
"echarts": "^4.9.0",
"echarts-gl": "^1.1.1",
"echarts-wordcloud": "^1.1.3",
"element-ui": "^2.15.6",
"file-saver": "1.3.8",
"fuse.js": "3.4.4",
"js-beautify": "^1.10.2",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
"jszip": "^3.7.1",
"mavon-editor": "^2.9.1",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
"path-to-regexp": "2.4.0",
"qs": "^6.10.1",
"screenfull": "4.2.0",
"sortablejs": "1.8.4",
"vue": "^2.6.14",
"vue-count-to": "^1.0.13",
"vue-cropper": "0.4.9",
"vue-echarts": "^5.0.0-beta.0",
"vue-highlightjs": "^1.3.3",
"vue-image-crop-upload": "^2.5.0",
"vue-router": "3.0.2",
"vue-splitpane": "1.0.4",
"vuedraggable": "2.20.0",
"vuex": "3.1.0",
"wangeditor": "^4.7.11",
"xlsx": "^0.17.4"
},
"devDependencies": {
"@babel/parser": "^7.7.4",
"@babel/register": "7.0.0",
"@vue/babel-plugin-transform-vue-jsx": "^1.2.1",
"@vue/cli-plugin-babel": "3.5.3",
"@vue/cli-plugin-eslint": "^3.9.1",
"@vue/cli-plugin-unit-jest": "3.5.3",
"@vue/cli-service": "3.5.3",
"@vue/test-utils": "1.0.0-beta.29",
"autoprefixer": "^9.5.1",
"babel-core": "7.0.0-bridge.0",
"babel-eslint": "10.0.1",
"babel-jest": "23.6.0",
"babel-plugin-dynamic-import-node": "2.3.0",
"babel-plugin-transform-remove-console": "^6.9.4",
"chalk": "2.4.2",
"chokidar": "2.1.5",
"connect": "3.6.6",
"eslint": "5.15.3",
"eslint-plugin-vue": "5.2.2",
"html-webpack-plugin": "3.2.0",
"http-proxy-middleware": "^0.19.1",
"husky": "1.3.1",
"lint-staged": "8.1.5",
"plop": "2.3.0",
"sass": "1.32.13",
"sass-loader": "10.2.0",
"script-ext-html-webpack-plugin": "2.1.3",
"script-loader": "0.7.2",
"serve-static": "^1.13.2",
"svg-sprite-loader": "4.1.3",
"svgo": "1.2.0",
"tasksfile": "^5.1.1",
"vue-template-compiler": "2.6.14"
},
"engines": {
"node": ">=8.9",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions"
]
}
const viewGenerator = require('./plop-templates/view/prompt')
const componentGenerator = require('./plop-templates/component/prompt')
module.exports = function(plop) {
plop.setGenerator('view', viewGenerator)
plop.setGenerator('component', componentGenerator)
}
\ No newline at end of file
module.exports = {
plugins: {
autoprefixer: {}
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= webpackConfig.name %></title>
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
<script src="/static/js/qf_web.min.js"></script>
<script src="/static/js/qf_web_ui.min.js"></script>
</html>
<template>
<div id="app">
<router-view />
</div>
</template>
<script>
export default {
name: 'App'
}
</script>
// 计算周
weekChange(val) {
let weekOfDay = moment(val).format("E");
let lastMonday = moment(val).subtract(weekOfDay - 1, "days").format("YYYY-MM-DD");//周一日期
let lastTuesday = moment(val).subtract(weekOfDay - 2, "days").format("YYYY-MM-DD");//周二日期
let lastWedday = moment(val).subtract(weekOfDay - 3, "days").format("YYYY-MM-DD");//周三日期
let lastThurday = moment(val).subtract(weekOfDay - 4, "days").format("YYYY-MM-DD");//周四日期
let lastFriday = moment(val).subtract(weekOfDay - 5, "days").format("YYYY-MM-DD");//周五日期
let year = moment(val).utcOffset("+08:00").format('yyyy') //年
let week = moment(val).utcOffset("+08:00").format('WW') //周
console.log(lastMonday, lastTuesday, lastWedday, lastThurday, lastFriday, year, week);
},
\ No newline at end of file
// 信息分类接口
import request from '@/utils/request'
// 获取所有类别
export function getAllCategory(params) {
return request({
url: '/api/informationClass/findAllInformationClass',
method: 'get',
params
})
}
// 2、根据名称获取信息分类
export function getNameCategory(param) {
return request({
url: '/api/informationClass/findInformationClassByName',
method: 'get',
params:param
})
}
// 3.新增信息分类
export function addClassification(data) {
return request({
url: '/api/informationClass/insertInformationClass',
method: 'post',
data,
})
}
// 4、修改信息分类
export function editClassification(data) {
return request({
url: '/api/informationClass/updateInformationClass',
method: 'put',
data
})
}
// 删除
export function deleteTypeDict(params) {
return request({
url: '/api/informationClass/deleteInformationClassById',
method: 'delete',
params,
})
}
import request from '@/utils/request'
// 获取信息分类接口
export function getAllCategory(params) {
return request({
url: '/api/informationClass/findAllInformationClass',
method: 'get',
params
})
}
// 选择个人获取所有销售人员
export function deliverList() {
return request({
url: '/api/notice/findAllSalesman',
method: 'get',
})
}
// 获取所有部门
export function allDepartments() {
return request({
url: '/api/statistics/findAllSaleDept',
method: 'get',
})
}
//获取表格 echarts图数据
export function getEchrtsData(params) {
return request({
url: '/api/statistics/findInfoStaticsByWrapper',
method: 'get',
params:params
})
}
// 导出
export function expRecord(params) {
return request({
url: '/api/statistics/exportCustomerFollowSituation',
method: 'get',
params,
// responseType:'blob',
})
}
// 导出客户回访资料
export function expClientData(params) {
return request({
url: '/api/statistics/download',
method: 'get',
params,
// responseType:'blob',
})
}
\ No newline at end of file
import request from '@/utils/request'
// 选择个人获取所有销售人员
export function deliverList() {
return request({
url: '/api/notice/findAllSalesman',
method: 'get',
})
}
// 获取所有部门
export function allDepartments() {
return request({
url: '/api/statistics/findAllSaleDept',
method: 'get',
})
}
//获取表格和echarts图数据
export function getEchrtsData(params) {
return request({
url: '/api/statistics/findCustomerStaticsByWrapper',
method: 'get',
params:params
})
}
// 导出
export function expRecord(params) {
return request({
url: '/api/statistics/exportCustomerFollowSituation',
method: 'get',
params,
// responseType:'blob',
})
}
import request from '@/utils/request'
// 获取其他页数据
export function getAllCategory(params) {
return request({
url: '/api/informationClass/findAllInformationClass',
method: 'get',
params
})
}
// 获取所有类别
export function getAllcustomer(params) {
return request({
url: '/api/customer/findAllCustomer',
method: 'get',
params
})
}
// 根据名称获取信息
export function searchContent(param) {
return request({
url: '/api/customer/findCustomerByWrapper',
method: 'get',
params:param
})
}
// 新增信息分类
export function addcustomer(data) {
return request({
url: '/api/customer/insertCustomer',
method: 'post',
data,
})
}
// 获取所有省份
export function getAllProvince(params) {
return request({
url: '/api/areaCode/findAreaByCodeAndType',
method: 'get',
params
})
}
// 新增项目全部数据返显
export function allData(params) {
return request({
url: '/api/custProject/findProjectById',
method: 'get',
params
})
}
// 新增项目
export function addPop(data) {
return request({
url: '/api/custProject/insertProject',
method: 'post',
data,
})
}
// 新增项目更新
export function toUpdate(data) {
return request({
url: '/api/custProject/updateProject',
method: 'put',
data
})
}
// 编辑客户信息
export function editcustomer(data) {
return request({
url: '/api/customer/updateCustomer',
method: 'put',
data,
})
}
//查询地址
export function getCode(params) {
return request({
url: '/api/areaCode/findPcodeByCode',
method: 'get',
params
})
}
// 发布跟进记录
export function releaseFollowuprecord (data) {
return request({
url: '/api/projectFollow/insertProjectFollow',
method: 'post',
data,
})
}
// 跟进记录表格返显
export function followupData(params) {
return request({
url: '/api/projectFollow/findAllProjectFollowByProjectId',
method: 'get',
params
})
}
// 删除跟踪记录
export function deleteFollowuprecord(params) {
return request({
url: '/api/projectFollow/deleteProjectFollowById',
method: 'delete',
params,
})
}
// 修改跟踪记录
export function modifyFollowuprecord(data) {
return request({
url: '/api/projectFollow/updateProjectFollow',
method: 'put',
data,
})
}
// 发布跟进记录
export function selectvalue() {
return request({
url: '/api/tabDict/getDictBySign?sign=project_follow_status',
method: 'get',
})
}
// 更改客户状态为已读
export function read(data) {
return request({
url: '/api/customer/changeToHaveRead',
method: 'put',
data,
})
}
// 售前技术总监
export function technicalDirector() {
return request({
url: '/api/technicalSupport/getTechnicalSupportLeader',
method: 'get',
})
}
// 导出Excel
export function exportExcel(params) {
return request({
url: '/api/customer/exportExcel',
method: 'get',
//responseType:'blob',
params
})
}
\ No newline at end of file
import request from '@/utils/request'
import qs from 'qs'
export function initData(url, params) {
return request({
url: url + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
export function download(url, params) {
return request({
url: url + '?' + qs.stringify(params, { indices: false }),
method: 'get',
responseType: 'blob'
})
}
import request from '@/utils/request'
export function get(tableName) {
return request({
url: 'api/genConfig/' + tableName,
method: 'get'
})
}
export function update(data) {
return request({
url: 'api/genConfig',
data,
method: 'put'
})
}
import request from '@/utils/request'
export function getAllTable() {
return request({
url: 'api/generator/tables/all',
method: 'get'
})
}
export function generator(tableName, type) {
return request({
url: 'api/generator/' + tableName + '/' + type,
method: 'post',
responseType: type === 2 ? 'blob' : ''
})
}
export function save(data) {
return request({
url: 'api/generator',
data,
method: 'put'
})
}
export function sync(tables) {
return request({
url: 'api/generator/sync',
method: 'post',
data: tables
})
}
import request from '@/utils/request'
export function login(username, password, code, uuid) {
return request({
url: 'auth/login',
method: 'post',
data: {
username,
password,
code,
uuid
}
})
}
export function getInfo() {
return request({
url: 'auth/info',
method: 'get'
})
}
export function getCodeImg() {
return request({
url: 'auth/code',
method: 'get'
})
}
export function logout() {
return request({
url: 'auth/logout',
method: 'delete'
})
}
import request from '@/utils/request'
// 获取其他页数据
export function getAllCategory(params) {
return request({
url: '/api/informationClass/findAllInformationClass',
method: 'get',
params
})
}
// 获取所有类别
export function getAllcategory(params) {
return request({
url: '/api/information/findAllInformation',
method: 'get',
params
})
}
// 2、根据名称获取信息分类
export function getNamecategory(param) {
return request({
url: '/api/information/findInformationByWrapper',
method: 'get',
params:param
})
}
// 3.新增信息分类
export function addcategory(data) {
return request({
url: '/api/information/insertInformation',
method: 'post',
data,
})
}
// 4、修改信息分类
export function editcategory(data) {
return request({
url: '/api/information/updateInformation',
method: 'put',
data
})
}
// 删除
export function deletecategory(params) {
return request({
url: '/api/information/deleteInformationById',
method: 'delete',
params,
})
}
// 销售人员下拉列表
export function deliverList() {
return request({
url: '/api/notice/findAllSalesman',
method: 'get',
})
}
// 手动分配
export function manualInfo(data) {
return request({
url: '/api/information/insertInformationByHand',
method: 'post',
data,
})
}
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/app',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/app',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/app',
method: 'put',
data
})
}
export default { add, edit, del }
import request from '@/utils/request'
export function testDbConnect(data) {
return request({
url: 'api/database/testConnect',
method: 'post',
data
})
}
export function testServerConnect(data) {
return request({
url: 'api/serverDeploy/testConnect',
method: 'post',
data
})
}
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/database',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/database',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/database',
method: 'put',
data
})
}
export function testDbConnection(data) {
return request({
url: 'api/database/testConnect',
method: 'post',
data
})
}
export default { add, edit, del, testDbConnection }
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/deploy',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/deploy',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/deploy',
method: 'put',
data
})
}
export function getApps() {
return request({
url: 'api/app',
method: 'get'
})
}
export function getServers() {
return request({
url: 'api/serverDeploy',
method: 'get'
})
}
/**
* 启动服务
* @param data 选中行
*/
export function startServer(data) {
return request({
url: 'api/deploy/startServer',
method: 'post',
data
})
}
/**
* 停止服务
* @param data 选中行
*/
export function stopServer(data) {
return request({
url: 'api/deploy/stopServer',
method: 'post',
data
})
}
/**
* 停止服务
* @param data 选中行
*/
export function serverStatus(data) {
return request({
url: 'api/deploy/serverStatus',
method: 'post',
data
})
}
export default { add, edit, del, stopServer, serverStatus, startServer, getServers, getApps }
import request from '@/utils/request'
export function del(ids) {
return request({
url: 'api/deployHistory',
method: 'delete',
data: ids
})
}
/**
* 版本回退
* @param data 选中行
*/
export function reducte(data) {
return request({
url: 'api/deploy/serverReduction',
method: 'post',
data
})
}
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/serverDeploy',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/serverDeploy',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/serverDeploy',
method: 'put',
data
})
}
export default { add, edit, del }
import request from '@/utils/request'
export function getErrDetail(id) {
return request({
url: 'api/logs/error/' + id,
method: 'get'
})
}
export function delAllError() {
return request({
url: 'api/logs/del/error',
method: 'delete'
})
}
export function delAllInfo() {
return request({
url: 'api/logs/del/info',
method: 'delete'
})
}
import request from '@/utils/request'
export function del(keys) {
return request({
url: 'auth/online',
method: 'delete',
data: keys
})
}
import request from '@/utils/request'
// 获取通知信息全部数据
export function getAllnotice(params) {
return request({
url: '/api/customer/findWeiDuCustomer',
method: 'get',
params
})
}
\ No newline at end of file
import request from '@/utils/request'
export function getAllsupport(params) {
return request({
url: '/api/technicalSupport/getTechnicalSupportByWrapper',
method: 'get',
params
})
}
export function deliverList() {
return request({
url: '/api/notice/findAllSalesman',
method: 'get'
})
}
export function deliverListRev2() {
return request({
url: '/api/customer/findOthersInThisDept',
method: 'get'
})
}
// 转交销售人员
export function changeMan(data) {
return request({
url: '/api/customer/changeSaleId',
method: 'put',
data
})
}
// 指派售前人员弹窗接口
export function assignPresales(data) {
return request({
url: '/api/technicalSupport/submitTechnicalSupport',
method: 'post',
data
})
}
// 项目成交记录接口
export function findWhereDeal(params) {
return request({
url: '/api/custProject/findProjectByIdWhereDeal',
method: 'get',
params
})
}
// 废弃弹窗接口
export function bandonmentRequest(data) {
return request({
url: '/api/customer/giveUpCustomer',
method: 'put',
data
})
}
import request from '@/utils/request'
export function getAllsupport(params) {
return request({
url: '/api/technicalSupport/getTechnicalSupportByWrapper',
method: 'get',
params
})
}
export function assignPresales(data) {
return request({
url: '/api/technicalSupport/changeChargePersonId',
method: 'put',
data,
})
}
// 转交销售人员列表
export function deliverList() {
return request({
url: '/api/notice/findAllPreSalesman',
method: 'get',
})
}
// 文件
export function preFile(data) {
return request({
url: '/api/technicalSupport/uploadTechnicalSupportFile',
method: 'put',
data,
})
}
// 审核状态
export function checkType(params) {
return request({
url: '/api/technicalSupport/changeIsExamine',
method: 'get',
params,
})
}
\ No newline at end of file
import request from '@/utils/request'
export function resetEmail(data) {
return request({
url: 'api/code/resetEmail?email=' + data,
method: 'post'
})
}
export function updatePass(pass) {
return request({
url: 'api/users/updatePass/' + pass,
method: 'get'
})
}
import request from '@/utils/request'
export function getDepts(params) {
return request({
url: 'api/dept',
method: 'get',
params
})
}
export function getDeptSuperior(ids) {
const data = ids.length || ids.length === 0 ? ids : Array.of(ids)
return request({
url: 'api/dept/superior',
method: 'post',
data
})
}
export function add(data) {
return request({
url: 'api/dept',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/dept',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/dept',
method: 'put',
data
})
}
export default { add, edit, del, getDepts, getDeptSuperior }
import request from '@/utils/request'
export function getDicts() {
return request({
url: 'api/dict/all',
method: 'get'
})
}
export function add(data) {
return request({
url: 'api/dict',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/dict/',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/dict',
method: 'put',
data
})
}
export default { add, edit, del }
import request from '@/utils/request'
export function get(dictName) {
const params = {
dictName,
page: 0,
size: 9999
}
return request({
url: 'api/dictDetail',
method: 'get',
params
})
}
export function getDictMap(dictName) {
const params = {
dictName,
page: 0,
size: 9999
}
return request({
url: 'api/dictDetail/map',
method: 'get',
params
})
}
export function add(data) {
return request({
url: 'api/dictDetail',
method: 'post',
data
})
}
export function del(id) {
return request({
url: 'api/dictDetail/' + id,
method: 'delete'
})
}
export function edit(data) {
return request({
url: 'api/dictDetail',
method: 'put',
data
})
}
export default { add, edit, del }
import request from '@/utils/request'
export function getAllJob() {
const params = {
page: 0,
size: 9999,
enabled: true
}
return request({
url: 'api/job',
method: 'get',
params
})
}
export function add(data) {
return request({
url: 'api/job',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/job',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/job',
method: 'put',
data
})
}
export default { add, edit, del }
import request from '@/utils/request'
export function getMenusTree(pid) {
return request({
url: 'api/menus/lazy?pid=' + pid,
method: 'get'
})
}
export function getMenus(params) {
return request({
url: 'api/menus',
method: 'get',
params
})
}
export function getMenuSuperior(ids) {
const data = Array.isArray(ids) || ids.length === 0 ? ids : Array.of(ids)
return request({
url: 'api/menus/superior',
method: 'post',
data
})
}
export function getChild(id) {
return request({
url: 'api/menus/child?id=' + id,
method: 'get'
})
}
export function buildMenus() {
return request({
url: 'api/menus/build',
method: 'get'
})
}
export function add(data) {
return request({
url: 'api/menus',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/menus',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/menus',
method: 'put',
data
})
}
export default { add, edit, del, getMenusTree, getMenuSuperior, getMenus, getChild }
import request from '@/utils/request'
// 获取所有的Role
export function getAll() {
return request({
url: 'api/roles/all',
method: 'get'
})
}
export function add(data) {
return request({
url: 'api/roles',
method: 'post',
data
})
}
export function get(id) {
return request({
url: 'api/roles/' + id,
method: 'get'
})
}
export function getLevel() {
return request({
url: 'api/roles/level',
method: 'get'
})
}
export function del(ids) {
return request({
url: 'api/roles',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/roles',
method: 'put',
data
})
}
export function editMenu(data) {
return request({
url: 'api/roles/menu',
method: 'put',
data
})
}
export default { add, edit, del, get, editMenu, getLevel }
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/jobs',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/jobs',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/jobs',
method: 'put',
data
})
}
export function updateIsPause(id) {
return request({
url: 'api/jobs/' + id,
method: 'put'
})
}
export function execution(id) {
return request({
url: 'api/jobs/exec/' + id,
method: 'put'
})
}
export default { del, updateIsPause, execution, add, edit }
import request from '@/utils/request'
import { encrypt } from '@/utils/rsaEncrypt'
export function add(data) {
return request({
url: 'api/users',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/users',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/users',
method: 'put',
data
})
}
export function editUser(data) {
return request({
url: 'api/users/center',
method: 'put',
data
})
}
export function updatePass(user) {
const data = {
oldPass: encrypt(user.oldPass),
newPass: encrypt(user.newPass)
}
return request({
url: 'api/users/updatePass/',
method: 'post',
data
})
}
export function updateEmail(form) {
const data = {
password: encrypt(form.pass),
email: form.email
}
return request({
url: 'api/users/updateEmail/' + form.code,
method: 'post',
data
})
}
export default { add, edit, del }
import request from '@/utils/request'
export function get() {
return request({
url: 'api/aliPay',
method: 'get'
})
}
export function update(data) {
return request({
url: 'api/aliPay',
data,
method: 'put'
})
}
// 支付
export function toAliPay(url, data) {
return request({
url: 'api/' + url,
data,
method: 'post'
})
}
import request from '@/utils/request'
export function get() {
return request({
url: 'api/email',
method: 'get'
})
}
export function update(data) {
return request({
url: 'api/email',
data,
method: 'put'
})
}
export function send(data) {
return request({
url: 'api/email',
data,
method: 'post'
})
}
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/localStorage',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/localStorage/',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/localStorage',
method: 'put',
data
})
}
export default { add, edit, del }
import request from '@/utils/request'
export function get() {
return request({
url: 'api/qiNiuContent/config',
method: 'get'
})
}
export function update(data) {
return request({
url: 'api/qiNiuContent/config',
data,
method: 'put'
})
}
export function download(id) {
return request({
url: 'api/qiNiuContent/download/' + id,
method: 'get'
})
}
export function sync() {
return request({
url: 'api/qiNiuContent/synchronize',
method: 'post'
})
}
export function del(ids) {
return request({
url: 'api/qiNiuContent',
method: 'delete',
data: ids
})
}
export default { del, download, sync }
import request from '@/utils/request'
// 信息类别 Tree 列表
export function reqInformationTreeList(params){
return request({
url: '/api/informationClass/findInformationClassByPid',
method: 'get',
params,
})
}
// 信息类别 Tree 列表
export function reqAllInfoTreeList(params){
return request({
url: '/api/informationClass/findAllInformationClass',
method: 'get',
params,
})
}
// 构建好的 Tree 列表
export function reqAllInfoTreeBuild(params){
return request({
url: '/api/informationClass/findInformationClassByPidTree',
method: 'get',
params,
})
}
\ No newline at end of file
import request from '@/utils/request'
// 获取信息分类数据
export function getAllCategory(params) {
return request({
url: '/api/informationClass/findAllInformationClass',
method: 'get',
params
})
}
// 设置信息权重
export function addAssignWeight(data) {
return request({
url: '/api/tabAssignWeight/insertWeight',
method: 'post',
data,
})
}
export function showAssignWeight(params) {
return request({
url: '/api/tabAssignWeight/findWeightByUserId',
method: 'get',
params
})
}
This diff is collapsed.
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<div v-if="crud.props.searchToggle">
<el-input v-model="query.name" clearable size="small" placeholder="请输入表名" style="width: 200px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<rrOperation />
</div>
<crudOperation>
<el-tooltip slot="right" class="item" effect="dark" content="数据库中表字段变动时使用该功能" placement="top-start">
<el-button
class="filter-item"
size="mini"
type="success"
icon="el-icon-refresh"
:loading="syncLoading"
:disabled="crud.selections.length === 0"
@click="sync"
>同步</el-button>
</el-tooltip>
</crudOperation>
</div>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55" />
<el-table-column :show-overflow-tooltip="true" prop="tableName" label="表名" />
<el-table-column :show-overflow-tooltip="true" prop="engine" label="数据库引擎" />
<el-table-column :show-overflow-tooltip="true" prop="coding" label="字符编码集" />
<el-table-column :show-overflow-tooltip="true" prop="remark" label="备注" />
<el-table-column prop="createTime" label="创建日期" />
<el-table-column label="操作" width="160px" align="center" fixed="right">
<template slot-scope="scope">
<el-button size="mini" style="margin-right: 2px" type="text">
<router-link :to="'/sys-tools/generator/preview/' + scope.row.tableName">
预览
</router-link>
</el-button>
<el-button size="mini" style="margin-left: -1px;margin-right: 2px" type="text" @click="toDownload(scope.row.tableName)">下载</el-button>
<el-button size="mini" style="margin-left: -1px;margin-right: 2px" type="text">
<router-link :to="'/sys-tools/generator/config/' + scope.row.tableName">
配置
</router-link>
</el-button>
<el-button type="text" style="margin-left: -1px" size="mini" @click="toGen(scope.row.tableName)">生成</el-button>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
</template>
<script>
import { generator, sync } from '@/api/generator/generator'
import { downloadFile } from '@/utils/index'
import CRUD, { presenter, header } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination'
export default {
name: 'GeneratorIndex',
components: { pagination, crudOperation, rrOperation },
cruds() {
return CRUD({ url: 'api/generator/tables' })
},
mixins: [presenter(), header()],
data() {
return {
syncLoading: false
}
},
created() {
this.crud.optShow = { add: false, edit: false, del: false, download: false }
},
methods: {
toGen(tableName) {
// 生成代码
generator(tableName, 0).then(data => {
this.$notify({
title: '生成成功',
type: 'success',
duration: 2500
})
})
},
toDownload(tableName) {
// 打包下载
generator(tableName, 2).then(data => {
downloadFile(data, tableName, 'zip')
})
},
sync() {
const tables = []
this.crud.selections.forEach(val => {
tables.push(val.tableName)
})
this.syncLoading = true
sync(tables).then(() => {
this.crud.refresh()
this.crud.notify('同步成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.syncLoading = false
}).then(() => {
this.syncLoading = false
})
}
}
}
</script>
<style scoped>
</style>
<template>
<el-tabs v-model="activeName" type="card">
<el-tab-pane v-for="item in data" :key="item.name" :lazy="true" :label="item.name" :name="item.name">
<Java :value="item.content" :height="height" />
</el-tab-pane>
</el-tabs>
</template>
<script>
import Java from '@/components/JavaEdit/index'
import { generator } from '@/api/generator/generator'
export default {
name: 'Preview',
components: { Java },
data() {
return {
data: null, height: '', activeName: 'Entity'
}
},
created() {
this.height = document.documentElement.clientHeight - 180 + 'px'
const tableName = this.$route.params.tableName
generator(tableName, 1).then(data => {
this.data = data
}).catch(() => {
this.$router.go(-1)
})
}
}
</script>
import Vue from 'vue'
import SvgIcon from '@/components/SvgIcon'// svg component
// register globally
Vue.component('svg-icon', SvgIcon)
const req = require.context('./svg', false, /\.svg$/)
const requireAll = requireContext => requireContext.keys().map(requireContext)
requireAll(req)
<svg xmlns="http://www.w3.org/2000/svg" width="200.586" height="200" class="icon" viewBox="0 0 1027 1024"><defs><style/></defs><path d="M512 750.933c-112.64 0-211.627-119.466-245.76-242.346-34.133 0-61.44-44.374-61.44-102.4 0-17.067 3.413-34.134 6.827-47.787-3.414-20.48-6.827-47.787-6.827-68.267C204.8 129.707 341.333 0 508.587 0S819.2 133.12 819.2 290.133c0 20.48-3.413 47.787-6.827 68.267 3.414 13.653 6.827 30.72 6.827 47.787 0 58.026-27.307 102.4-61.44 102.4C723.627 631.467 624.64 750.933 512 750.933zM276.48 471.04h6.827c3.413 3.413 10.24 6.827 10.24 10.24C324.267 610.987 423.253 716.8 512 716.8s187.733-105.813 218.453-235.52c0-6.827 6.827-10.24 10.24-10.24 3.414-3.413 10.24 0 17.067 0h3.413c10.24 0 27.307-27.307 27.307-68.267 0-13.653-3.413-30.72-6.827-40.96v-10.24c0-13.653 3.414-40.96 3.414-61.44 0-139.946-126.294-256-276.48-256-150.187 0-269.654 116.054-269.654 256 0 20.48 3.414 47.787 6.827 64.854v10.24c-3.413 10.24-6.827 23.893-6.827 40.96 0 40.96 17.067 68.266 27.307 68.266h3.413c0-3.413 3.414-3.413 6.827-3.413z"/><path d="M1006.933 1024H17.067C6.827 1024 0 1017.173 0 1006.933v-40.96C0 849.92 75.093 747.52 184.32 706.56l112.64-30.72c6.827 0 13.653 0 17.067 3.413 51.2 58.027 122.88 136.534 197.973 136.534s143.36-78.507 197.973-136.534c3.414-3.413 10.24-6.826 17.067-3.413l109.227 30.72c112.64 37.547 191.146 150.187 191.146 266.24v30.72c-3.413 13.653-10.24 20.48-20.48 20.48zm-972.8-34.133h955.734v-13.654c0-98.986-71.68-201.386-167.254-235.52l-98.986-27.306c-54.614 61.44-129.707 139.946-215.04 139.946s-160.427-78.506-215.04-139.946l-98.987 27.306c-95.573 34.134-160.427 122.88-160.427 225.28v23.894zm750.934-614.4h-51.2c-6.827 0-13.654-6.827-17.067-13.654 0-3.413-23.893-109.226-30.72-184.32-3.413-30.72-30.72-58.026-61.44-58.026-23.893 0-40.96 13.653-58.027 30.72-17.066 13.653-34.133 20.48-54.613 20.48-27.307 0-47.787 0-64.853-20.48s-34.134-30.72-47.787-30.72c-40.96 0-71.68 30.72-75.093 68.266L307.2 358.4c0 3.413-3.413 10.24-6.827 10.24s-6.826 6.827-13.653 6.827c0 0-23.893-3.414-51.2-3.414-10.24 0-17.067-6.826-17.067-17.066s10.24-17.067 20.48-17.067c13.654 0 27.307 0 37.547 3.413l17.067-153.6c3.413-58.026 54.613-102.4 109.226-102.4 27.307 0 54.614 23.894 71.68 44.374 6.827 6.826 17.067 6.826 37.547 6.826 10.24 0 20.48-3.413 30.72-13.653 20.48-17.067 47.787-37.547 81.92-37.547 51.2 0 92.16 37.547 95.573 88.747 3.414 58.027 20.48 136.533 27.307 167.253h37.547c10.24 0 17.066 6.827 17.066 17.067s-6.826 17.067-17.066 17.067z"/><path d="M324.267 426.667c-3.414 0-10.24 0-13.654-3.414l-51.2-51.2c-6.826-6.826-6.826-17.066 0-23.893s17.067-6.827 23.894 0l51.2 51.2c6.826 6.827 6.826 17.067 0 23.893 0 3.414-6.827 3.414-10.24 3.414zm375.466 0c-3.413 0-6.826 0-10.24-3.414-6.826-6.826-10.24-17.066-3.413-23.893l34.133-51.2c6.827-6.827 17.067-10.24 23.894-3.413s10.24 17.066 3.413 23.893l-34.133 51.2c-3.414 3.413-6.827 6.827-13.654 6.827zm-136.533 0c-3.413 0-6.827 0-10.24-3.414 0 0-20.48-13.653-40.96-13.653s-40.96 13.653-40.96 13.653c-6.827 6.827-17.067 3.414-23.893-3.413-6.827-6.827-3.414-17.067 3.413-23.893 0 0 27.307-20.48 61.44-20.48s61.44 20.48 61.44 20.48c6.827 6.826 10.24 17.066 3.413 23.893-3.413 3.413-6.826 6.827-13.653 6.827zM631.467 614.4c-27.307 0-51.2-20.48-71.68-37.547-17.067-17.066-34.134-30.72-54.614-30.72-17.066 0-30.72 13.654-47.786 30.72C440.32 593.92 419.84 614.4 389.12 614.4c-44.373 0-58.027-13.653-81.92-37.547l-17.067-17.066c-6.826-6.827-6.826-17.067 0-23.894s17.067-6.826 23.894 0l17.066 17.067c23.894 23.893 27.307 27.307 54.614 27.307 13.653 0 27.306-13.654 44.373-27.307 20.48-20.48 40.96-40.96 71.68-40.96 30.72 0 54.613 20.48 75.093 40.96 17.067 13.653 34.134 27.307 47.787 27.307 30.72 0 34.133-3.414 54.613-27.307 3.414-6.827 10.24-10.24 17.067-17.067s17.067-6.826 23.893 0 6.827 17.067 0 23.894c-6.826 6.826-10.24 13.653-17.066 17.066-13.654 23.894-27.307 37.547-71.68 37.547zm-102.4 34.133h-34.134c-10.24 0-17.066-6.826-17.066-17.066s6.826-17.067 17.066-17.067h34.134c10.24 0 17.066 6.827 17.066 17.067s-6.826 17.066-17.066 17.066z"/><path d="M631.467 512c-47.787 0-85.334-37.547-85.334-85.333s37.547-85.334 85.334-85.334S716.8 378.88 716.8 426.667 679.253 512 631.467 512zm0-136.533c-27.307 0-51.2 23.893-51.2 51.2s23.893 51.2 51.2 51.2 51.2-23.894 51.2-51.2-23.894-51.2-51.2-51.2zM392.533 512c-47.786 0-85.333-37.547-85.333-85.333s37.547-85.334 85.333-85.334 85.334 37.547 85.334 85.334S440.32 512 392.533 512zm0-136.533c-27.306 0-51.2 23.893-51.2 51.2s23.894 51.2 51.2 51.2 51.2-23.894 51.2-51.2-23.893-51.2-51.2-51.2z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M907 378.05l-12.4-14.33c-61-70.41-166.93-177.81-236.2-239.4l-14.12-12.58C609.07 80.37 562.07 63.09 512 63.09s-97.08 17.28-132.32 48.65l-14.12 12.57c-69.28 61.61-175.24 169-236.2 239.41l-12.41 14.33c-63.92 73.87-63.92 194 0 267.87l12.41 14.33C190.24 730.6 296.2 838 365.54 899.69l14.14 12.57c35.24 31.37 82.23 48.65 132.32 48.65s97.06-17.28 132.32-48.65l14.13-12.57 8.15-7.25c21.93-19.46 31.93-28.35 62.69-58.93l7.27-7.36-1.16-1.22a28.35 28.35 0 0 0-45.87-32.14c-2.92 2.78-43.63 41.53-68.73 63.91l-14.1 12.56c-24.89 22.1-58.53 34.28-94.7 34.28s-69.82-12.19-94.69-34.31l-14.14-12.58c-67.85-60.34-171.47-165.38-231-234.14l-12.4-14.32c-21.73-25.12-33.7-59.29-33.7-96.2s12-71.07 33.7-96.17l12.41-14.33c59.5-68.75 163.12-173.79 231-234.15l14.1-12.57c24.86-22.12 58.49-34.31 94.68-34.31s69.83 12.19 94.7 34.3l14.12 12.58c67.86 60.37 171.49 165.41 231 234.14l12.39 14.34c45.22 52.21 45.34 143.76.26 192.07l-7.15 7.69c-20.35 21.94-32.64 35.19-45.62 39.1-12.3 3.71-27.89-.23-57.53-14.54-49.55-23.94-119.64-64-144-78 9.87-19.61 32.46-67.6 43.11-115.62l2.86-12.87H534.5v-15.06h154.78v-57.37H534.5v-72.41h-56.89v72.41H322.83v57.37h154.78v15.05H358.54V491H573c-4.63 14.52-13.16 32.57-19.19 44.37-22.13-8.73-80.75-29.33-141-29.33-37.94 0-69.92 10.28-92.49 29.71-22.37 19.27-34.19 46-34.19 77.42s11.32 58.29 32.75 77.74c21.9 19.89 53 30.41 90 30.41 42.76 0 87.09-19 128.18-54.78a326.76 326.76 0 0 0 43.61-46.35c22.9 12.75 90 50 152.61 83.47 40.83 21.85 69.5 26.18 95.87 14.47 25.09-11.14 47.07-36.53 77.49-71.68l.47-.54C971 572.07 971 451.9 907 378.05zM407.83 662c-60.15 0-64.83-37.38-64.83-48.82a48.21 48.21 0 0 1 12.15-31.36c11.06-12.2 28.45-18.39 51.69-18.39 50 0 95 17.21 115.39 26.35C503.71 611.69 456 662 407.83 662z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M957.217 86.372v521.84c0 31.298-7.435 62.419-22.26 93.362-14.87 31.031-34.282 60.994-58.324 90.112-24.042 29.072-51.512 56.631-82.365 82.587-30.898 26.001-62.197 49.152-93.941 69.454-31.789 20.347-62.642 37.265-92.605 50.71-29.963 13.446-56.231 22.662-78.804 27.693l-10.685 1.87-9.795-1.87c-23.151-5.03-49.998-14.247-80.584-27.692-30.587-13.446-62.33-30.364-95.277-50.71-32.946-20.303-65.268-43.454-97.057-69.455-31.744-25.956-60.104-53.515-85.037-82.587-24.932-29.118-45.1-59.08-60.505-90.112-15.493-30.943-23.195-62.064-23.195-93.363V86.372l36.507-5.654L512.89 0l417.614 80.718 26.713 5.654zM513.024 75.553l-4.942-1.024-351.544 62.999v329.238h356.486V75.553zm354.438 391.213H513.024v468.636c22.795-5.521 47.594-13.936 74.396-25.289 26.757-11.353 53.203-24.754 79.293-40.247 26.134-15.494 51.245-32.68 75.42-51.601 24.175-18.922 45.501-39.268 64.156-60.95 18.61-21.638 33.436-44.166 44.521-67.584 11.13-23.374 16.652-47.149 16.652-71.235v-151.73z"/></svg>
\ No newline at end of file
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M468.693 16.725a85.333 85.333 0 0 1 82.56 0l381.952 211.072a85.333 85.333 0 0 1 44.075 74.667v419.03a85.333 85.333 0 0 1-44.075 74.666l-381.952 211.115a85.333 85.333 0 0 1-82.56 0L86.741 796.203a85.333 85.333 0 0 1-44.074-74.71V302.507A85.333 85.333 0 0 1 86.74 227.84L468.693 16.683zm423.254 285.782L509.952 91.435 128 302.507v418.986l381.952 211.072 381.995-211.072V302.507zm-684.715 42.197a42.667 42.667 0 0 1 57.984-16.725l244.736 135.253 244.779-135.253a42.667 42.667 0 0 1 41.258 74.666L552.62 537.173v268.16a42.667 42.667 0 0 1-85.334 0v-268.16l-243.37-134.485a42.667 42.667 0 0 1-16.683-58.027z"/></svg>
\ No newline at end of file
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M646 1024H100A100 100 0 0 1 0 924V258a100 100 0 0 1 100-100h546a100 100 0 0 1 100 100v31a40 40 0 1 1-80 0v-31a20 20 0 0 0-20-20H100a20 20 0 0 0-20 20v666a20 20 0 0 0 20 20h546a20 20 0 0 0 20-20V713a40 40 0 0 1 80 0v211a100 100 0 0 1-100 100z"/><path d="M924 866H806a40 40 0 0 1 0-80h118a20 20 0 0 0 20-20V100a20 20 0 0 0-20-20H378a20 20 0 0 0-20 20v8a40 40 0 0 1-80 0v-8A100 100 0 0 1 378 0h546a100 100 0 0 1 100 100v666a100 100 0 0 1-100 100z"/><path d="M469 887a40 40 0 0 1-27-10L152 618a40 40 0 0 1 1-60l290-248a40 40 0 0 1 66 30v128a367 367 0 0 0 241-128l94-111a40 40 0 0 1 70 35l-26 109a430 430 0 0 1-379 332v142a40 40 0 0 1-40 40zM240 589l189 169v-91a40 40 0 0 1 40-40c144 0 269-85 323-214a447 447 0 0 1-323 137 40 40 0 0 1-40-40v-83z"/></svg>
\ No newline at end of file
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M957.2 445.4c-3.6-16-13.6-30.8-25-37-3.6-2-26-4.4-50-5.4-40.2-1.8-44.6-2.6-57.4-10-20.2-11.8-25.6-24.6-25.8-59-.2-66-27.6-127.4-81.8-182.6-38.6-39.4-81.8-66-131-81-11.8-3.6-38.2-4.8-126.6-5.8-138.8-1.6-169.6 1.2-216.8 20-87 34.4-149.4 107.6-172.2 201.2-4.2 17.6-5.2 45.8-6.2 207.8-1.2 203 .2 232.8 12.8 273C108.4 865.8 197 939.2 286 955.2c29.6 5.4 394.6 6.6 432 1.6 65-8.8 116-35 163.8-83.8 34.6-35.4 56.2-73.6 70.4-124.2 9.8-35.2 9-285.6 5-303.4zM313 318.2c15.6-15.8 20-16.4 117.6-16.4 87.8 0 90.8.2 103.6 6.8 18.6 9.4 26.8 22.6 26.8 43.8 0 19-7.6 32.4-24.6 43.2-9.2 5.8-14.6 6.2-100.6 6.6-53 .4-95.4-.8-101.6-2.4-33.2-9.4-45.6-57-21.2-81.6zm383.6 399.6l-29.8 4.8-155 1.8c-136.2 1.6-174.6-.8-181.8-4-14.2-6.2-27.6-23.4-29.8-38.8-2.2-14.6 5.2-34.6 16.4-44.8 14.2-12.8 20.4-13.2 194.6-13.4 179.2-.2 178.2-.2 195.2 15.6 24.2 22.6 19 62.4-9.8 78.8z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M877.297 553.797l-323.5 323.502c-54.37 54.37-126.657 84.311-203.548 84.312-76.89-.001-149.178-29.943-203.547-84.312S62.389 750.64 62.389 673.75s29.943-149.178 84.313-203.548l135.442-135.442c75.83-75.829 199.214-75.829 275.044 0s75.83 199.215 0 275.044L399.32 767.675c-17.62 17.62-46.189 17.62-63.81 0-17.62-17.622-17.62-46.19 0-63.81l157.868-157.868c40.646-40.645 40.646-106.78 0-147.424-40.644-40.646-106.779-40.646-147.424 0L210.51 534.013c-77.052 77.052-77.052 202.423 0 279.476 77.052 77.051 202.423 77.051 279.475 0l323.502-323.502c77.052-77.051 77.052-202.424 0-279.476-77.053-77.051-202.424-77.05-279.476 0-17.62 17.62-46.19 17.62-63.81 0s-17.619-46.19 0-63.809C524.573 92.332 596.86 62.39 673.75 62.39c76.893 0 149.179 29.943 203.55 84.312 54.369 54.37 84.31 126.657 84.31 203.548 0 76.89-29.942 149.177-84.312 203.547z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 54.857h36.571V128H0V54.857zM91.429 27.43H128V128H91.429V27.429zM45.714 0h36.572v128H45.714V0z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M890 120H134a70 70 0 0 0-70 70v500a70 70 0 0 0 70 70h756a70 70 0 0 0 70-70V190a70 70 0 0 0-70-70zm-10 520a40 40 0 0 1-40 40H712V448a40 40 0 0 0-80 0v232h-80V368a40 40 0 0 0-80 0v312h-80V512a40 40 0 0 0-80 0v168H184a40 40 0 0 1-40-40V240a40 40 0 0 1 40-40h656a40 40 0 0 1 40 40zM696 824H328a40 40 0 0 0 0 80h368a40 40 0 0 0 0-80z"/></svg>
\ No newline at end of file
<svg width="128" height="100" xmlns="http://www.w3.org/2000/svg"><path d="M27.429 63.638c0-2.508-.893-4.65-2.679-6.424-1.786-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.465 2.662-1.785 1.774-2.678 3.916-2.678 6.424 0 2.508.893 4.65 2.678 6.424 1.786 1.775 3.94 2.662 6.465 2.662 2.524 0 4.678-.887 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zm13.714-31.801c0-2.508-.893-4.65-2.679-6.424-1.785-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zM71.714 65.98l7.215-27.116c.285-1.23.107-2.378-.536-3.443-.643-1.064-1.56-1.762-2.75-2.094-1.19-.33-2.333-.177-3.429.462-1.095.639-1.81 1.573-2.143 2.804l-7.214 27.116c-2.857.237-5.405 1.266-7.643 3.088-2.238 1.822-3.738 4.152-4.5 6.992-.952 3.644-.476 7.098 1.429 10.364 1.905 3.265 4.69 5.37 8.357 6.317 3.667.947 7.143.474 10.429-1.42 3.285-1.892 5.404-4.66 6.357-8.305.762-2.84.619-5.607-.429-8.305-1.047-2.697-2.762-4.85-5.143-6.46zm47.143-2.342c0-2.508-.893-4.65-2.678-6.424-1.786-1.775-3.94-2.662-6.465-2.662-2.524 0-4.678.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.786 1.775 3.94 2.662 6.464 2.662 2.524 0 4.679-.887 6.465-2.662 1.785-1.775 2.678-3.916 2.678-6.424zm-45.714-45.43c0-2.509-.893-4.65-2.679-6.425C68.68 10.01 66.524 9.122 64 9.122c-2.524 0-4.679.887-6.464 2.661-1.786 1.775-2.679 3.916-2.679 6.425 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zm32 13.629c0-2.508-.893-4.65-2.679-6.424-1.785-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zM128 63.638c0 12.351-3.357 23.78-10.071 34.286-.905 1.372-2.19 2.058-3.858 2.058H13.93c-1.667 0-2.953-.686-3.858-2.058C3.357 87.465 0 76.037 0 63.638c0-8.613 1.69-16.847 5.071-24.703C8.452 31.08 13 24.312 18.714 18.634c5.715-5.68 12.524-10.199 20.429-13.559C47.048 1.715 55.333.035 64 .035c8.667 0 16.952 1.68 24.857 5.04 7.905 3.36 14.714 7.88 20.429 13.559 5.714 5.678 10.262 12.446 13.643 20.301 3.38 7.856 5.071 16.09 5.071 24.703z"/></svg>
\ No newline at end of file
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M942 191.9C939.8 128.9 748.1 78 512 78S84.2 128.9 82 191.9V831c0 63.5 192.5 115 430 115s430-51.5 430-115V191.9zm-56.7 393.8c-4.6 3.3-11.6 7.4-21.9 12.2-21.3 9.8-50.5 19.1-84.4 26.8-74 16.8-168.8 26-267 26s-193-9.2-267-26c-33.9-7.7-63.1-16.9-84.4-26.8-10.3-4.8-17.3-8.9-21.9-12.2.1-.1.2-.1.3-.2h-7v-123c72.2 36.4 215.3 61.1 380 61.1s307.8-24.8 380-61.1v122.9h-7l.3.3zm0-177c-4.6 3.3-11.6 7.4-21.9 12.2-21.3 9.8-50.5 19.1-84.4 26.8-74 16.8-168.8 26-267 26s-193-9.2-267-26c-33.9-7.7-63.1-16.9-84.4-26.8-10.3-4.8-17.3-8.9-21.9-12.2.1-.1.2-.1.3-.2h-7V246.9c72.2 36.4 215.3 61.1 380 61.1s307.8-24.8 380-61.1v161.6h-7c.1 0 .2.1.3.2zM160.7 180.8C182 171 211.2 161.7 245 154c74-16.8 168.8-26 267-26s193 9.2 267 26c33.9 7.7 63.1 16.9 84.4 26.8 10.3 4.8 17.3 8.9 21.9 12.2-4.6 3.3-11.6 7.4-21.9 12.2C842 215 812.8 224.3 779 232c-74 16.8-168.8 26-267 26s-193-9.2-267-26c-33.9-7.7-63.1-16.9-84.4-26.8-10.3-4.8-17.3-8.9-21.9-12.2 4.7-3.3 11.7-7.4 22-12.2zM885.3 831c-4.6 3.3-11.6 7.4-21.9 12.2C842 853 812.8 862.3 779 870c-74 16.8-168.8 26-267 26s-193-9.2-267-26c-33.9-7.7-63.1-16.9-84.4-26.8-10.3-4.8-17.3-8.9-21.9-12.2.1-.1.2-.1.3-.2h-7V639.5c72.2 36.4 215.3 61.1 380 61.1s307.8-24.8 380-61.1v191.3h-7c.1.1.2.1.3.2z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M453.228 781.672H170.319V409.18h650.457c11.686 0 21.16-9.473 21.16-21.16V206.29c0-11.686-9.474-21.16-21.16-21.16H660.945v-35.972c0-11.686-9.474-21.16-21.16-21.16-11.688 0-21.16 9.474-21.16 21.16v35.972H356.247v-35.972c0-11.686-9.473-21.16-21.16-21.16s-21.16 9.474-21.16 21.16v35.972H149.16c-11.687 0-21.16 9.474-21.16 21.16V790.44c0 18.5 14.822 33.55 33.04 33.55H453.23c11.686 0 21.16-9.472 21.16-21.16 0-11.686-9.475-21.16-21.161-21.16zM170.319 227.45h143.609v35.971c0 11.687 9.473 21.16 21.16 21.16s21.159-9.472 21.159-21.16V227.45h262.377v35.971c0 11.687 9.472 21.16 21.16 21.16 11.686 0 21.16-9.472 21.16-21.16V227.45h138.672v139.412H170.319V227.45zM690.5 483.1c-113.837 0-206.45 92.613-206.45 206.453C484.05 803.388 576.663 896 690.5 896s206.45-92.613 206.45-206.447c0-113.84-92.611-206.453-206.45-206.453zm0 370.58c-90.5 0-164.13-73.628-164.13-164.131s73.628-164.132 164.13-164.132c90.503 0 164.133 73.628 164.133 164.132S781.002 853.68 690.5 853.68zM390.104 640.816H246.218c-11.687 0-21.16 9.472-21.16 21.16 0 11.685 9.473 21.158 21.16 21.158h143.885c11.686 0 21.16-9.473 21.16-21.158-.002-11.688-9.475-21.16-21.16-21.16zm0-119.489H246.218c-11.687 0-21.16 9.473-21.16 21.158 0 11.688 9.473 21.16 21.16 21.16h143.885c11.686 0 21.16-9.472 21.16-21.16-.002-11.683-9.475-21.158-21.16-21.158zm413.071 147.067H711.66V617.61c0-11.687-9.472-21.16-21.159-21.16s-21.16 9.473-21.16 21.16v71.943c0 11.685 9.474 21.158 21.16 21.158h112.673c11.687 0 21.16-9.473 21.16-21.158.001-11.688-9.473-21.16-21.16-21.16z"/></svg>
\ No newline at end of file
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M877.952 447.616v-.256a272 272 0 0 0-479.68-175.68 166.144 166.144 0 0 0-226.016 155.296c0 4.768.32 9.6.704 14.144A196.896 196.896 0 0 0 206.592 832H448V576H304l208-208 208 208H576v256h241.408a196.96 196.96 0 0 0 60.544-384.384z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M329.285 317.714l-8.423 4.429c-8.78 4.584-13.528 14.847-11.923 24.415a240.738 240.738 0 0 0 5.492 14.748c2.03 4.854 4.23 9.653 6.537 14.293 5.62 7.892 16.246 11.825 25.699 8.86l9.042-2.87c14.742-3.86 31.116-.055 42.626 11.513 11.549 11.527 15.374 27.864 11.549 42.57L407 444.8c-2.958 9.44.938 20.043 8.83 25.707 4.635 2.328 9.403 4.528 14.323 6.53 4.876 2.043 9.809 3.846 14.74 5.478 9.538 1.604 19.874-3.123 24.414-11.91l4.402-8.388c7.68-13.144 21.916-22.002 38.268-22.002 16.338 0 30.548 8.83 38.255 21.932l4.414 8.46c4.584 8.786 14.847 13.513 24.414 11.91a222.9 222.9 0 0 0 14.734-5.48 226.477 226.477 0 0 0 14.323-6.529c7.891-5.622 11.81-16.253 8.843-25.706l-2.853-9.042c-3.86-14.734-.07-31.086 11.485-42.656 11.554-11.525 27.879-15.372 42.599-11.512l9.097 2.882c9.427 2.952 20.045-.938 25.693-8.83 2.314-4.656 4.527-9.41 6.543-14.322a218.706 218.706 0 0 0 5.495-14.749c1.617-9.58-3.108-19.844-11.91-24.43l-8.403-4.4c-13.132-7.665-21.988-21.901-21.988-38.255 0-16.323 8.83-30.59 21.974-38.268l8.417-4.443c8.803-4.571 13.528-14.833 11.925-24.401-1.647-4.91-3.48-9.85-5.493-14.734-2.032-4.869-4.203-9.68-6.53-14.309-5.622-7.89-16.253-11.823-25.709-8.842l-9.056 2.853c-14.748 3.862-31.072.057-42.654-11.512-11.555-11.554-15.345-27.878-11.485-42.613l2.853-9.056c2.967-9.44-.952-20.043-8.857-25.692-4.641-2.328-9.397-4.543-14.308-6.544a208.838 208.838 0 0 0-14.734-5.466c-9.568-1.632-19.873 3.124-24.414 11.896l-4.4 8.39c-7.68 13.173-21.932 22.002-38.269 22.002-16.31 0-30.576-8.829-38.268-22.003l-4.387-8.389c-4.555-8.771-14.832-13.528-24.406-11.896-4.955 1.605-9.874 3.436-14.764 5.423-4.883 2.044-9.688 4.217-14.323 6.545-7.892 5.65-11.809 16.266-8.83 25.735l2.826 9.056c3.883 14.763.058 31.086-11.491 42.613-11.51 11.57-27.85 15.373-42.612 11.526l-9.07-2.867c-9.44-2.98-20.064.952-25.686 8.842a204.584 204.584 0 0 0-6.537 14.31c-2.037 4.882-3.848 9.822-5.492 14.733-1.604 9.581 3.142 19.858 11.923 24.444l8.403 4.4c13.156 7.679 21.986 21.945 21.986 38.268 0 16.309-8.83 30.532-21.966 38.226zm182.693-146.007c59.533 0 107.795 48.275 107.795 107.78 0 59.49-48.262 107.752-107.795 107.752-59.534 0-107.752-48.263-107.752-107.753 0-59.504 48.22-107.78 107.752-107.78zM924.648 689.174H798.57V581.65c0-26.388-21.476-47.85-47.864-47.85H276.254c-26.387 0-47.852 21.462-47.852 47.85v107.524H99.345c-20.419 0-36.956 16.551-36.956 36.949v184.771c0 20.4 16.537 36.963 36.956 36.963h273.966c20.397 0 36.947-16.564 36.947-36.963V726.123c0-20.399-16.55-36.949-36.947-36.949H250.207V581.65c0-14.366 11.681-26.047 26.047-26.047h474.452c14.364 0 26.063 11.681 26.063 26.047v107.524h-126.08c-20.413 0-36.963 16.551-36.963 36.949v184.771c0 20.4 16.55 36.963 36.963 36.963h273.959c20.397 0 36.962-16.564 36.962-36.963V726.123c0-20.398-16.566-36.949-36.962-36.949z"/></svg>
\ No newline at end of file
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M318.578 819.2L17.067 512l301.51-307.2 45.512 45.511L96.71 512 364.09 773.689zm386.844 0l-45.51-45.511L927.288 512 659.91 250.311l45.511-45.511L1006.933 512zM540.786 221.867l55.75 11.15-113.379 569.116-55.75-11.093z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M529.05 527.616l-30.772-30.746 85.07-85.094 30.77 30.771z"/><path d="M0 340.48l427.52 256L675.84 1024 1024 0 0 340.48zM665.6 921.6L458.24 565.76 102.4 353.28 911.36 81.92l-243.2 243.2 30.72 30.72 243.2-243.2L665.6 921.6z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M558.41 658.286h-92.82l-28.379 62.427a18.286 18.286 0 1 1-33.28-15.14L495.36 504.43a18.286 18.286 0 0 1 33.28 0l91.429 201.143a18.286 18.286 0 1 1-33.28 15.14l-28.38-62.427zm-16.64-36.572L512 556.178l-29.77 65.536h59.54zM329.142 128H804.57a18.286 18.286 0 1 1 0 36.571H329.143a91.429 91.429 0 0 0 0 182.858H804.57a18.286 18.286 0 0 1 18.286 18.285v512A18.286 18.286 0 0 1 804.571 896H329.143a128 128 0 0 1-128-128V256a128 128 0 0 1 128-128zm-91.429 217.6V768a91.429 91.429 0 0 0 91.429 91.429h457.143V384H329.143a127.634 127.634 0 0 1-91.429-38.4zm91.429-71.314a18.286 18.286 0 0 1 0-36.572H768a18.286 18.286 0 1 1 0 36.572H329.143z"/></svg>
\ No newline at end of file
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M891.8 320H608V39.2L891.8 320zM704 384v260c0 133.6-73 200.2-226.6 200.2H288V169.6h189.4c24 0 46.2 1.6 66.2 5V6.6C521.8 2.2 498.8 0 474.4 0H96v1024h378.4c281 0 421.6-129.2 421.6-387.8V384H704z"/></svg>
\ No newline at end of file
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M1024 896v128H0V704h128v192h768V704h128v192zM576 554.688L810.688 320 896 405.312l-384 384-384-384L213.312 320 448 554.688V0h128v554.688z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M106.133 67.2a4.797 4.797 0 0 0-4.8 4.8c0 .187.014.36.027.533h-.027V118.4H9.6V26.667h50.133c2.654 0 4.8-2.147 4.8-4.8 0-2.654-2.146-4.8-4.8-4.8H9.6a9.594 9.594 0 0 0-9.6 9.6V118.4c0 5.307 4.293 9.6 9.6 9.6h91.733c5.307 0 9.6-4.293 9.6-9.6V72.533h-.026c.013-.173.026-.346.026-.533 0-2.653-2.146-4.8-4.8-4.8z"/><path d="M125.16 13.373L114.587 2.8c-3.747-3.747-9.854-3.72-13.6.027l-52.96 52.96a4.264 4.264 0 0 0-.907 1.36L33.813 88.533c-.746 1.76-.226 3.534.907 4.68 1.133 1.147 2.92 1.667 4.693.92l31.4-13.293c.507-.213.96-.52 1.36-.907l52.96-52.96c3.747-3.746 3.774-9.853.027-13.6zM66.107 72.4l-18.32 7.76 7.76-18.32L92.72 24.667l10.56 10.56L66.107 72.4zm52.226-52.227l-8.266 8.267-10.56-10.56 8.266-8.267.027-.026 10.56 10.56-.027.026z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M88.883 119.565c-7.284 0-19.434 2.495-21.333 8.25v.127c-4.232.13-5.222 0-7.108 0-1.895-5.76-14.045-8.256-21.333-8.256H0V0h42.523c9.179 0 17.109 5.47 21.47 13.551C68.352 5.475 76.295 0 85.478 0H128v119.57l-39.113-.005h-.004zM60.442 24.763c0-9.651-8.978-16.507-17.777-16.507H7.108V111.43H39.11c7.054-.14 18.177.082 21.333 6.12v-4.628c-.134-5.722-.004-13.522 0-13.832V27.413l.004-2.655-.004.005zm60.442-16.517h-35.55c-8.802 0-17.78 6.856-17.78 16.493v74.259c.004.32.138 8.115 0 13.813v4.627c3.155-6.022 14.279-6.26 21.333-6.114h32V8.25l-.003-.005z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M511.472 957.56c-51.014 0-93.476-37.32-101.503-86.073H210.173c-32.96 0-59.794-26.834-59.794-59.827 0-12.417 3.735-24.278 10.812-34.336l83.646-111.562h533.236l83.515 111.365c7.307 10.484 11.009 22.247 11.009 34.533 0 32.994-26.834 59.827-59.795 59.827h-199.86c-8.027 48.755-50.456 86.072-101.47 86.072zM261.613 699.312l-73.293 97.735c-2.752 3.964-4.39 9.174-4.39 14.612 0 14.482 11.762 26.277 26.243 26.277h231.97v16.774c0 38.203 31.094 69.297 69.329 69.297 38.203 0 69.296-31.094 69.296-69.297v-16.774h232.035c14.482 0 26.244-11.795 26.244-26.277 0-5.373-1.606-10.517-4.652-14.875l-73.097-97.473H261.613zm524.848-86.072H236.45V424.29c0-112.349 68.674-213.393 172.143-255.102v-3.113c0-56.715 46.164-102.88 102.879-102.88s102.847 46.165 102.847 102.88v3.113C717.787 210.897 786.46 311.941 786.46 424.29V613.24zm-516.46-33.55h482.91V424.29c0-102.16-64.677-193.67-160.97-227.678l-11.173-3.964v-26.572c0-38.235-31.093-69.329-69.296-69.329-38.235 0-69.329 31.094-69.329 69.33v26.57l-11.173 3.965C334.676 230.621 270 322.131 270 424.29v155.4z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M234.272 32h58.368v180h-58.369V32zM584 32h58.272v180H584V32zM176 332h524.592v60H176v-60zm0 180h291.408v60H176v-60zm352.56 384H32V80h768v381.648C911.169 492.992 992 597.104 992 722c0 150-116.592 270-262.272 270a258.384 258.384 0 0 1-201.12-96zm212.352-443.76V138.32H91.088v699.36h401.28A277.728 277.728 0 0 1 467.409 722c0-150 116.592-270 262.32-270 3.744 0 7.488.096 11.184.24zM176 692h233.136v60H176v-60zm553.728-180c-110.736 0-204 96-204 210s93.264 210 204 210 204-96 204-210-93.264-210-204-210zM704 560h59.76v204H704V560zm59.76 240v59.76H704V800h59.76z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M49.217 41.329l-.136-35.24c-.06-2.715-2.302-4.345-5.022-4.405h-3.65c-2.712-.06-4.866 2.303-4.806 5.016l.152 19.164-24.151-23.79a6.698 6.698 0 0 0-9.499 0 6.76 6.76 0 0 0 0 9.526l23.93 23.713-18.345.074c-2.712-.069-5.228 1.813-5.64 5.02v3.462c.069 2.721 2.31 4.97 5.022 5.03l35.028-.207c.052.005.087.025.133.025l2.457.054a4.626 4.626 0 0 0 3.436-1.38c.88-.874 1.205-2.096 1.169-3.462l-.262-2.465c0-.048.182-.081.182-.136h.002zm52.523 51.212l18.32-.073c2.713.06 5.224-1.609 5.64-4.815v-3.462c-.068-2.722-2.317-4.97-5.021-5.04l-34.58.21c-.053 0-.086-.021-.138-.021l-2.451-.06a4.64 4.64 0 0 0-3.445 1.381c-.885.868-1.201 2.094-1.174 3.46l.27 2.46c.005.06-.177.095-.177.141l.141 34.697c.069 2.713 2.31 4.338 5.022 4.397l3.45.006c2.705.062 4.867-2.31 4.8-5.026l-.153-18.752 24.151 23.946a6.69 6.69 0 0 0 9.494 0 6.747 6.747 0 0 0 0-9.523L101.74 92.54v.001zM48.125 80.662a4.636 4.636 0 0 0-3.437-1.382l-2.457.06c-.05 0-.082.022-.137.022l-35.025-.21c-2.712.07-4.957 2.318-5.022 5.04v3.462c.409 3.206 2.925 4.874 5.633 4.814l18.554.06-24.132 23.928c-2.62 2.626-2.62 6.89 0 9.524a6.694 6.694 0 0 0 9.496 0l24.155-23.79-.155 18.866c-.06 2.722 2.094 5.093 4.801 5.025h3.65c2.72-.069 4.962-1.685 5.022-4.406l.141-34.956c0-.05-.182-.082-.182-.136l.262-2.46c.03-1.366-.286-2.592-1.166-3.46h-.001zM80.08 47.397a4.62 4.62 0 0 0 3.443 1.374l2.45-.054c.055 0 .088-.02.143-.028l35.08.21c2.712-.062 4.953-2.312 5.021-5.033l.009-3.463c-.417-3.211-2.937-5.084-5.64-5.025l-18.615-.073 23.917-23.715c2.63-2.623 2.63-6.879.008-9.513a6.691 6.691 0 0 0-9.494 0L92.251 26.016l.155-19.312c.065-2.713-2.097-5.085-4.802-5.025h-3.45c-2.713.069-4.954 1.693-5.022 4.406l-.139 35.247c0 .054.18.088.18.136l-.267 2.465c-.028 1.366.288 2.588 1.174 3.463v.001z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M38.47 52L52 38.462l-23.648-23.67L43.209 0H.035L0 43.137l14.757-14.865L38.47 52zm74.773 47.726L89.526 76 76 89.536l23.648 23.672L84.795 128h43.174L128 84.863l-14.757 14.863zM89.538 52l23.668-23.648L128 43.207V.038L84.866 0 99.73 14.76 76 38.472 89.538 52zM38.46 76L14.792 99.651 0 84.794v43.173l43.137.033-14.865-14.757L52 89.53 38.46 76z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M925.598 836.904c.367-2.784.847-5.53.847-8.41V180.092c19.035-11.08 31.976-31.471 31.976-55.083 0-35.321-28.633-63.957-63.953-63.957-23.612 0-44.007 12.942-55.083 31.98H182.11c-11.077-19.038-31.471-31.98-55.083-31.98-35.318 0-63.953 28.636-63.953 63.957 0 23.612 12.943 44.003 31.976 55.083v648.402c0 2.88.48 5.627.851 8.41-19.499 10.954-32.827 31.586-32.827 55.543 0 35.317 28.635 63.953 63.953 63.953 35.322 0 63.954-28.635 63.954-63.953h639.536c0 35.317 28.631 63.953 63.954 63.953 35.32 0 63.953-28.635 63.953-63.953-.002-23.957-13.33-44.588-32.825-55.543zm-63.106-8.41h-703.49V180.092a63.844 63.844 0 0 0 23.11-23.11h657.274a63.801 63.801 0 0 0 23.107 23.11v648.402z"/><path d="M670.628 252.915h-383.72v127.903h63.954v-63.953h127.906V668.61h-63.952v63.953h191.86v-63.953h-63.954V316.865h127.906v63.953h63.957V252.915H702.61z"/></svg>
\ No newline at end of file
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M263.456 759.36c0 27.04 22.88 40.576 68.672 40.576 40.064 0 60.096-14.048 60.096-42.144 0-26.528-21.856-39.808-65.536-39.808-42.144.032-63.232 13.824-63.232 41.376zM853.344 0H170.688C76.8 0 0 76.8 0 170.688v682.624C0 947.264 76.8 1024 170.688 1024h682.656C947.232 1024 1024 947.264 1024 853.312V170.688C1024 76.8 947.232 0 853.344 0zm-377.6 408.992c-7.296 2.592-17.696 5.472-31.2 8.576 4.16 11.968 6.24 23.168 6.24 33.568 0 33.28-10.016 62.304-30.048 87.008-20.032 24.704-45.92 39.392-77.632 44.096-20.8 3.136-31.2 14.304-31.2 33.568 0 6.752 3.392 13.536 10.144 20.288 8.832 9.888 21.856 16.128 39.008 18.72 74.4 11.456 111.584 42.4 111.584 92.864 0 80.64-48.128 120.96-144.352 120.96-39.552 0-72.064-7.04-97.536-21.056-32.256-17.696-48.384-45.536-48.384-83.488 0-43.712 24.192-73.6 72.576-89.728V672.8c-17.696-10.912-26.528-27.584-26.528-49.952 0-29.12 8.32-47.36 24.96-54.624v-1.568c-16.64-5.728-31.488-18.72-44.48-39.04-14.56-21.856-21.856-45.248-21.856-70.24 0-37.472 13.28-68.672 39.808-93.632 25.504-23.424 55.936-35.104 91.296-35.104 25.504 0 49.152 6.24 71.008 18.72 24.96 0 53.856-6.24 86.624-18.72l-.032 80.352zm126.432 270.016h-88.192c1.056-10.4 1.568-28.096 1.568-53.056v-242.72c0-24.448-.512-41.376-1.568-50.72h88.192c-1.056 9.888-1.568 26.272-1.568 49.152v239.552c0 26.56.544 45.824 1.568 57.792zm-5.856-424.512c-10.656 11.456-23.296 17.152-37.856 17.152-15.072 0-27.968-5.728-38.624-17.152-10.656-11.456-16-24.96-16-40.576 0-16.128 5.344-29.92 16-41.376 10.656-11.456 23.552-17.152 38.624-17.152 14.56 0 27.2 5.728 37.856 17.152 10.656 11.456 16 25.216 16 41.376 0 15.584-5.344 29.12-16 40.576zm245.376 414.336c-19.264 10.4-42.4 15.616-69.472 15.616-37.984 0-64.256-13.504-78.816-40.576-10.944-20.288-16.384-52.288-16.384-95.968v-139.68h.768v-1.568l-11.712-.768c-6.752 0-15.616.768-26.528 2.336l.032-75.712h38.24V302.08c0-14.56-.768-26.272-2.336-35.104h90.528c-1.536 9.888-2.336 21.056-2.336 33.536v32h67.872v75.68c-2.592 0-7.424-.256-14.432-.768-7.04-.512-13.664-.8-19.904-.8h-33.568v145.152c0 34.848 11.456 52.288 34.336 52.288 16.128 0 30.688-4.416 43.712-13.248v78.016zm-520.48-268.416c-32.768 0-49.152 19.264-49.152 57.76 0 35.904 16.384 53.856 49.152 53.856 31.744 0 47.616-18.208 47.616-54.624 0-15.104-3.648-28.096-10.912-39.008-8.864-12-21.088-17.984-36.704-17.984z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M921.9 468.6H749.6c-9.4 0-18.4 3.8-25 10.5-6.6 6.7-10.3 15.7-10.3 25.1v11.1c0 19.6 15.9 35.5 35.4 35.5h172.2c19.5 0 35.3-15.9 35.3-35.5v-11.1c0-9.4-3.7-18.4-10.3-25.1-6.6-6.7-15.6-10.5-25-10.5zM522.4 163.9c-53.6 42.6-165.7 102.3-246.3 159.8h-.1c-.9.6-1.8 3.8-2.8 4.3-9.5 5.4-13.8 20.1-65.6 20.1h-101c-26 0-42 12.2-42 39.6V631c0 27.4 14.7 40.9 42 40.9H208c51.5.1 55.7 14.8 65.2 20.1.9.5 1.8 3.7 2.7 4.3h.1c78.2 57.5 191 121.8 246.4 162.7 16.7 12.3 72.1 33.9 72.1-42.1v-614c0-76.1-55.9-51.8-72.1-39zm159 167.8c9.2 16.1 27.3 20.2 40.5 9l141.5-119.3c13.3-11.1 16.5-33.2 7.4-49.4l-5.2-9.1c-9.1-16.1-27.3-20.1-40.5-9L683.6 273.2c-13.2 11.2-16.5 33.2-7.4 49.4l5.2 9.1zm40.4 347.4c-13.2-11.1-31.3-7-40.4 9l-5.2 9.1c-9.1 16.1-5.8 38.2 7.4 49.4L825.1 866c13.2 11.1 31.3 7.1 40.4-9l5.2-9.1c9.1-16.1 5.8-38.2-7.4-49.4L721.8 679.1zm0 0"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M403.2 780.8V619.2h-160c-89.6 0-161.6 72-161.6 161.6s72 161.6 161.6 161.6 160-72 160-161.6zm81.6 0c0 134.4-108.8 243.2-243.2 243.2S0 915.2 0 780.8s108.8-243.2 243.2-243.2h243.2c-1.6 0-1.6 243.2-1.6 243.2zm134.4 0V619.2h161.6c89.6 0 161.6 72 161.6 161.6s-72 161.6-161.6 161.6-161.6-72-161.6-161.6zm-81.6 0c0 134.4 108.8 243.2 243.2 243.2S1024 915.2 1024 780.8 915.2 537.6 780.8 537.6H537.6v243.2zM403.2 243.2v161.6h-160c-89.6 0-161.6-72-161.6-161.6s72-161.6 161.6-161.6 160 72 160 161.6zm81.6 0C484.8 108.8 376 0 243.2 0 108.8 1.6 0 108.8 0 243.2s108.8 243.2 243.2 243.2h243.2c-1.6 0-1.6-243.2-1.6-243.2zm134.4 0v161.6h161.6c89.6 0 161.6-72 161.6-161.6s-72-161.6-161.6-161.6-161.6 72-161.6 161.6zm-81.6 0C537.6 108.8 646.4 0 780.8 0c134.4 1.6 241.6 108.8 241.6 243.2S913.6 486.4 779.2 486.4H537.6V243.2z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M784 112H240c-88 0-160 72-160 160v480c0 88 72 160 160 160h544c88 0 160-72 160-160V272c0-88-72-160-160-160zm96 640c0 52.8-43.2 96-96 96H240c-52.8 0-96-43.2-96-96V272c0-52.8 43.2-96 96-96h544c52.8 0 96 43.2 96 96v480z"/><path d="M352 480c52.8 0 96-43.2 96-96s-43.2-96-96-96-96 43.2-96 96 43.2 96 96 96zm0-128c17.6 0 32 14.4 32 32s-14.4 32-32 32-32-14.4-32-32 14.4-32 32-32zm462.4 379.2l-3.2-3.2-177.6-177.6c-25.6-25.6-65.6-25.6-91.2 0l-80 80-36.8-36.8c-25.6-25.6-65.6-25.6-91.2 0L200 728c-4.8 6.4-8 14.4-8 24 0 17.6 14.4 32 32 32 9.6 0 16-3.2 22.4-9.6L380.8 640l134.4 134.4c6.4 6.4 14.4 9.6 24 9.6 17.6 0 32-14.4 32-32 0-9.6-4.8-17.6-9.6-24l-52.8-52.8 80-80L769.6 776c6.4 4.8 12.8 8 20.8 8 17.6 0 32-14.4 32-32 0-8-3.2-16-8-20.8z"/></svg>
\ No newline at end of file
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="400" height="400"><defs><style/></defs><path d="M219.429 658.286q0-30.286-21.429-51.715t-51.714-21.428T94.57 606.57t-21.428 51.715T94.57 710t51.715 21.429T198 710t21.429-51.714zm109.714-256q0-30.286-21.429-51.715T256 329.143t-51.714 21.428-21.429 51.715T204.286 454 256 475.429 307.714 454t21.429-51.714zm244.571 274.857l57.715-218.286q3.428-14.857-4.286-27.714t-22-16.857T577.714 418t-17.143 22.571l-57.714 218.286q-34.286 2.857-61.143 24.857t-36 56.286q-11.428 44 11.429 83.429T484 874.286t83.429-11.429T618.286 796q9.143-34.286-3.429-66.857t-41.143-52zm377.143-18.857q0-30.286-21.428-51.715t-51.715-21.428T826 606.57t-21.429 51.715T826 710t51.714 21.429T929.43 710t21.428-51.714zM585.143 292.57q0-30.285-21.429-51.714T512 219.43t-51.714 21.428-21.429 51.714 21.429 51.715T512 365.714t51.714-21.428 21.429-51.715zm256 109.715q0-30.286-21.429-51.715T768 329.143t-51.714 21.428-21.429 51.715T716.286 454 768 475.429 819.714 454t21.429-51.714zm182.857 256q0 149.143-80.571 276-10.858 16.571-30.858 16.571H111.43q-20 0-30.858-16.571Q0 808 0 658.286q0-104 40.571-198.857T149.714 296t163.429-109.143T512 146.286t198.857 40.571T874.286 296t109.143 163.429T1024 658.286z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M83.287 103.01c-1.57-3.84-6.778-10.414-15.447-19.548-2.327-2.444-2.182-4.306-1.338-9.862v-.64c.553-3.81 1.513-6.05 14.313-8.087 6.516-1.018 8.203 1.57 10.589 5.178l.785 1.193a12.625 12.625 0 0 0 6.43 5.207c1.134.524 2.53 1.164 4.421 2.24 4.596 2.53 4.596 5.41 4.596 11.753v.727a26.91 26.91 0 0 1-5.178 17.454 59.055 59.055 0 0 1-19.025 11.026c3.49-6.546.814-14.313 0-16.553l-.146-.087zM64 5.12a58.502 58.502 0 0 1 25.484 5.818 54.313 54.313 0 0 0-12.859 10.327c-.93 1.28-1.716 2.473-2.472 3.579-2.444 3.694-3.637 5.352-5.818 5.614a25.105 25.105 0 0 1-4.219 0c-4.276-.29-10.094-.64-11.956 4.422-1.193 3.23-1.396 11.956 2.444 16.495.66 1.077.778 2.4.32 3.578a7.01 7.01 0 0 1-2.066 3.229 18.938 18.938 0 0 1-2.909-2.91 18.91 18.91 0 0 0-8.32-6.603c-1.25-.349-2.647-.64-3.985-.93-3.782-.786-8.03-1.688-9.019-3.812a14.895 14.895 0 0 1-.727-5.818 21.935 21.935 0 0 0-1.396-9.25 8.873 8.873 0 0 0-5.557-4.946A58.705 58.705 0 0 1 64 5.12zM0 64c0 35.346 28.654 64 64 64 35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M449.981 243.901c-57.753-10.624-121-7.982-167.66 6.836-86.4 27.453-135.362 79.247-162.56 155.791-32.224 90.696-2.933 190.628 15.811 248.637 18.745 58.01 76.058 144.978 135.942 155.853 63.77 11.582 121.308-9.897 155.376-50.739 16.057-19.246 30.275-46.75 31.708-74.46.932-18.023-1.223-31.647-6.17-45.148-5.641-15.401-15.067-29.645-32.952-46.577-19.19-18.17-62.53-34.094-104.284-28.293-30.904 4.29-56.555 15.677-78.438 32.476-33.587 25.79-65.413 82.657-65.413 82.657s-1.152-33.26 13.27-66.698c7.23-16.752 24.398-44.851 41.263-58.998 17.121-14.366 37.857-31.539 72.166-40.32 38.887-9.953 78.275-6.978 93.63-3.558 46.397 10.322 82.242 34.647 111.616 65.321 59.525 62.167 82.468 161.536 51.753 246.036-10.281 28.283-38.85 61.062-69.31 85.11-18.324 14.464-57 35.405-103.188 45.143-30.592 6.451-64.481 6.298-97.936 2.227-83.957-10.224-159.503-86.533-195.113-147.778C53.878 746.173.456 621.363 13.686 486.809c6.302-64.122 28.088-132.47 62.884-182.476 38.205-54.938 90.547-89.18 118.236-105.2 52.9-30.608 132.29-43.623 185.195-40.833 33.628 1.777 86.856 12.667 137.273 38.088 39.664 20.004 75.78 55.245 92.175 95.375 9.815 24.023 6.712 47.493 6.671 47.493-.046.118 1.137-2.544-31.442-34.053-27.514-26.608-76.948-50.672-134.697-61.302zM559.073 155.182s37.863-68.506 72.361-88.51c34.499-20.003 61.655-7.674 79.463 5.93 17.812 13.603 26.823 30.914 22.912 55.552-3.912 24.637-43.147 71.762-66.33 106.23-36.137-26.4-72.269-52.798-108.406-79.202zM408.264 117.033s6.81-62.653 26.311-88.049C454.077 3.59 478.234 4.572 495.805 9.34c17.572 4.767 29.732 14.97 34.54 34.56 4.803 19.594-9.733 66.688-16.246 99.461-35.282-8.77-70.559-17.551-105.835-26.327zM294.764 125.061s-11.659-45.609-4.66-68.342c7.004-22.727 24.177-28.16 37.735-29.27 13.557-1.112 24.755 2.948 33.254 15.457 8.5 12.503 10.665 49.172 14.7 73.784l-81.03 8.371zM185.165 163.123s-20.9-34.672-20.793-55.02c.108-20.351 12.867-28.932 23.732-33.1 10.86-4.168 21.063-3.518 31.155 4.72 10.091 8.233 20.971 37.837 30.397 57.083-21.499 8.771-42.992 17.547-64.491 26.317zM97.408 227.149s-26.778-25.185-31.724-42.931c-4.94-17.746 4.045-28.268 12.473-34.494 8.422-6.226 17.47-8.095 28.293-3.343 10.818 4.756 27.622 27.93 40.591 42.43-16.542 12.779-33.085 25.558-49.633 38.338zM762.081 537.687c38.155 4.096 77.287 17.52 103.757 35.497 49.014 33.28 70.047 74.844 72.832 127.857 3.302 62.812-33.654 119.966-56.192 152.816-22.538 32.85-74.634 76.662-114.17 72.33-42.103-4.618-74.154-28.784-87.89-60.712-6.478-15.048-10.266-34.93-6.006-52.552 2.77-11.464 6.656-19.6 12.272-27.136 6.405-8.597 14.96-15.765 29.312-23.045 15.406-7.813 45.522-9.718 70.595 1.69 18.56 8.442 32.512 20.351 43.09 34.948 16.24 22.41 25.595 63.96 25.595 63.96s6.917-20.619 4.1-44.253c-1.407-11.837-6.932-32.64-14.863-44.64-8.053-12.187-17.843-26.81-37.703-38.698-22.508-13.47-47.734-18.944-57.99-19.66-30.986-2.172-57.973 6.394-82.078 20.141-48.86 27.863-81.73 85.842-78.224 144.497 1.173 19.63 12.97 45.486 27.577 66.217 8.786 12.472 29.117 32.788 56.238 47.493 17.966 9.738 39.224 15.949 60.938 19.625 54.497 9.226 116.03-24.514 149.745-56.253 33.71-31.74 90.414-99.984 107.177-186.737 7.987-41.339 7.06-88.218-5.422-126.024-13.712-41.523-40.126-72.714-54.493-87.905-27.443-29.02-74.752-51.958-108.416-60.058-21.391-5.145-56.77-8.233-93.086-1.694-28.575 5.14-57.759 20.5-75.5 42.588-10.619 13.225-13.046 28.503-13.046 28.503s-.215-1.797 26.066-15.473c22.18-11.545 57.626-17.418 95.785-13.322z"/><path d="M710.257 461.798s-10.967-49.966-28.857-68.92c-17.884-18.949-37.191-16.282-50.882-11.08-13.691 5.207-22.559 14.372-24.694 30.536-2.135 16.164 13.665 52.987 21.775 78.9 27.551-9.81 55.107-19.626 82.658-29.436zM811.832 465.976s7.399-40.514-.092-60.057c-7.49-19.543-22.804-23.424-34.703-23.711-11.9-.287-21.417 3.845-28.073 15.222-6.656 11.376-6.318 43.586-8.34 65.331 23.74 1.075 47.477 2.145 71.208 3.215zM881.439 492.134s15.795-26.403 15.641-41.943c-.153-15.544-9.907-22.144-18.191-25.364-8.29-3.22-16.056-2.76-23.71 3.492-7.65 6.251-15.837 28.82-22.943 43.484 16.404 6.779 32.803 13.553 49.203 20.331zM943.012 536.381s19.548-17.827 23.27-30.597c3.722-12.769-2.672-20.52-8.704-25.154-6.031-4.634-12.539-6.124-20.393-2.842-7.854 3.277-20.183 19.8-29.67 30.1l35.497 28.493zM986.071 592.824s21.463-10.793 27.863-20.992c6.4-10.194 2.729-18.462-1.393-23.93-4.116-5.469-9.436-8.326-17.1-7.363-7.665.962-22.508 12.354-33.332 19.02 7.988 11.096 15.975 22.18 23.962 33.265z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M377.597 791.99s-39.2 22.8 27.8 30.4c81.198 9.199 122.598 7.999 211.997-9 0 0 23.6 14.799 56.399 27.599-200.397 85.799-453.594-5-296.196-49m-24.4-112.198s-43.8 32.4 23.2 39.4c86.599 9 155.198 9.6 273.596-13.2 0 0 16.4 16.6 42.2 25.6-242.597 70.998-512.594 5.8-338.996-51.8m206.397-190.197c49.4 56.799-13 107.998-13 107.998s125.399-64.799 67.8-145.798c-53.8-75.599-95-113.198 128.198-242.597.2 0-350.395 87.6-182.998 280.397m265.197 385.194s29 23.8-31.8 42.4c-115.798 35-481.593 45.6-583.192 1.4-36.6-15.8 32-38 53.6-42.6 22.399-4.8 35.399-4 35.399-4-40.6-28.6-262.597 56.2-112.799 80.4 408.395 66.399 744.79-29.8 638.792-77.6M396.397 563.593s-186.198 44.199-66 60.199c50.8 6.8 151.998 5.2 246.197-2.6 77-6.4 154.398-20.4 154.398-20.4s-27.2 11.6-46.8 25c-188.997 49.8-553.992 26.6-448.993-24.2 88.998-42.8 161.198-38 161.198-38M730.392 750.19c192.198-99.799 103.199-195.797 41.2-182.798-15.2 3.2-22 6-22 6s5.6-8.8 16.4-12.6c122.598-43.199 216.997 127.199-39.6 194.598 0-.2 3-2.8 4-5.2M614.394 0s106.398 106.399-100.999 269.996c-166.198 131.199-38 206.198 0 291.597-96.999-87.6-168.198-164.598-120.398-236.397C463.196 220.197 657.393 168.998 614.394 0M415.396 1020.787c184.398 11.8 467.594-6.6 474.194-93.8 0 0-12.8 33-152.398 59.4-157.398 29.6-351.595 26.2-466.594 7.2 0-.2 23.6 19.4 144.798 27.2"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M115.625 127.937H.063V12.375h57.781v12.374H12.438v90.813h90.813V70.156h12.374z"/><path d="M116.426 2.821l8.753 8.753-56.734 56.734-8.753-8.745z"/><path d="M127.893 37.982h-12.375V12.375H88.706V0h39.187z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M1.585 12.087c0 6.616 3.974 11.98 8.877 11.98 4.902 0 8.877-5.364 8.877-11.98 0-6.616-3.975-11.98-8.877-11.98-4.903 0-8.877 5.364-8.877 11.98zM125.86.107H35.613c-1.268 0-2.114 1.426-2.114 2.852v18.255c0 1.712 1.057 2.853 2.114 2.853h90.247c1.268 0 2.114-1.426 2.114-2.853V2.96c0-1.711-1.057-2.852-2.114-2.852zM.106 62.86c0 6.615 3.974 11.979 8.876 11.979 4.903 0 8.877-5.364 8.877-11.98 0-6.616-3.974-11.98-8.877-11.98-4.902 0-8.876 5.364-8.876 11.98zM124.17 50.88H33.921c-1.268 0-2.114 1.425-2.114 2.851v18.256c0 1.711 1.057 2.852 2.114 2.852h90.247c1.268 0 2.114-1.426 2.114-2.852V53.73c0-1.426-.846-2.852-2.114-2.852zM.106 115.913c0 6.616 3.974 11.98 8.876 11.98 4.903 0 8.877-5.364 8.877-11.98 0-6.616-3.974-11.98-8.877-11.98-4.902 0-8.876 5.364-8.876 11.98zm124.064-11.98H33.921c-1.268 0-2.114 1.426-2.114 2.853v18.255c0 1.711 1.057 2.852 2.114 2.852h90.247c1.268 0 2.114-1.426 2.114-2.852v-18.255c0-1.427-.846-2.853-2.114-2.853z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M868.935 1008.63H155.067c-40.657 0-72.291-31.631-72.291-67.773V443.863c0-36.144 31.631-67.773 72.291-67.773h713.868c40.657 0 72.291 31.631 72.291 67.773v496.994c0 36.144-31.631 67.773-72.291 67.773zM512 543.259c-58.732 0-108.432 45.187-108.432 99.402 0 36.144 22.586 67.773 54.218 85.849v94.887c0 27.108 22.586 49.696 54.218 49.696s54.218-22.586 54.218-49.696V728.51c31.631-18.071 54.218-49.696 54.218-85.849 0-54.218-49.696-99.402-108.432-99.402zm0-429.228c-117.471 0-216.867 90.356-216.867 198.797H186.701c0-162.655 144.582-298.202 320.79-298.202s320.79 135.546 320.79 298.202H719.849c9.041-112.951-90.356-198.797-207.836-198.797zm0 0z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M787.692 275.692V78.77C787.692 35.446 752.246 0 708.923 0H78.77C35.446 0 0 35.446 0 78.77v866.46C0 988.555 35.446 1024 78.77 1024h354.46v-39.385H78.77c-19.693 0-39.385-15.753-39.385-39.384V78.769c0-23.63 15.753-39.384 39.384-39.384h630.154c19.692 0 39.385 15.753 39.385 39.384v196.923h39.384z"/><path d="M137.846 472.615H334.77c11.816 0 19.693 7.877 19.693 19.693S346.585 512 334.769 512H137.846c-11.815 0-19.692-7.877-19.692-19.692s7.877-19.693 19.692-19.693zm0 196.923H256c11.815 0 19.692 7.877 19.692 19.693s-7.877 19.692-19.692 19.692H137.846c-11.815 0-19.692-7.877-19.692-19.692s7.877-19.693 19.692-19.693zm0-393.846h354.462c11.815 0 19.692 7.877 19.692 19.693s-7.877 19.692-19.692 19.692H137.846c-11.815 0-19.692-7.877-19.692-19.692s7.877-19.693 19.692-19.693zM716.8 433.231c7.877 0 19.692 0 31.508 3.938 0 3.939 3.938 11.816 3.938 19.693 3.939 23.63 11.816 63.015 55.139 78.769 7.877 3.938 15.753 3.938 19.692 3.938 31.508 0 51.2-19.692 66.954-35.446l11.815-11.815c43.323 19.692 66.954 51.2 70.892 98.461-3.938 3.939-11.815 7.877-19.692 7.877-15.754 7.877-51.2 27.57-51.2 70.892s39.385 63.016 63.016 74.831c3.938 3.939 11.815 7.877 19.692 7.877-3.939 47.262-27.57 74.83-74.83 98.462l-11.816-11.816c-15.754-15.754-35.446-31.507-66.954-31.507-7.877 0-15.754 0-23.63 3.938-43.324 11.815-51.2 51.2-55.14 74.83 0 3.94-3.938 11.816-3.938 15.755-11.815 0-19.692 3.938-31.508 3.938-35.446 0-63.015-11.815-86.646-39.384 0-3.939 3.939-11.816 7.877-15.754 11.816-23.631 31.508-59.077 3.939-94.523-7.877-11.816-27.57-27.57-63.016-27.57-11.815 0-19.692 0-31.507 3.939-7.877 0-15.754 3.938-19.693 3.938-23.63-43.323-23.63-78.769 0-122.092 3.939 0 11.816 0 19.693 3.938 7.877 0 19.692 3.939 31.507 3.939 31.508 0 51.2-15.754 63.016-27.57 27.569-35.445 7.877-74.83-3.939-94.522-3.938-3.939-7.877-11.816-7.877-15.754 23.631-39.385 51.2-51.2 82.708-51.2m0-39.385c-47.262 0-82.708 19.692-118.154 55.139-27.57 31.507 35.446 78.769 11.816 110.277-7.877 11.815-19.693 11.815-31.508 11.815-15.754 0-35.446-3.939-51.2-3.939-11.816 0-23.63 3.939-31.508 15.754-31.508 55.139-31.508 110.277 0 169.354C504.123 764.062 515.938 768 527.754 768c15.754 0 35.446-3.938 51.2-3.938 11.815 0 23.63 3.938 31.508 11.815 23.63 35.446-43.324 78.77-11.816 110.277 35.446 39.384 74.83 55.138 122.092 55.138 11.816 0 27.57 0 43.324-3.938 43.323-7.877 19.692-78.77 59.076-94.523h7.877c31.508 0 51.2 47.261 78.77 47.261 3.938 0 7.877 0 11.815-3.938 63.015-27.57 94.523-70.892 102.4-133.908 3.938-43.323-78.77-43.323-78.77-82.708 0-43.323 82.708-39.384 78.77-82.707-7.877-63.016-39.385-110.277-102.4-133.908-3.938 0-7.877-3.938-11.815-3.938-31.508 0-51.2 51.2-82.708 51.2H819.2c-39.385-11.816-15.754-86.647-59.077-98.462-15.754-7.877-27.57-7.877-43.323-7.877z"/><path d="M748.308 590.77c43.323 0 78.769 35.445 78.769 78.768s-35.446 78.77-78.77 78.77-78.769-35.446-78.769-78.77 35.447-78.769 78.77-78.769m0-39.384c-66.954 0-118.154 51.2-118.154 118.153s51.2 118.154 118.154 118.154 118.154-51.2 118.154-118.154-51.2-118.153-118.154-118.153z"/></svg>
\ No newline at end of file
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M409.003 469.333L300.8 361.131l60.33-60.331L572.33 512l-211.2 211.2-60.33-60.33 108.203-108.203H128v-85.334h281.003zM469.333 128h341.334C857.6 128 896 166.4 896 213.333v597.334C896 857.6 857.6 896 810.667 896H469.333v-85.333h341.334V213.333H469.333V128z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M895.318 192H128.682C93.008 192 64 220.968 64 256.616v510.698C64 802.986 93.008 832 128.682 832h766.636C930.992 832 960 802.986 960 767.312V256.616C960 220.968 930.992 192 895.318 192zM568.046 704H455.95V512l-84.08 107.756L287.826 512v192H175.738V320h112.088l84.044 135.96L455.95 320h112.096v384zm167.314 0L596.09 512h84V320h112.086v192h84.054L735.324 704h.036z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><defs><style/></defs><path d="M96 128h832v192H96zm0 288h832v192H96zm0 288h832v192H96z"/></svg>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment