소스 검색

数据字典下拉接口优化,直接id,text,extend一起放到缓存中,原接口是缓存取出后,还是查询db补充extend,添加接口下拉选项排序

Devli 1 년 전
부모
커밋
4cd88d805a
100개의 변경된 파일1074개의 추가작업 그리고 62개의 파일을 삭제
  1. 6 2
      report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dict/controller/GaeaDictController.java
  2. 1 6
      report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dict/service/GaeaDictService.java
  3. 58 54
      report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dict/service/impl/GaeaDictServiceImpl.java
  4. BIN
      report-core/src/main/resources/static/favicon.ico
  5. 0 0
      report-core/src/main/resources/static/index.html
  6. 0 0
      report-core/src/main/resources/static/static/css/app.5a1b775f.css
  7. 0 0
      report-core/src/main/resources/static/static/css/chunk-01d3.96c21a90.css
  8. 0 0
      report-core/src/main/resources/static/static/css/chunk-0695.e65fd809.css
  9. 1 0
      report-core/src/main/resources/static/static/css/chunk-071f.748cdea5.css
  10. 1 0
      report-core/src/main/resources/static/static/css/chunk-1fe0.d5f2f380.css
  11. 0 0
      report-core/src/main/resources/static/static/css/chunk-3705.67a970ca.css
  12. 0 0
      report-core/src/main/resources/static/static/css/chunk-413e.3f8741de.css
  13. 1 0
      report-core/src/main/resources/static/static/css/chunk-5122.60fbb2ad.css
  14. 0 0
      report-core/src/main/resources/static/static/css/chunk-57da.11b60c57.css
  15. 1 0
      report-core/src/main/resources/static/static/css/chunk-5c3c.046a83e5.css
  16. 0 0
      report-core/src/main/resources/static/static/css/chunk-5ffc.068ac5bc.css
  17. 1 0
      report-core/src/main/resources/static/static/css/chunk-609b.748cdea5.css
  18. 0 0
      report-core/src/main/resources/static/static/css/chunk-6e88.4be11e42.css
  19. 1 0
      report-core/src/main/resources/static/static/css/chunk-7048.5350bdd8.css
  20. 0 0
      report-core/src/main/resources/static/static/css/chunk-8ad1.85b67cfb.css
  21. 0 0
      report-core/src/main/resources/static/static/css/chunk-93d3.a6122e64.css
  22. 0 0
      report-core/src/main/resources/static/static/css/chunk-ad0e.90d2f28a.css
  23. 0 0
      report-core/src/main/resources/static/static/css/chunk-b6e3.8da9b51b.css
  24. 1 0
      report-core/src/main/resources/static/static/css/chunk-e0fa.87241a53.css
  25. 0 0
      report-core/src/main/resources/static/static/css/chunk-elementUI.dfc87b72.css
  26. 2 0
      report-core/src/main/resources/static/static/css/chunk-libs.6fd2f1e0.css
  27. BIN
      report-core/src/main/resources/static/static/favicon.ico
  28. BIN
      report-core/src/main/resources/static/static/fonts/codicon.a609dc0.ttf
  29. BIN
      report-core/src/main/resources/static/static/fonts/element-icons.535877f.woff
  30. BIN
      report-core/src/main/resources/static/static/fonts/element-icons.732389d.ttf
  31. BIN
      report-core/src/main/resources/static/static/fonts/iconfont.111271f.ttf
  32. BIN
      report-core/src/main/resources/static/static/fonts/iconfont.3d20582.woff2
  33. BIN
      report-core/src/main/resources/static/static/fonts/iconfont.660a1cc.woff
  34. BIN
      report-core/src/main/resources/static/static/fonts/iconfont.9d37f11.ttf
  35. BIN
      report-core/src/main/resources/static/static/fonts/iconfont.ba04816.eot
  36. BIN
      report-core/src/main/resources/static/static/fonts/iconfont.cf8ecfd.woff
  37. BIN
      report-core/src/main/resources/static/static/img/404.a57b6f3.png
  38. BIN
      report-core/src/main/resources/static/static/img/charts.47700dc.jpg
  39. 97 0
      report-core/src/main/resources/static/static/img/iconfont.73f417c.svg
  40. BIN
      report-core/src/main/resources/static/static/img/index-center.7b0c5f4.png
  41. 893 0
      report-core/src/main/resources/static/static/img/jsoneditor-icons.256e3ab.svg
  42. BIN
      report-core/src/main/resources/static/static/img/login.561e089.jpg
  43. BIN
      report-core/src/main/resources/static/static/index-center.png
  44. 4 0
      report-core/src/main/resources/static/static/js/05+/.bdbd972b.js
  45. 0 0
      report-core/src/main/resources/static/static/js/0xJ.775335fd.js
  46. 0 0
      report-core/src/main/resources/static/static/js/2ZXa.86ab9186.js
  47. 0 0
      report-core/src/main/resources/static/static/js/3MdH.69c00252.js
  48. 0 0
      report-core/src/main/resources/static/static/js/3VBA.f6ea0cec.js
  49. 0 0
      report-core/src/main/resources/static/static/js/4yiN.430d71f3.js
  50. 0 0
      report-core/src/main/resources/static/static/js/6Xso.0a089fc0.js
  51. 1 0
      report-core/src/main/resources/static/static/js/7s2V.148ed813.js
  52. 0 0
      report-core/src/main/resources/static/static/js/87dK.50dd8482.js
  53. 0 0
      report-core/src/main/resources/static/static/js/8ahN.d3dd96a0.js
  54. 0 0
      report-core/src/main/resources/static/static/js/8m5U.4fb6bd0f.js
  55. 0 0
      report-core/src/main/resources/static/static/js/AoeA.2efe2260.js
  56. 0 0
      report-core/src/main/resources/static/static/js/BjZ/.917c6db2.js
  57. 0 0
      report-core/src/main/resources/static/static/js/Csoz.a87d6930.js
  58. 0 0
      report-core/src/main/resources/static/static/js/Czvm.114f5c30.js
  59. 0 0
      report-core/src/main/resources/static/static/js/DTUS.9ddf9990.js
  60. 1 0
      report-core/src/main/resources/static/static/js/Dsrv.7412ad35.js
  61. 0 0
      report-core/src/main/resources/static/static/js/EaLm.4219954c.js
  62. 0 0
      report-core/src/main/resources/static/static/js/Eg73.ccf0276c.js
  63. 0 0
      report-core/src/main/resources/static/static/js/Fzfo.1aa2ab01.js
  64. 0 0
      report-core/src/main/resources/static/static/js/HGU1.3751617a.js
  65. 0 0
      report-core/src/main/resources/static/static/js/I+Au.0fa4c332.js
  66. 0 0
      report-core/src/main/resources/static/static/js/KpXS.1f121764.js
  67. 0 0
      report-core/src/main/resources/static/static/js/LdT9.6ad88d84.js
  68. 0 0
      report-core/src/main/resources/static/static/js/MiWS.c4ad61d9.js
  69. 1 0
      report-core/src/main/resources/static/static/js/NlLO.2b50329d.js
  70. 0 0
      report-core/src/main/resources/static/static/js/O3xE.882c55e5.js
  71. 0 0
      report-core/src/main/resources/static/static/js/OfHX.d3423176.js
  72. 0 0
      report-core/src/main/resources/static/static/js/Om3.a727239e.js
  73. 1 0
      report-core/src/main/resources/static/static/js/On+f.0e2a8b74.js
  74. 0 0
      report-core/src/main/resources/static/static/js/PZ+Q.72050f5e.js
  75. 0 0
      report-core/src/main/resources/static/static/js/PhST.92d411aa.js
  76. 0 0
      report-core/src/main/resources/static/static/js/QJnQ.05b2d528.js
  77. 0 0
      report-core/src/main/resources/static/static/js/QKwv.a2265d70.js
  78. 0 0
      report-core/src/main/resources/static/static/js/Qj8H.767a015d.js
  79. 0 0
      report-core/src/main/resources/static/static/js/Qx4d.3a2c3ae8.js
  80. 0 0
      report-core/src/main/resources/static/static/js/W1QP.54c1632c.js
  81. 0 0
      report-core/src/main/resources/static/static/js/YdqL.23ad3c22.js
  82. 0 0
      report-core/src/main/resources/static/static/js/aA7r.6aa84ace.js
  83. 1 0
      report-core/src/main/resources/static/static/js/aH2L.b9b50593.js
  84. 0 0
      report-core/src/main/resources/static/static/js/app.f9a0d1fc.js
  85. 0 0
      report-core/src/main/resources/static/static/js/cOMg.aa82816e.js
  86. 0 0
      report-core/src/main/resources/static/static/js/chunk-01d3.b7e6b996.js
  87. 0 0
      report-core/src/main/resources/static/static/js/chunk-0695.306a4cdb.js
  88. 0 0
      report-core/src/main/resources/static/static/js/chunk-071f.dc13e88d.js
  89. 0 0
      report-core/src/main/resources/static/static/js/chunk-0730.abac79dd.js
  90. 0 0
      report-core/src/main/resources/static/static/js/chunk-0891.9e703c05.js
  91. 1 0
      report-core/src/main/resources/static/static/js/chunk-1fe0.53e158c2.js
  92. 0 0
      report-core/src/main/resources/static/static/js/chunk-2dec.d407564c.js
  93. 0 0
      report-core/src/main/resources/static/static/js/chunk-2f12.45e13631.js
  94. 0 0
      report-core/src/main/resources/static/static/js/chunk-3705.e47e5a95.js
  95. 0 0
      report-core/src/main/resources/static/static/js/chunk-3af7.6ba39743.js
  96. 0 0
      report-core/src/main/resources/static/static/js/chunk-413e.0dd064f1.js
  97. 0 0
      report-core/src/main/resources/static/static/js/chunk-43f4.94280166.js
  98. 0 0
      report-core/src/main/resources/static/static/js/chunk-5122.5a2f96c2.js
  99. 0 0
      report-core/src/main/resources/static/static/js/chunk-57da.3a5ac9b6.js
  100. 0 0
      report-core/src/main/resources/static/static/js/chunk-5c3c.64fddf88.js

+ 6 - 2
report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dict/controller/GaeaDictController.java

@@ -57,8 +57,12 @@ public class GaeaDictController extends GaeaBaseController<GaeaDictParam, GaeaDi
     @PostMapping("/freshDict")
     @Permission(code = "fresh",name = "刷新")
     public ResponseBean refreshDict(@RequestBody List<String> dictCodes) {
+        //语言
+        Locale locale = LocaleContextHolder.getLocale();
+        String language = locale.getLanguage();
+
         //刷新
-        gaeaDictService.refreshCache(dictCodes);
+        gaeaDictService.refreshCache(dictCodes, language);
         return responseSuccess();
     }
 
@@ -69,8 +73,8 @@ public class GaeaDictController extends GaeaBaseController<GaeaDictParam, GaeaDi
     @GetMapping("/select/{dictCode}")
     @Permission(code = "query",name = "下拉")
     public ResponseBean select(@PathVariable("dictCode") String dictName){
-        Locale locale = LocaleContextHolder.getLocale();
         //语言
+        Locale locale = LocaleContextHolder.getLocale();
         String language = locale.getLanguage();
 
         List<KeyValue> keyValues = gaeaDictService.select(dictName,language);

+ 1 - 6
report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dict/service/GaeaDictService.java

@@ -22,7 +22,7 @@ public interface GaeaDictService extends GaeaBaseService<GaeaDictParam, GaeaDict
      * 刷新全部缓存
      * @param dictCodes
      */
-    void refreshCache(List<String> dictCodes);
+    void refreshCache(List<String> dictCodes, String language);
 
 
     /**
@@ -33,11 +33,6 @@ public interface GaeaDictService extends GaeaBaseService<GaeaDictParam, GaeaDict
      */
     List<KeyValue> select(String dictCode, String language);
 
-    /**
-     * 获取所有字典项
-     * @return
-     */
-    List<GaeaDictItem> findItems(List<String> dictCodes);
     /**
      * 获取所有 typecode
      * @param system

+ 58 - 54
report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dict/service/impl/GaeaDictServiceImpl.java

@@ -1,5 +1,7 @@
 package com.anjiplus.template.gaea.business.modules.dict.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.anji.plus.gaea.bean.KeyValue;
 import com.anji.plus.gaea.cache.CacheHelper;
 import com.anji.plus.gaea.constant.Enabled;
@@ -50,22 +52,20 @@ public class GaeaDictServiceImpl implements GaeaDictService {
      * @param dictCodes
      */
     @Override
-    public void refreshCache(List<String> dictCodes) {
-
-        //查询指定字典项
-        List<GaeaDictItem> gaeaDictItems = findItems(dictCodes);
-
-        //对数据字典项进行分组,分组key=语言标识:字典编码
-        Map<String, Map<String, String>> dictItemMap = gaeaDictItems.stream()
-                .collect(Collectors
-                        .groupingBy(item -> item.getLocale() + GaeaConstant.REDIS_SPLIT +item.getDictCode(),
-                                Collectors.toMap(GaeaDictItem::getItemValue, GaeaDictItem::getItemName,(v1,v2)-> v2)));
+    public void refreshCache(List<String> dictCodes, String language) {
+        // 查询指定字典项
+        List<GaeaDictItem> gaeaDictItems = findItems(dictCodes, language);
+        // 对数据字典项进行分组,分组key=语言标识:字典编码
+        Map<String, List<GaeaDictItem>> dictItemMap = gaeaDictItems.stream().collect(
+                Collectors.groupingBy(item -> item.getLocale() + GaeaConstant.REDIS_SPLIT +item.getDictCode(), Collectors.toList())
+        );
 
         //遍历并保持到Redis中
         dictItemMap.entrySet().stream().forEach(entry -> {
             String key = GaeaKeyConstant.DICT_PREFIX  + entry.getKey();
-            cacheHelper.delete(key);
-            cacheHelper.hashSet(key, entry.getValue());
+            List<GaeaDictItem> dictItems = entry.getValue();
+            // 转换成KeyValue后缓存
+            List<KeyValue> keyValues = convertToKeyValueAndCache(dictItems, key);
         });
     }
 
@@ -78,59 +78,63 @@ public class GaeaDictServiceImpl implements GaeaDictService {
      */
     @Override
     public List<KeyValue> select(String dictCode, String language) {
-
-        //缓存字典Key
+        // 先看缓存中是否存在
         String dictKey = GaeaKeyConstant.DICT_PREFIX  + language + GaeaConstant.REDIS_SPLIT + dictCode;
-
-        Map<String, String> dictMap = cacheHelper.hashGet(dictKey);
-
-        //当查询的字典为空时
-        if (CollectionUtils.isEmpty(dictMap)) {
-            LambdaQueryWrapper<GaeaDictItem> wrapper = Wrappers.lambdaQuery();
-            wrapper.eq(GaeaDictItem::getDictCode, dictCode)
-                    .eq(GaeaDictItem::getEnabled, Enabled.YES.getValue())
-                    .eq(GaeaDictItem::getLocale, language)
-                    .orderByAsc(GaeaDictItem::getSort);
-
-            List<GaeaDictItem> list = gaeaDictItemMapper.selectList(wrapper);
-
-            List<KeyValue> keyValues = list.stream()
-                    .map(dictItemEntity -> new KeyValue(dictItemEntity.getItemValue(), dictItemEntity.getItemName(), dictItemEntity.getItemExtend()))
-                    .collect(Collectors.toList());
-            //当缓存不存在时,刷新缓存
-            List<String> dictCodes = new ArrayList<>();
-            dictCodes.add(dictCode);
-            refreshCache(dictCodes);
+        String keyValueListStr = cacheHelper.stringGet(dictKey);
+        if(StringUtils.isNoneBlank(keyValueListStr)){
+            List<KeyValue> keyValues = JSONArray.parseArray(keyValueListStr, KeyValue.class);
             return keyValues;
         }
 
-        List<KeyValue> keyValues = GaeaUtils.formatKeyValue(dictMap);
-
-        //添加扩展字段
-        LambdaQueryWrapper<GaeaDictItem> gaeaDictItemWrapper = Wrappers.lambdaQuery();
-        gaeaDictItemWrapper.eq(GaeaDictItem::getDictCode, dictCode);
-        gaeaDictItemWrapper.isNotNull(GaeaDictItem::getItemExtend);
-
-        Map<String, String> extendMap = gaeaDictItemMapper.selectList(gaeaDictItemWrapper).stream()
-                .filter(gaeaDictItem -> StringUtils.isNotBlank(gaeaDictItem.getItemExtend()))
-                .collect(Collectors.toMap(GaeaDictItem::getItemValue, GaeaDictItem::getItemExtend, (v1, v2) -> v2));
-        if (!CollectionUtils.isEmpty(extendMap)) {
-            keyValues.stream().forEach(keyValue -> keyValue.setExtend(extendMap.get(keyValue.getId())));
-        }
+        // 缓存中没有,从数据库中查询
+        List<String> dictCodes = new ArrayList<>();
+        dictCodes.add(dictCode);
+        List<GaeaDictItem> list = findItems(dictCodes, language);
+        List<KeyValue> keyValues = convertToKeyValueAndCache(list, dictKey);
         return keyValues;
     }
 
-    @Override
-    public List<GaeaDictItem> findItems(List<String> dictCodes) {
-
-        LambdaQueryWrapper<GaeaDictItem> gaeaDictItemQueryWrapper = Wrappers.lambdaQuery();
-        gaeaDictItemQueryWrapper.eq(GaeaDictItem::getEnabled, Enabled.YES.getValue());
+    private List<GaeaDictItem> findItems(List<String> dictCodes, String language) {
+        LambdaQueryWrapper<GaeaDictItem> wrapper = Wrappers.lambdaQuery();
+        wrapper.eq(GaeaDictItem::getEnabled, Enabled.YES.getValue())
+                .eq(GaeaDictItem::getLocale, language);
         if (!CollectionUtils.isEmpty(dictCodes)) {
-            gaeaDictItemQueryWrapper.in(GaeaDictItem::getDictCode, dictCodes);
+            wrapper.in(GaeaDictItem::getDictCode, dictCodes);
         }
-        return gaeaDictItemMapper.selectList(gaeaDictItemQueryWrapper);
+        wrapper.orderByAsc(GaeaDictItem::getSort);
+
+        List<GaeaDictItem> list = gaeaDictItemMapper.selectList(wrapper);
+        return list;
     }
 
+    /**
+     * 将一个字典的所有项,转换成KeyValue并缓存
+     * @param list
+     * @return
+     *
+     * @author Devli
+     * @date 2024-07-17 16:15:11.902
+     */
+    private List<KeyValue> convertToKeyValueAndCache(List<GaeaDictItem> list, String cacheKey){
+        // 入参数校验
+        List<KeyValue> keyValues = new ArrayList<>();
+        if(CollectionUtils.isEmpty(list)){
+            return keyValues;
+        }
+
+        // 数据类型转换
+        keyValues = list.stream()
+                .map(dictItemEntity -> new KeyValue(dictItemEntity.getItemValue(), dictItemEntity.getItemName(), dictItemEntity.getItemExtend()))
+                .collect(Collectors.toList());
+
+        // 缓存
+        if(StringUtils.isNoneBlank(cacheKey)){
+            String cacheValue = JSONArray.toJSONString(keyValues);
+            cacheHelper.delete(cacheKey);
+            cacheHelper.stringSet(cacheKey, cacheValue);
+        }
+        return keyValues;
+    }
 
     @Override
     public Collection<KeyValue> selectTypeCode(String system, String language) {

BIN
report-core/src/main/resources/static/favicon.ico


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/index.html


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/css/app.5a1b775f.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/css/chunk-01d3.96c21a90.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/css/chunk-0695.e65fd809.css


+ 1 - 0
report-core/src/main/resources/static/static/css/chunk-071f.748cdea5.css

@@ -0,0 +1 @@
+.app-breadcrumb.el-breadcrumb[data-v-9e2cd716]{display:inline-block;font-size:14px;line-height:50px;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-9e2cd716]{color:#97a8be;cursor:text}

+ 1 - 0
report-core/src/main/resources/static/static/css/chunk-1fe0.d5f2f380.css

@@ -0,0 +1 @@
+.index-container{width:100%;height:calc(100vh - 50px);overflow:hidden;background:#fff;background:linear-gradient(75deg,#e9f0fb,#e9f0fb)}.index-container .position{padding-left:10px;padding-right:10px;margin-bottom:0;position:absolute;top:67px}.index-container .center{width:100%;height:93vh;bottom:0;position:relative;max-width:1893px;background:url(/static/img/index-center.7b0c5f4.png);background-size:100% 100%}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/css/chunk-3705.67a970ca.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/css/chunk-413e.3f8741de.css


+ 1 - 0
report-core/src/main/resources/static/static/css/chunk-5122.60fbb2ad.css

@@ -0,0 +1 @@
+.app-breadcrumb.el-breadcrumb[data-v-9e2cd716]{display:inline-block;font-size:14px;line-height:50px;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-9e2cd716]{color:#97a8be;cursor:text}.main-layout[data-v-63d02e4a]{padding:20px;position:relative;height:auto;background:#fff}.main-layout header[data-v-63d02e4a]{font-size:24px;text-align:center;line-height:80px}.main-layout .bg[data-v-63d02e4a]{width:100%;height:200px;position:relative;overflow:hidden;margin:10px 0;border:12px solid #fff}.main-layout .bg .bg-img[data-v-63d02e4a]{position:absolute;width:100%;height:100%;-webkit-filter:blur(6px);filter:blur(6px);z-index:2}.main-layout .content[data-v-63d02e4a]{width:100%;height:100%;position:absolute;color:#fff;left:0;top:0;z-index:3}.main-layout footer[data-v-63d02e4a]{width:100%;font-size:14px;padding:16px;line-height:30px;position:absolute;z-index:3;bottom:0}.main-layout footer .operation[data-v-63d02e4a]{float:right}.main-layout footer .operation .edit[data-v-63d02e4a],.main-layout footer .operation .view[data-v-63d02e4a]{color:#fff;font-size:14px}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/css/chunk-57da.11b60c57.css


+ 1 - 0
report-core/src/main/resources/static/static/css/chunk-5c3c.046a83e5.css

@@ -0,0 +1 @@
+.app-breadcrumb.el-breadcrumb[data-v-9e2cd716]{display:inline-block;font-size:14px;line-height:50px;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-9e2cd716]{color:#97a8be;cursor:text}.main-layout[data-v-182aa6cc]{padding:20px;position:relative;height:auto;background:#fff}.main-layout header[data-v-182aa6cc]{font-size:24px;text-align:center;line-height:80px}.main-layout .bg[data-v-182aa6cc]{width:100%;height:200px;position:relative;overflow:hidden;margin:10px 0;border:12px solid #fff}.main-layout .bg .bg-img[data-v-182aa6cc]{position:absolute;width:100%;height:100%;-webkit-filter:blur(6px);filter:blur(6px);z-index:2}.main-layout .content[data-v-182aa6cc]{width:100%;height:100%;position:absolute;color:#fff;left:0;top:0;z-index:3}.main-layout footer[data-v-182aa6cc]{width:100%;font-size:14px;padding:16px;line-height:30px;position:absolute;z-index:3;bottom:0}.main-layout footer .operation[data-v-182aa6cc]{float:right}.main-layout footer .operation .edit[data-v-182aa6cc],.main-layout footer .operation .view[data-v-182aa6cc]{color:#fff;font-size:14px}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/css/chunk-5ffc.068ac5bc.css


+ 1 - 0
report-core/src/main/resources/static/static/css/chunk-609b.748cdea5.css

@@ -0,0 +1 @@
+.app-breadcrumb.el-breadcrumb[data-v-9e2cd716]{display:inline-block;font-size:14px;line-height:50px;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-9e2cd716]{color:#97a8be;cursor:text}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/css/chunk-6e88.4be11e42.css


+ 1 - 0
report-core/src/main/resources/static/static/css/chunk-7048.5350bdd8.css

@@ -0,0 +1 @@
+[data-v-431bfa34] .el-dialog__body{height:400px;overflow-y:scroll}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/css/chunk-8ad1.85b67cfb.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/css/chunk-93d3.a6122e64.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/css/chunk-ad0e.90d2f28a.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/css/chunk-b6e3.8da9b51b.css


+ 1 - 0
report-core/src/main/resources/static/static/css/chunk-e0fa.87241a53.css

@@ -0,0 +1 @@
+.el-upload[data-v-ea0d90ce]{display:inline-block;margin-right:20px}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/css/chunk-elementUI.dfc87b72.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 2 - 0
report-core/src/main/resources/static/static/css/chunk-libs.6fd2f1e0.css


BIN
report-core/src/main/resources/static/static/favicon.ico


BIN
report-core/src/main/resources/static/static/fonts/codicon.a609dc0.ttf


BIN
report-core/src/main/resources/static/static/fonts/element-icons.535877f.woff


BIN
report-core/src/main/resources/static/static/fonts/element-icons.732389d.ttf


BIN
report-core/src/main/resources/static/static/fonts/iconfont.111271f.ttf


BIN
report-core/src/main/resources/static/static/fonts/iconfont.3d20582.woff2


BIN
report-core/src/main/resources/static/static/fonts/iconfont.660a1cc.woff


BIN
report-core/src/main/resources/static/static/fonts/iconfont.9d37f11.ttf


BIN
report-core/src/main/resources/static/static/fonts/iconfont.ba04816.eot


BIN
report-core/src/main/resources/static/static/fonts/iconfont.cf8ecfd.woff


BIN
report-core/src/main/resources/static/static/img/404.a57b6f3.png


BIN
report-core/src/main/resources/static/static/img/charts.47700dc.jpg


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 97 - 0
report-core/src/main/resources/static/static/img/iconfont.73f417c.svg


BIN
report-core/src/main/resources/static/static/img/index-center.7b0c5f4.png


+ 893 - 0
report-core/src/main/resources/static/static/img/jsoneditor-icons.256e3ab.svg

@@ -0,0 +1,893 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="216"
+   height="144"
+   id="svg4136"
+   version="1.1"
+   inkscape:version="0.91 r"
+   sodipodi:docname="jsoneditor-icons.svg">
+  <title
+     id="title6512">JSON Editor Icons</title>
+  <metadata
+     id="metadata4148">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>JSON Editor Icons</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs4146" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1028"
+     id="namedview4144"
+     showgrid="true"
+     inkscape:zoom="4"
+     inkscape:cx="97.217248"
+     inkscape:cy="59.950227"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg4136"
+     showguides="false"
+     borderlayer="false"
+     inkscape:showpageshadow="true"
+     showborder="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4640"
+       empspacing="24" />
+  </sodipodi:namedview>
+  <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
+  <g
+     id="g4394">
+    <rect
+       x="4"
+       y="4"
+       width="16"
+       height="16"
+       id="svg_1"
+       style="fill:#1aae1c;fill-opacity:1;stroke:none;stroke-width:0" />
+    <rect
+       style="fill:#ec3f29;fill-opacity:0.94117647;stroke:none;stroke-width:0"
+       x="28.000006"
+       y="3.999995"
+       width="16"
+       height="16"
+       id="svg_1-7" />
+    <rect
+       id="rect4165"
+       height="16"
+       width="16"
+       y="3.999995"
+       x="52.000004"
+       style="fill:#4c4c4c;fill-opacity:1;stroke:none;stroke-width:0" />
+    <rect
+       style="fill:#4c4c4c;fill-opacity:1;stroke:none;stroke-width:0"
+       x="172.00002"
+       y="3.9999852"
+       width="16"
+       height="16"
+       id="rect4175" />
+    <rect
+       style="fill:#4c4c4c;fill-opacity:1;stroke:none;stroke-width:0"
+       x="196"
+       y="3.999995"
+       width="16"
+       height="16"
+       id="rect4175-3" />
+    <g
+       style="stroke:none"
+       id="g4299">
+      <rect
+         style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0"
+         id="svg_1-1"
+         height="1.9999986"
+         width="9.9999924"
+         y="10.999998"
+         x="7.0000048" />
+      <rect
+         style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0"
+         id="svg_1-1-1"
+         height="9.9999838"
+         width="1.9999955"
+         y="7.0000114"
+         x="11.000005" />
+    </g>
+    <g
+       style="stroke:none"
+       transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,19.029435,12.000001)"
+       id="g4299-3">
+      <rect
+         style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0"
+         id="svg_1-1-0"
+         height="1.9999986"
+         width="9.9999924"
+         y="10.999998"
+         x="7.0000048" />
+      <rect
+         style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0"
+         id="svg_1-1-1-9"
+         height="9.9999838"
+         width="1.9999955"
+         y="7.0000114"
+         x="11.000005" />
+    </g>
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0"
+       x="55.000004"
+       y="7.0000048"
+       width="6.9999909"
+       height="6.9999905"
+       id="svg_1-7-5" />
+    <rect
+       id="rect4354"
+       height="6.9999905"
+       width="6.9999909"
+       y="10.00001"
+       x="58"
+       style="fill:#ffffff;fill-opacity:1;stroke:#4c4c4c;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#3c80df;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.94117647"
+       x="58.000004"
+       y="10.000005"
+       width="6.9999909"
+       height="6.9999905"
+       id="svg_1-7-5-7" />
+    <g
+       id="g4378">
+      <rect
+         id="svg_1-7-5-3"
+         height="1.9999965"
+         width="7.9999909"
+         y="10.999999"
+         x="198"
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0" />
+      <rect
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0"
+         x="198"
+         y="7.0000005"
+         width="11.999995"
+         height="1.9999946"
+         id="rect4374" />
+      <rect
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0"
+         x="198"
+         y="14.999996"
+         width="3.9999928"
+         height="1.9999995"
+         id="rect4376" />
+    </g>
+    <g
+       id="g4383"
+       transform="matrix(1,0,0,-1,-23.999995,23.999995)">
+      <rect
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0"
+         x="198"
+         y="10.999999"
+         width="7.9999909"
+         height="1.9999965"
+         id="rect4385" />
+      <rect
+         id="rect4387"
+         height="1.9999946"
+         width="11.999995"
+         y="7.0000005"
+         x="198"
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0" />
+      <rect
+         id="rect4389"
+         height="1.9999995"
+         width="3.9999928"
+         y="14.999996"
+         x="198"
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0" />
+    </g>
+    <rect
+       y="3.9999199"
+       x="76"
+       height="16"
+       width="16"
+       id="rect3754-4"
+       style="fill:#4c4c4c;fill-opacity:1;stroke:none" />
+    <path
+       sodipodi:nodetypes="cccccccc"
+       inkscape:connector-curvature="0"
+       id="path4351"
+       d="m 85.10447,6.0157384 -0.0156,1.4063 c 3.02669,-0.2402 0.33008,3.6507996 2.48438,4.5780996 -2.18694,1.0938 0.49191,4.9069 -2.45313,4.5781 l -0.0156,1.4219 c 5.70828,0.559 1.03264,-5.1005 4.70313,-5.2656 l 0,-1.4063 c -3.61303,-0.027 1.11893,-5.7069996 -4.70313,-5.3124996 z"
+       style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       sodipodi:nodetypes="cccccccc"
+       inkscape:connector-curvature="0"
+       id="path4351-9"
+       d="m 82.78125,5.9984384 0.0156,1.4063 c -3.02668,-0.2402 -0.33007,3.6506996 -2.48437,4.5780996 2.18694,1.0938 -0.49192,4.9069 2.45312,4.5781 l 0.0156,1.4219 c -5.70827,0.559 -1.03263,-5.1004 -4.70312,-5.2656 l 0,-1.4063 c 3.61303,-0.027 -1.11894,-5.7070996 4.70312,-5.3124996 z"
+       style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       y="3.9999199"
+       x="100"
+       height="16"
+       width="16"
+       id="rect3754-25"
+       style="fill:#4c4c4c;fill-opacity:1;stroke:none" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path2987"
+       d="m 103.719,5.6719384 0,12.7187996 3.03125,0 0,-1.5313 -1.34375,0 0,-9.6249996 1.375,0 0,-1.5625 z"
+       style="fill:#ffffff;fill-opacity:1;stroke:none" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path2987-1"
+       d="m 112.2185,5.6721984 0,12.7187996 -3.03125,0 0,-1.5313 1.34375,0 0,-9.6249996 -1.375,0 0,-1.5625 z"
+       style="fill:#ffffff;fill-opacity:1;stroke:none" />
+    <rect
+       y="3.9999199"
+       x="124"
+       height="16"
+       width="16"
+       id="rect3754-73"
+       style="fill:#4c4c4c;fill-opacity:1;stroke:none" />
+    <path
+       sodipodi:nodetypes="ccccccccc"
+       inkscape:connector-curvature="0"
+       id="path3780"
+       d="m 126.2824,17.602938 1.78957,0 1.14143,-2.8641 5.65364,0 1.14856,2.8641 1.76565,0 -4.78687,-11.1610996 -1.91903,0 z"
+       style="fill:#ffffff;fill-opacity:1;stroke:none" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path3782"
+       d="m 129.72704,13.478838 4.60852,0.01 -2.30426,-5.5497996 z"
+       style="fill:#4c4c4c;fill-opacity:1;stroke:none" />
+    <rect
+       y="3.9999199"
+       x="148"
+       height="16"
+       width="16"
+       id="rect3754-35"
+       style="fill:#4c4c4c;fill-opacity:1;stroke:none" />
+    <path
+       sodipodi:nodetypes="ccccccc"
+       inkscape:connector-curvature="0"
+       id="path5008-2"
+       d="m 156.47655,5.8917384 0,2.1797 0.46093,2.3983996 1.82813,0 0.39844,-2.3983996 0,-2.1797 z"
+       style="fill:#ffffff;fill-opacity:1;stroke:none" />
+    <path
+       sodipodi:nodetypes="ccccccc"
+       inkscape:connector-curvature="0"
+       id="path5008-2-8"
+       d="m 152.51561,5.8906384 0,2.1797 0.46094,2.3983996 1.82812,0 0.39844,-2.3983996 0,-2.1797 z"
+       style="fill:#ffffff;fill-opacity:1;stroke:none" />
+  </g>
+  <rect
+     x="4"
+     y="27.999994"
+     width="16"
+     height="16"
+     id="rect4432"
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none;stroke-width:0" />
+  <rect
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none;stroke-width:0"
+     x="28.000006"
+     y="27.99999"
+     width="16"
+     height="16"
+     id="rect4434" />
+  <rect
+     id="rect4436"
+     height="16"
+     width="16"
+     y="27.99999"
+     x="52.000004"
+     style="fill:#d3d3d3;fill-opacity:1;stroke:#000000;stroke-width:0" />
+  <rect
+     style="fill:#d3d3d3;stroke:#000000;stroke-width:0"
+     x="172.00002"
+     y="27.999981"
+     width="16"
+     height="16"
+     id="rect4446" />
+  <rect
+     style="fill:#d3d3d3;stroke:#000000;stroke-width:0"
+     x="196"
+     y="27.99999"
+     width="16"
+     height="16"
+     id="rect4448" />
+  <g
+     id="g4466"
+     style="stroke:none"
+     transform="translate(0,23.999995)">
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0"
+       id="rect4468"
+       height="1.9999986"
+       width="9.9999924"
+       y="10.999998"
+       x="7.0000048" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0"
+       id="rect4470"
+       height="9.9999838"
+       width="1.9999955"
+       y="7.0000114"
+       x="11.000005" />
+  </g>
+  <g
+     transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,19.029435,35.999996)"
+     id="g4472"
+     style="stroke:none">
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0"
+       id="rect4474"
+       height="1.9999986"
+       width="9.9999924"
+       y="10.999998"
+       x="7.0000048" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0"
+       id="rect4476"
+       height="9.9999838"
+       width="1.9999955"
+       y="7.0000114"
+       x="11.000005" />
+  </g>
+  <rect
+     style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0"
+     x="55.000004"
+     y="31"
+     width="6.9999909"
+     height="6.9999905"
+     id="rect4478" />
+  <rect
+     id="rect4480"
+     height="6.9999905"
+     width="6.9999909"
+     y="34.000008"
+     x="58"
+     style="fill:#ffffff;fill-opacity:1;stroke:#d3d3d3;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none" />
+  <rect
+     style="fill:#ffffff;fill-opacity:1;stroke:#d3d3d3;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none"
+     x="58.000004"
+     y="34.000004"
+     width="6.9999909"
+     height="6.9999905"
+     id="rect4482" />
+  <g
+     id="g4484"
+     transform="translate(0,23.999995)">
+    <rect
+       id="rect4486"
+       height="1.9999965"
+       width="7.9999909"
+       y="10.999999"
+       x="198"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0"
+       x="198"
+       y="7.0000005"
+       width="11.999995"
+       height="1.9999946"
+       id="rect4488" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0"
+       x="198"
+       y="14.999996"
+       width="3.9999928"
+       height="1.9999995"
+       id="rect4490" />
+  </g>
+  <g
+     id="g4492"
+     transform="matrix(1,0,0,-1,-23.999995,47.99999)">
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0"
+       x="198"
+       y="10.999999"
+       width="7.9999909"
+       height="1.9999965"
+       id="rect4494" />
+    <rect
+       id="rect4496"
+       height="1.9999946"
+       width="11.999995"
+       y="7.0000005"
+       x="198"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0" />
+    <rect
+       id="rect4498"
+       height="1.9999995"
+       width="3.9999928"
+       y="14.999996"
+       x="198"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0" />
+  </g>
+  <rect
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none"
+     id="rect3754-8"
+     width="16"
+     height="16"
+     x="76"
+     y="27.99992" />
+  <path
+     style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 85.10448,30.015537 -0.0156,1.4063 c 3.02668,-0.2402 0.33007,3.6508 2.48438,4.5781 -2.18695,1.0938 0.49191,4.90688 -2.45313,4.57808 l -0.0156,1.4219 c 5.70827,0.559 1.03263,-5.10048 4.70313,-5.26558 l 0,-1.4063 c -3.61304,-0.027 1.11893,-5.707 -4.70313,-5.3125 z"
+     id="path4351-1"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccccccc" />
+  <path
+     style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 82.78126,29.998237 0.0156,1.4063 c -3.02668,-0.2402 -0.33008,3.6507 -2.48438,4.5781 2.18694,1.0938 -0.49191,4.90688 2.45313,4.57808 l 0.0156,1.4219 c -5.70828,0.559 -1.03264,-5.10038 -4.70313,-5.26558 l 0,-1.4063 c 3.61303,-0.027 -1.11893,-5.7071 4.70313,-5.3125 z"
+     id="path4351-9-5"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccccccc" />
+  <rect
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none"
+     id="rect3754-65"
+     width="16"
+     height="16"
+     x="100"
+     y="27.99992" />
+  <path
+     style="fill:#ffffff;fill-opacity:1;stroke:none"
+     d="m 103.719,29.671937 0,12.71878 3.03125,0 0,-1.5313 -1.34375,0 0,-9.62498 1.375,0 0,-1.5625 z"
+     id="path2987-8"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffffff;fill-opacity:1;stroke:none"
+     d="m 112.2185,29.671937 0,12.71878 -3.03125,0 0,-1.5313 1.34375,0 0,-9.62498 -1.375,0 0,-1.5625 z"
+     id="path2987-1-9"
+     inkscape:connector-curvature="0" />
+  <rect
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none"
+     id="rect3754-92"
+     width="16"
+     height="16"
+     x="124"
+     y="27.99992" />
+  <path
+     style="fill:#ffffff;fill-opacity:1;stroke:none"
+     d="m 126.2824,41.602917 1.78957,0 1.14143,-2.86408 5.65364,0 1.14856,2.86408 1.76565,0 -4.78687,-11.16108 -1.91902,0 z"
+     id="path3780-9"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ccccccccc" />
+  <path
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none"
+     d="m 129.72704,37.478837 4.60852,0.01 -2.30426,-5.5498 z"
+     id="path3782-2"
+     inkscape:connector-curvature="0" />
+  <rect
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none"
+     id="rect3754-47"
+     width="16"
+     height="16"
+     x="148"
+     y="27.99992" />
+  <path
+     style="fill:#ffffff;fill-opacity:1;stroke:none"
+     d="m 156.47656,29.891737 0,2.1797 0.46093,2.3984 1.82813,0 0.39844,-2.3984 0,-2.1797 z"
+     id="path5008-2-1"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ccccccc" />
+  <path
+     style="fill:#ffffff;fill-opacity:1;stroke:none"
+     d="m 152.51562,29.890637 0,2.1797 0.46094,2.3984 1.82812,0 0.39844,-2.3984 0,-2.1797 z"
+     id="path5008-2-8-8"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ccccccc" />
+  <rect
+     id="svg_1-7-2"
+     height="1.9999961"
+     width="11.999996"
+     y="64"
+     x="54"
+     style="fill:#4c4c4c;fill-opacity:0.98431373;stroke:none;stroke-width:0" />
+  <rect
+     id="svg_1-7-2-2"
+     height="2.9999905"
+     width="2.9999907"
+     y="52"
+     x="80.000008"
+     style="fill:#4c4c4c;fill-opacity:0.98431373;stroke:none;stroke-width:0" />
+  <rect
+     style="fill:#4c4c4c;fill-opacity:0.98431373;stroke:none;stroke-width:0"
+     x="85.000008"
+     y="52"
+     width="2.9999907"
+     height="2.9999905"
+     id="rect4561" />
+  <rect
+     style="fill:#4c4c4c;fill-opacity:0.98431373;stroke:none;stroke-width:0"
+     x="80.000008"
+     y="58"
+     width="2.9999907"
+     height="2.9999905"
+     id="rect4563" />
+  <rect
+     id="rect4565"
+     height="2.9999905"
+     width="2.9999907"
+     y="58"
+     x="85.000008"
+     style="fill:#4c4c4c;fill-opacity:0.98431373;stroke:none;stroke-width:0" />
+  <rect
+     id="rect4567"
+     height="2.9999905"
+     width="2.9999907"
+     y="64"
+     x="80.000008"
+     style="fill:#4c4c4c;fill-opacity:0.98431373;stroke:none;stroke-width:0" />
+  <rect
+     style="fill:#4c4c4c;fill-opacity:0.98431373;stroke:none;stroke-width:0"
+     x="85.000008"
+     y="64"
+     width="2.9999907"
+     height="2.9999905"
+     id="rect4569" />
+  <circle
+     style="opacity:1;fill:none;fill-opacity:1;stroke:#4c4c4c;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+     id="path4571"
+     cx="110.06081"
+     cy="57.939209"
+     r="4.7438836" />
+  <rect
+     style="fill:#4c4c4c;fill-opacity:0.98431373;stroke:none;stroke-width:0"
+     x="116.64566"
+     y="-31.79752"
+     width="4.229713"
+     height="6.4053884"
+     id="rect4563-2"
+     transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)" />
+  <path
+     style="fill:#4c4c4c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 125,56 138.77027,56.095 132,64 Z"
+     id="path4613"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccc" />
+  <path
+     sodipodi:nodetypes="cccc"
+     inkscape:connector-curvature="0"
+     id="path4615"
+     d="M 149,64 162.77027,63.905 156,56 Z"
+     style="fill:#4c4c4c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+  <rect
+     style="fill:#4c4c4c;fill-opacity:0.98431373;stroke:none;stroke-width:0"
+     x="54"
+     y="53"
+     width="11.999996"
+     height="1.9999961"
+     id="rect4638" />
+  <rect
+     id="svg_1-7-2-24"
+     height="1.9999957"
+     width="12.99999"
+     y="-56"
+     x="53"
+     style="fill:#4c4c4c;fill-opacity:0.98431373;stroke:none;stroke-width:0"
+     transform="matrix(0,1,-1,0,0,0)" />
+  <rect
+     transform="matrix(0,1,-1,0,0,0)"
+     style="fill:#4c4c4c;fill-opacity:0.98431373;stroke:none;stroke-width:0"
+     x="53"
+     y="-66"
+     width="12.99999"
+     height="1.9999957"
+     id="rect4657" />
+  <rect
+     id="rect4659"
+     height="0.99999291"
+     width="11.999999"
+     y="57"
+     x="54"
+     style="fill:#4c4c4c;fill-opacity:0.98431373;stroke:none;stroke-width:0" />
+  <rect
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none;stroke-width:0;stroke-opacity:1"
+     x="54"
+     y="88.000122"
+     width="11.999996"
+     height="1.9999961"
+     id="rect4661" />
+  <rect
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none;stroke-width:0;stroke-opacity:1"
+     x="80.000008"
+     y="76.000122"
+     width="2.9999907"
+     height="2.9999905"
+     id="rect4663" />
+  <rect
+     id="rect4665"
+     height="2.9999905"
+     width="2.9999907"
+     y="76.000122"
+     x="85.000008"
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none;stroke-width:0;stroke-opacity:1" />
+  <rect
+     id="rect4667"
+     height="2.9999905"
+     width="2.9999907"
+     y="82.000122"
+     x="80.000008"
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none;stroke-width:0;stroke-opacity:1" />
+  <rect
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none;stroke-width:0;stroke-opacity:1"
+     x="85.000008"
+     y="82.000122"
+     width="2.9999907"
+     height="2.9999905"
+     id="rect4669" />
+  <rect
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none;stroke-width:0;stroke-opacity:1"
+     x="80.000008"
+     y="88.000122"
+     width="2.9999907"
+     height="2.9999905"
+     id="rect4671" />
+  <rect
+     id="rect4673"
+     height="2.9999905"
+     width="2.9999907"
+     y="88.000122"
+     x="85.000008"
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none;stroke-width:0;stroke-opacity:1" />
+  <circle
+     r="4.7438836"
+     cy="81.939331"
+     cx="110.06081"
+     id="circle4675"
+     style="opacity:1;fill:none;fill-opacity:1;stroke:#d3d3d3;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+  <rect
+     transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)"
+     id="rect4677"
+     height="6.4053884"
+     width="4.229713"
+     y="-14.826816"
+     x="133.6163"
+     style="fill:#d3d3d3;fill-opacity:1;stroke:#d3d3d3;stroke-width:0;stroke-opacity:1" />
+  <path
+     sodipodi:nodetypes="cccc"
+     inkscape:connector-curvature="0"
+     id="path4679"
+     d="m 125,80.000005 13.77027,0.09499 L 132,87.999992 Z"
+     style="fill:#d3d3d3;fill-opacity:1;fill-rule:evenodd;stroke:#d3d3d3;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+  <path
+     style="fill:#d3d3d3;fill-opacity:1;fill-rule:evenodd;stroke:#d3d3d3;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="M 149,88.0002 162.77027,87.9052 156,80.0002 Z"
+     id="path4681"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccc" />
+  <rect
+     id="rect4683"
+     height="1.9999961"
+     width="11.999996"
+     y="77.000122"
+     x="54"
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none;stroke-width:0;stroke-opacity:1" />
+  <rect
+     transform="matrix(0,1,-1,0,0,0)"
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none;stroke-width:0;stroke-opacity:1"
+     x="77.000122"
+     y="-56"
+     width="12.99999"
+     height="1.9999957"
+     id="rect4685" />
+  <rect
+     id="rect4687"
+     height="1.9999957"
+     width="12.99999"
+     y="-66"
+     x="77.000122"
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none;stroke-width:0;stroke-opacity:1"
+     transform="matrix(0,1,-1,0,0,0)" />
+  <rect
+     style="fill:#d3d3d3;fill-opacity:1;stroke:none;stroke-width:0;stroke-opacity:1"
+     x="54"
+     y="81.000122"
+     width="11.999999"
+     height="0.99999291"
+     id="rect4689" />
+  <rect
+     id="rect4761-1"
+     height="1.9999945"
+     width="15.99999"
+     y="101"
+     x="76.000008"
+     style="fill:#ffffff;fill-opacity:0.80000007;stroke:none;stroke-width:0" />
+  <rect
+     id="rect4761-0"
+     height="1.9999945"
+     width="15.99999"
+     y="105"
+     x="76.000008"
+     style="fill:#ffffff;fill-opacity:0.80000007;stroke:none;stroke-width:0" />
+  <rect
+     id="rect4761-7"
+     height="1.9999945"
+     width="9"
+     y="109"
+     x="76.000008"
+     style="fill:#ffffff;fill-opacity:0.80000007;stroke:none;stroke-width:0" />
+  <rect
+     id="rect4761-1-1"
+     height="1.9999945"
+     width="12"
+     y="125"
+     x="76.000008"
+     style="fill:#ffffff;fill-opacity:0.80000007;stroke:none;stroke-width:0" />
+  <rect
+     id="rect4761-1-1-4"
+     height="1.9999945"
+     width="10"
+     y="137"
+     x="76.000008"
+     style="fill:#ffffff;fill-opacity:0.80000007;stroke:none;stroke-width:0" />
+  <rect
+     id="rect4761-1-1-4-4"
+     height="1.9999945"
+     width="10"
+     y="129"
+     x="82"
+     style="fill:#ffffff;fill-opacity:0.80000007;stroke:none;stroke-width:0" />
+  <rect
+     id="rect4761-1-1-4-4-3"
+     height="1.9999945"
+     width="9"
+     y="133"
+     x="82"
+     style="fill:#ffffff;fill-opacity:0.80000007;stroke:none;stroke-width:0" />
+  <path
+     inkscape:connector-curvature="0"
+     style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.8;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.66157866;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+     d="m 36.398438,100.0254 c -0.423362,-0.013 -0.846847,0.01 -1.265626,0.062 -1.656562,0.2196 -3.244567,0.9739 -4.507812,2.2266 L 29,100.5991 l -2.324219,7.7129 7.826172,-1.9062 -1.804687,-1.9063 c 1.597702,-1.5308 4.048706,-1.8453 5.984375,-0.7207 1.971162,1.1452 2.881954,3.3975 2.308593,5.5508 -0.573361,2.1533 -2.533865,3.6953 -4.830078,3.6953 l 0,3.0742 c 3.550756,0 6.710442,-2.4113 7.650391,-5.9414 0.939949,-3.5301 -0.618463,-7.2736 -3.710938,-9.0703 -1.159678,-0.6738 -2.431087,-1.0231 -3.701171,-1.0625 z"
+     id="path4138" />
+  <path
+     inkscape:connector-curvature="0"
+     style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.8;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.66157866;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+     d="m 59.722656,99.9629 c -1.270084,0.039 -2.541493,0.3887 -3.701172,1.0625 -3.092475,1.7967 -4.650886,5.5402 -3.710937,9.0703 0.939949,3.5301 4.09768,5.9414 7.648437,5.9414 l 0,-3.0742 c -2.296214,0 -4.256717,-1.542 -4.830078,-3.6953 -0.573361,-2.1533 0.337432,-4.4056 2.308594,-5.5508 1.935731,-1.1246 4.38863,-0.8102 5.986326,0.7207 l -1.806638,1.9063 7.828128,1.9062 -2.32422,-7.7129 -1.62696,1.7168 c -1.26338,-1.2531 -2.848917,-2.0088 -4.505855,-2.2285 -0.418778,-0.055 -0.842263,-0.076 -1.265625,-0.062 z"
+     id="path4138-1" />
+  <path
+     inkscape:connector-curvature="0"
+     style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.966;stroke-miterlimit:4;stroke-dasharray:none"
+     d="m 10.5,100 0,2 -2.4999996,0 L 12,107 l 4,-5 -2.5,0 0,-2 -3,0 z"
+     id="path3055-0-77" />
+  <path
+     style="opacity:0.8;fill:none;stroke:#ffffff;stroke-width:1.966;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 4.9850574,108.015 14.0298856,-0.03"
+     id="path5244-5-0-5"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cc" />
+  <path
+     style="opacity:0.8;fill:none;stroke:#ffffff;stroke-width:1.966;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 4.9849874,132.015 14.0298866,-0.03"
+     id="path5244-5-0-5-8"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cc" />
+  <path
+     inkscape:connector-curvature="0"
+     style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.4;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.66157866;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+     d="m 36.398438,123.9629 c -0.423362,-0.013 -0.846847,0.01 -1.265626,0.062 -1.656562,0.2196 -3.244567,0.9739 -4.507812,2.2266 L 29,124.5366 l -2.324219,7.7129 7.826172,-1.9062 -1.804687,-1.9063 c 1.597702,-1.5308 4.048706,-1.8453 5.984375,-0.7207 1.971162,1.1453 2.881954,3.3975 2.308593,5.5508 -0.573361,2.1533 -2.533864,3.6953 -4.830078,3.6953 l 0,3.0742 c 3.550757,0 6.710442,-2.4093 7.650391,-5.9394 0.939949,-3.5301 -0.618463,-7.2756 -3.710938,-9.0723 -1.159678,-0.6737 -2.431087,-1.0231 -3.701171,-1.0625 z"
+     id="path4138-12" />
+  <path
+     inkscape:connector-curvature="0"
+     style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.4;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.66157866;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+     d="m 59.722656,123.9629 c -1.270084,0.039 -2.541493,0.3888 -3.701172,1.0625 -3.092475,1.7967 -4.650886,5.5422 -3.710937,9.0723 0.939949,3.5301 4.09768,5.9394 7.648437,5.9394 l 0,-3.0742 c -2.296214,0 -4.256717,-1.542 -4.830078,-3.6953 -0.573361,-2.1533 0.337432,-4.4055 2.308594,-5.5508 1.935731,-1.1246 4.38863,-0.8102 5.986326,0.7207 l -1.806638,1.9063 7.828128,1.9062 -2.32422,-7.7129 -1.62696,1.7168 c -1.26338,-1.2531 -2.848917,-2.0088 -4.505855,-2.2285 -0.418778,-0.055 -0.842263,-0.076 -1.265625,-0.062 z"
+     id="path4138-1-3" />
+  <path
+     id="path6191"
+     d="m 10.5,116 0,-2 -2.4999996,0 L 12,109 l 4,5 -2.5,0 0,2 -3,0 z"
+     style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.966;stroke-miterlimit:4;stroke-dasharray:none"
+     inkscape:connector-curvature="0" />
+  <path
+     inkscape:connector-curvature="0"
+     style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.966;stroke-miterlimit:4;stroke-dasharray:none"
+     d="m 10.5,129 0,-2 -2.4999996,0 L 12,122 l 4,5 -2.5,0 0,2 -3,0 z"
+     id="path6193" />
+  <path
+     id="path6195"
+     d="m 10.5,135 0,2 -2.4999996,0 L 12,142 l 4,-5 -2.5,0 0,-2 -3,0 z"
+     style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.966;stroke-miterlimit:4;stroke-dasharray:none"
+     inkscape:connector-curvature="0" />
+  <path
+     sodipodi:type="star"
+     style="fill:#4d4d4d;fill-opacity:0.90196078;stroke:#d3d3d3;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+     id="path4500"
+     sodipodi:sides="3"
+     sodipodi:cx="11.55581"
+     sodipodi:cy="60.073242"
+     sodipodi:r1="5.1116104"
+     sodipodi:r2="2.5558052"
+     sodipodi:arg1="0"
+     sodipodi:arg2="1.0471976"
+     inkscape:flatsided="false"
+     inkscape:rounded="0"
+     inkscape:randomized="0"
+     d="m 16.66742,60.073242 -3.833708,2.213392 -3.8337072,2.213393 0,-4.426785 0,-4.426784 3.8337082,2.213392 z"
+     inkscape:transform-center-x="-1.2779026" />
+  <path
+     inkscape:transform-center-x="1.277902"
+     d="m -31.500004,60.073242 -3.833708,2.213392 -3.833707,2.213393 0,-4.426785 0,-4.426784 3.833707,2.213392 z"
+     inkscape:randomized="0"
+     inkscape:rounded="0"
+     inkscape:flatsided="false"
+     sodipodi:arg2="1.0471976"
+     sodipodi:arg1="0"
+     sodipodi:r2="2.5558052"
+     sodipodi:r1="5.1116104"
+     sodipodi:cy="60.073242"
+     sodipodi:cx="-36.611614"
+     sodipodi:sides="3"
+     id="path4502"
+     style="fill:#4d4d4d;fill-opacity:0.90196078;stroke:#d3d3d3;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+     sodipodi:type="star"
+     transform="scale(-1,1)" />
+  <path
+     d="m 16.66742,60.073212 -3.833708,2.213392 -3.8337072,2.213392 0,-4.426784 0,-4.426785 3.8337082,2.213392 z"
+     inkscape:randomized="0"
+     inkscape:rounded="0"
+     inkscape:flatsided="false"
+     sodipodi:arg2="1.0471976"
+     sodipodi:arg1="0"
+     sodipodi:r2="2.5558052"
+     sodipodi:r1="5.1116104"
+     sodipodi:cy="60.073212"
+     sodipodi:cx="11.55581"
+     sodipodi:sides="3"
+     id="path4504"
+     style="fill:#4d4d4d;fill-opacity:0.90196078;stroke:#d3d3d3;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+     sodipodi:type="star"
+     transform="matrix(0,1,-1,0,72.0074,71.7877)"
+     inkscape:transform-center-y="1.2779029" />
+  <path
+     inkscape:transform-center-y="-1.2779026"
+     transform="matrix(0,-1,-1,0,96,96)"
+     sodipodi:type="star"
+     style="fill:#4d4d4d;fill-opacity:0.90196078;stroke:#d3d3d3;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+     id="path4506"
+     sodipodi:sides="3"
+     sodipodi:cx="11.55581"
+     sodipodi:cy="60.073212"
+     sodipodi:r1="5.1116104"
+     sodipodi:r2="2.5558052"
+     sodipodi:arg1="0"
+     sodipodi:arg2="1.0471976"
+     inkscape:flatsided="false"
+     inkscape:rounded="0"
+     inkscape:randomized="0"
+     d="m 16.66742,60.073212 -3.833708,2.213392 -3.8337072,2.213392 0,-4.426784 0,-4.426785 3.8337082,2.213392 z" />
+  <path
+     sodipodi:nodetypes="cccc"
+     inkscape:connector-curvature="0"
+     id="path4615-5"
+     d="m 171.82574,65.174193 16.34854,0 -8.17427,-13.348454 z"
+     style="fill:#fbb917;fill-opacity:1;fill-rule:evenodd;stroke:#fbb917;stroke-width:1.65161395;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+  <path
+     style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     d="m 179,55 0,6 2,0 0,-6"
+     id="path4300"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccc" />
+  <path
+     style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     d="m 179,62 0,2 2,0 0,-2"
+     id="path4300-6"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccc" />
+</svg>

BIN
report-core/src/main/resources/static/static/img/login.561e089.jpg


BIN
report-core/src/main/resources/static/static/index-center.png


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 4 - 0
report-core/src/main/resources/static/static/js/05+/.bdbd972b.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/0xJ.775335fd.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/2ZXa.86ab9186.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/3MdH.69c00252.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/3VBA.f6ea0cec.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/4yiN.430d71f3.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/6Xso.0a089fc0.js


+ 1 - 0
report-core/src/main/resources/static/static/js/7s2V.148ed813.js

@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([["7s2V"],{"7s2V":function(e,s,o){"use strict";o.r(s),o.d(s,"conf",function(){return n}),o.d(s,"language",function(){return t});var n={comments:{lineComment:"REM"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|REM\\s+)#region"),end:new RegExp("^\\s*(::\\s*|REM\\s+)#endregion")}}},t={defaultToken:"",ignoreCase:!0,tokenPostfix:".bat",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:/call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/,symbols:/[=><!~?&|+\-*\/\^;\.,]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\s*)(rem(?:\s.*|))$/,["","comment"]],[/(\@?)(@keywords)(?!\w)/,[{token:"keyword"},{token:"keyword.$2"}]],[/[ \t\r\n]+/,""],[/setlocal(?!\w)/,"keyword.tag-setlocal"],[/endlocal(?!\w)/,"keyword.tag-setlocal"],[/[a-zA-Z_]\w*/,""],[/:\w*/,"metatag"],[/%[^%]+%/,"variable"],[/%%[\w]+(?!\w)/,"variable"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],string:[[/[^\\"'%]+/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/%[\w ]+%/,"variable"],[/%%[\w]+(?!\w)/,"variable"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/$/,"string","@popall"]]}}}}]);

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/87dK.50dd8482.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/8ahN.d3dd96a0.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/8m5U.4fb6bd0f.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/AoeA.2efe2260.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/BjZ/.917c6db2.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/Csoz.a87d6930.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/Czvm.114f5c30.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/DTUS.9ddf9990.js


+ 1 - 0
report-core/src/main/resources/static/static/js/Dsrv.7412ad35.js

@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([["Dsrv"],{Dsrv:function(e,n,s){"use strict";s.r(n),s.d(n,"conf",function(){return o}),s.d(n,"language",function(){return t});var o={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},t={defaultToken:"",tokenPostfix:".dockerfile",variable:/\${?[\w]+}?/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/(ONBUILD)(\s+)/,["keyword",""]],[/(ENV)(\s+)([\w]+)/,["keyword","",{token:"variable",next:"@arguments"}]],[/(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/,{token:"keyword",next:"@arguments"}]],arguments:[{include:"@whitespace"},{include:"@strings"},[/(@variable)/,{cases:{"@eos":{token:"variable",next:"@popall"},"@default":"variable"}}],[/\\/,{cases:{"@eos":"","@default":""}}],[/./,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],whitespace:[[/\s+/,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],comment:[[/(^#.*$)/,"comment","@popall"]],strings:[[/'$/,"string","@popall"],[/'/,"string","@stringBody"],[/"$/,"string","@popall"],[/"/,"string","@dblStringBody"]],stringBody:[[/[^\\\$']/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/'$/,"string","@popall"],[/'/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]],dblStringBody:[[/[^\\\$"]/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/"$/,"string","@popall"],[/"/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]]}}}}]);

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/EaLm.4219954c.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/Eg73.ccf0276c.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/Fzfo.1aa2ab01.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/HGU1.3751617a.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/I+Au.0fa4c332.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/KpXS.1f121764.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/LdT9.6ad88d84.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/MiWS.c4ad61d9.js


+ 1 - 0
report-core/src/main/resources/static/static/js/NlLO.2b50329d.js

@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([["NlLO"],{NlLO:function(e,t,n){"use strict";n.r(t),n.d(t,"conf",function(){return o}),n.d(t,"language",function(){return s});var o={comments:{lineComment:"#"}},s={defaultToken:"keyword",ignoreCase:!0,tokenPostfix:".azcli",str:/[^#\s]/,tokenizer:{root:[{include:"@comment"},[/\s-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}],[/^-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}]],type:[{include:"@comment"},[/-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":"key.identifier"}}],[/@str+\s*/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}]],comment:[[/#.*$/,{cases:{"@eos":{token:"comment",next:"@popall"}}}]]}}}}]);

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/O3xE.882c55e5.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/OfHX.d3423176.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/Om3.a727239e.js


+ 1 - 0
report-core/src/main/resources/static/static/js/On+f.0e2a8b74.js

@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([["On+f"],{"On+f":function(e,n,s){"use strict";s.r(n),s.d(n,"conf",function(){return o}),s.d(n,"language",function(){return t});var o={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},t={defaultToken:"",tokenPostfix:".ini",escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^\[[^\]]*\]/,"metatag"],[/(^\w+)(\s*)(\=)/,["key","","delimiter"]],{include:"@whitespace"},[/\d+/,"number"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,""],[/^\s*[#;].*$/,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}}}}]);

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/PZ+Q.72050f5e.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/PhST.92d411aa.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/QJnQ.05b2d528.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/QKwv.a2265d70.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/Qj8H.767a015d.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/Qx4d.3a2c3ae8.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/W1QP.54c1632c.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/YdqL.23ad3c22.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/aA7r.6aa84ace.js


+ 1 - 0
report-core/src/main/resources/static/static/js/aH2L.b9b50593.js

@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([["aH2L"],{aH2L:function(e,t,n){"use strict";n.r(t),n.d(t,"conf",function(){return a}),n.d(t,"language",function(){return o});var a={comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}]},o={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/<!--/,{token:"comment",next:"@comment"}]],comment:[[/[^<\-]+/,"comment.content"],[/-->/,{token:"comment",next:"@pop"}],[/<!--/,"comment.content.invalid"],[/[<\-]/,"comment.content"]]}}}}]);

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/app.f9a0d1fc.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/cOMg.aa82816e.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/chunk-01d3.b7e6b996.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/chunk-0695.306a4cdb.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/chunk-071f.dc13e88d.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/chunk-0730.abac79dd.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/chunk-0891.9e703c05.js


+ 1 - 0
report-core/src/main/resources/static/static/js/chunk-1fe0.53e158c2.js

@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([["chunk-1fe0"],{er4n:function(n,t,e){"use strict";e.r(t);var s={name:"index1",data:function(){return{}},components:{},watch:{},mounted:function(){},methods:{}},i=(e("zLKY"),e("KHd+")),a=Object(i.a)(s,function(){var n=this.$createElement,t=this._self._c||n;return t("div",{staticClass:"index-container"},[t("el-row",{attrs:{align:"middle",justify:"center"}},[t("el-col",{staticClass:"position",attrs:{span:24,offset:0}},[t("div",{staticClass:"center"})])],1)],1)},[],!1,null,null,null);a.options.__file="index.vue";t.default=a.exports},y6n4:function(n,t,e){},zLKY:function(n,t,e){"use strict";var s=e("y6n4");e.n(s).a}}]);

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/chunk-2dec.d407564c.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/chunk-2f12.45e13631.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/chunk-3705.e47e5a95.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/chunk-3af7.6ba39743.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/chunk-413e.0dd064f1.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/chunk-43f4.94280166.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/chunk-5122.5a2f96c2.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/chunk-57da.3a5ac9b6.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
report-core/src/main/resources/static/static/js/chunk-5c3c.64fddf88.js


이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.